ATDD / BDD
In Acceptance Test-Driven Development (ATDD) and Behavior Driven Development (BDD), tests are created prior to implementing a requirement. The tests are created by the triad (Customer, Developer, and Tester roles). ATDD/BDD is as much the conversations about the tests as it is the tests themselves. These conversations are used to create common understanding of the requirements.
Acceptance tests ensure that a software system meets the requirements of a customer. Developing acceptance tests before starting to implement minimizes delays in development and miscommunication and misunderstanding. Rework goes down and productivity and quality go up.
ATDD and BDD
BDD and ATDD are basically the same process. Behavior Driven Development emphasizes the behavior of a system which is being tested. Acceptance Test-Driven Development focuses on the tests for the acceptable behavior of a system
Benefits of ATDD/BDD
In my book, Lean-Agile Acceptance Test-Driven Development: Better Software through Collaboration, I have reports from many people on how ATDD has benefited them. Here's a summary of those benefits:
- Rework Down from 60% to 20%
- Little Room for Miscommunication
- Workflows Working First Time
- Getting Business Rules Right
- Crisp Visible Story Completion Criteria
- Tighter Cross-Functional Team Integration
- Game Changing
- Saving Time
- Automation Yields Reduced Testing Time