Behavior-Driven Development

Creating a shared understanding of requirements in product teams
Contributed by

Roman Martin

Published February 09, 2023

What Is Behavior-Driven Development?

Behavior-Driven Development (BDD) is a software development process focused on a test-first, agile testing practice that provides built-in quality by defining tests (and potentially automating them) specifying system behavior.

This practice is focused on the business value using patterns such as Given/When/Then to capture the behavior of the system from a conversation between business and technical people.

Why Do Behavior-Driven Development?

This is a way for product teams to work that closes the gap between business and technical people by:

  • Creating a shared understanding of requirements using an ubiquitous language
  • Helping guide development, decreasing rework, and increasing flow
  • Creating business-facing scenarios that attempt to describe the behavior of a story, feature, or capability from a user’s perspective

How to do Behavior-Driven Development?

The BDD process requires to specify the tests of any software in terms of the desired behavior of the unit. The desired behavior consists of the requirements set by the business that has business value for whatever software unit under construction, this is referred to as an “outside-in” activity.

This process is based on conversations between business and technical people, sometimes identified as discovery workshops. Example Mapping, one of the examples of discovery workshops, is based on the idea that multiple examples of specific cases convey information better than a single bad abstraction of a concept.

Finally, the technical people will use these tests as part of the acceptance criteria of the building activities, or could automate them to guide the development life cycle.

This process could be summarized as:

  1. Set up the scenario or desired behavior of the system
  2. Document the different tests during the discovery workshops
  3. Implement the tests or include them as part of the acceptance criteria of the development life cycle

Look at Behavior-Driven Development

Links we love

Check out these great links which can help you dive a little deeper into running the Behavior-Driven Development practice with your team, customers or stakeholders.

Except where noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license. This site is graciously hosted by Netlify