What Is Behavior Driven Development in Agile?
Agile 101
What Is Backlog Refinement?
BDD is a process designed to aid the management and the delivery of software development projects by improving communication between engineers and business professionals. In so doing, BDD ensures all development projects remain focused on delivering what the business actually needs while meeting all requirements of the user.
Behaviour Driven Development Is Not About Testing
Yes, practicing BDD means you’ll specify and execute tests. But testing is not the purpose.
Because like its TDD (Test Driven Development) companion, BDD is not about testing. It’s about achieving business goals and customer outcomes at the application level. Just like the definition so clearly states.
What’s the Relation Between BDD and Agile?
Well, with BDD you ensure working software over comprehensive documentation at the application level and still get that documentation.
Also, Agile has strong roots in eXtreme Programming. And Dan North—who originated BDD—is a long time eXtreme Programming enthusiast.
Three Amigos as the Core Idea of Behavior Driven Development
What each of the Three Amigos brings to the table:
What Are the Benefits of BDD?
- Automated acceptance tests providing quick feedback to keep implementation on track.
- Living specifications that are never out-of-date.
- Automatically generated technical and end-user documentation, also never out-of-date.
The Phases of Behavior Driven Development
These phases are:
- the scenario (given)—the initial state, for example ‘the user is logged in’,
- The event (when)—what happens, for example ‘the user presses the logout button’, and
- the outcome (then)—the expected response, for example ‘the login page is shown’.
The outcome of these activities should be a Product Backlog that’s DEEP. An acronym coined by Roman Pichler:
A BDD Example
Discovery
The list goes on and on.
Formulation
How Not to Get the Most Out of BDD
What Is Behavior Driven Testing
What Is the Difference Between TDD and BDD?
- BDD is about improving collaboration and communication between developers, testers, and business professionals. So that software meets both business objectives and customer requirements.
- TDD is about design and specifications at the code level.
Start Creating Useful Software Customers Want
Check out Nimble Now!
Humanize Work. And be Nimble!