Understanding the benefits of test management and BDD

  December 16, 2020

Teams have been testing software for as long as software has existed. With the increased adoption of continuous integration and delivery, automated tests are becoming essential. Behaviour-driven development (BDD) is a modern approach to developing software that grew out of Agile and test-driven development.

Most teams/organisations can benefit from test management and BDD, but BDD adoption is much more than simply managing tests – automated or manual.

Test management

It’s important to define a few commonly used terms.

  • Test: An activity that gives you information about how a system is performing
  • Management: The conducting, supervision, or coordination of some activity
  • Test management: Managing a body of tests to assess and report on various aspects of the quality of a system

From these definitions, you can see that “test management” is a very broad term. It aims to synthesise meaningful insights into a system’s fitness for purpose. The data for that synthesis comes from multiple test domains (functional, load, penetration etc.), generated by different tools, reporting results in different formats at varying frequencies.

Behaviour-driven development

BDD, on the other hand, is a specific set of practices that lead to improved outcomes for Agile teams and their organisations. The three core practices of BDD are:

  • Discovery: Create a shared understanding of the requirements through collaboration, typically achieved through a structured conversation centred on rules and examples
  • Formulation: Examples of system behaviour are documented using business terminology
  • Automation: Implementation design is guided by the automation, requiring the full participation of the delivery team before the corresponding implementation code is written

As you can see, BDD has a much more prescriptive definition than test management. While it does lead to the creation of some automated tests, this is not its primary goal. And the focus of the tests is usually limited to the functional behaviour of the system.

The primary goal of BDD automation is to guide the development team as it develops production code. However, once the production code is written, the BDD automation can be considered as acceptance tests from a test management perspective. So, the results of executing the BDD automation should be incorporated into reports that assess the quality of the system.

Comparing the two

The primary goal of test management is to provide relevant, actionable insights into the quality of the system. BDD has grander (but narrower) aspirations – to reduce misunderstandings and rework by requiring collaborative discovery and formulation BEFORE any implementation code is written. Additionally, since the automation of the business-readable specification is inextricable from the design of the implementation, it needs to be carried out by the delivery team, not a separate automation team.

Consequently, BDD has broader impact on the team/organisation. It requires early and frequent collaboration where it did not exist before, and the full participation of the development team in automation. Test management is less prescriptive and typically requires departmental, rather than organisational, change. A major challenge for test management is combining manual and automated test results into a coherent form, which is made even harder by the many domains, tools, and result formats that need to be coordinated.

The focus of BDD is specifying the functional behaviour of the system – non-functional requirements are rarely covered. Test management is applicable to any test domain (functional or non-functional).

To summarise the information above:

Test management BDD
Description Managing manual and automated tests to assess multiple aspects of the quality of a system. A set of practices that helps organisations refine requirements and deliver software collaboratively.
Primary goal Provide actionable insights into the quality of the system. Reduce misunderstandings and rework by reaching a shared understanding of a story before development begins.
Organisational impact Little impact. That is,  beyond selection of relevant tools that target selected test domains (e.g. penetration, load etc.). Test automation (when it takes place) is typically done during/after implementation. Broad impact. Requires  increased early collaboration, a focus on using business terminology, and automation by the development team BEFORE implementation.

Interaction between test management and BDD

Although test management and BDD are different, there is one area of overlap. The automated tests created by the BDD practice of automation should be included within the scope of the product’s test management activities. Since we can think of BDD automation as being equivalent to automated acceptance tests, it is essential to merge these results with other data collected by test management.

Choosing the right approach

No organisations can operate reliably without some sort of test management. The level of process and tool support they need vary wildly, depending on the size of the organisation and whether the domain they work in is regulated or not.

BDD is a set of collaborative and technical practices that enhance Agile approaches to software specification and delivery. The stimulus for adopting BDD is when you notice inefficiencies in your software development lifecycle (SDLC), such as ineffective communication between disciplines, excessive rework, missed delivery dates, or challenges adopting continuous delivery.

By combining BDD and test management practices, teams will experience a smoother SDLC, improved transparency, clearer workflows, and more effective collaboration. The expected outcomes for the organisation include reduced costs, improved staff morale, and higher customer satisfaction.

Many test management tools have integrations with automation tools, streamlining part of the testing lifecycle. A few tools even aspire to support all three core BDD practices.

Conclusion

Test management and BDD are both valuable, but they are not the same thing – or even closely related.

Test management and BDD have different goals and require different patterns of collaboration across the organisation. Adopting BDD does contribute to the body of tests that provide information about the system, but that is not its primary goal. It is a mistake to think of BDD as a test activity.

Test management and BDD are both valuable, but they are not the same thing – or even closely related.

In the end, most organisations would benefit greatly from applying both.