Test Driven Development [TDD] and Behaviour Driven Development [BDD] are often confused because the similarity of their names. TDD is the original technique – “engineering practice where the developer writes their Unit Test case before they write their code”. It helps raise quality by ensuring the developer built what they intended to. However, it doesn’t prove that the developer had the right intention when they wrote the code. BDD is an evolution of TDD. In this approach, the people doing the work – often a BA, Developer, and Tester – work together to define the acceptance criteria as examples that could be understood by a non-technical person. Further, the examples are often automated as acceptance tests on the boundary of the system.
The internet is rife with sources that advocate one over the other. This feels disingenuous. My experience is that I usually need both tools along the delivery path for a product.
- TDD vs BDD: A Developer’s Pocket Reference With Examples
- TDD vs BDD – from Matt Wynne
- What’s the difference between Unit Testing, TDD and BDD?
*Thank you for visiting the World's Largest Opinionated Agile Reference Library. This content is created and the links are curated through the lens of Agile Pain Relief Consulting's view of what is effective in the practice of Scrum and Agile. We don't accept submissions and emails to that effect are marked as spam. Book listings may use affiliate links that could result in a small commission received by us if you purchase, but they do not affect the price at all. From experience, this won't amount to anything more than a cup of coffee in a year.« Back to Glossary Index