
19.09.2023
In this post, Andreas reviews BDD and discusses whether it can be integrated into everyday project work.
We are repeatedly asked how the use of BDD should be assessed. At first glance, many reasons speak in favour of Behaviour-Driven Development:
So why shouldn't we use BDD everywhere? Or to put it another way: Does BDD fit into every project's daily routine?
BDD is a Developmentprocess, which can be reduced to four steps:
At its core, it's therefore a test-driven approach that formal requirements at the beginning of the development process.

In practice, lifecycle management systems can be used where scenarios are executable for both manual and automated test cases. For example, with OpenText ALM Octane or in Jira via X-ray the scenarios captured directly in Gherkin syntax as test cases.
These (formalised) requirements form a connecting unit – from business, development, QA, to infrastructure teams. Each team contributes its perspectives and thus develops a common data foundation.
BDD therefore requires high-quality requirement engineering and a cross-functional team.

In practice, however, other constellations are repeatedly encountered:
It is difficult to make a general statement about the sensible use of BDD here.
Those who wish to live BDD should therefore consciously ask themselves the following questions:
When looking at common tutorials on BDD, one can quickly get the impression that Gherkin is an easy-to-use language.
She is too – if you stick to a few rules of the game:
Every requirement, every scenario, is test automation source code.
Every requirement, every scenario, describes expected behaviour.
3. Each requirement, each scenario, must be (continuously) testable.
BDD does not replace a test automation framework, but rather adds another layer.

In acceptance testing, comprehensive workflows are generally tested. The test cases often comprise many individual steps, which are in themselves complex to automate. Even without BDD, this testing level is the most time-consuming process step within product development. Does this, conversely, mean that BDD should be foregone at this level?
As is often the case, it helps to look at the entire test process. If each individual process step can be tested automatically, what is the remaining risk in the overall process?
The focus on the process steps helps in several ways:
„Acceptance testing“ can therefore be highly focused. Exploratory tests or A/B tests with selected user groups are often more cost-effective here and cover the same risk as attempting full test automation with BDD.
A general answer on whether BDD is useful for acceptance testing is ultimately only possible within the specific project context.
BDD connects all professional fields based on unified, formalised requirements.
The use of BDD is not a foregone conclusion and requires careful planning on the project. Just because the syntax appears modern and simple, it still requires continuous effort to use this level in test automation meaningfully.

I was a guest on Richie Seidl's podcast „Software Testing – Quality, Test Automation & Agility“. In the episode „A Critical Look at BDD“, I discuss with the host why BDD isn't always the best solution.

Arrange an initial consultation