Behaviour Driven Development (or BDD) is an approach that gets team members to collaborate on describing the behaviours of the user story or product feature they’re attempting to build. The behaviours are described with a series of examples, written in a language that users would be able to understand, that each prove one point about the feature or User Story. The examples can then be automated to provide acceptance tests that prove the expected behaviour, before the code is written. However, even if the examples can’t be automated, there is great value in collaborating on the examples before the code is written. Caveat: this is an amazingly powerful technique, however it takes months to learn and put into practice.
BDD improves quality and reduce defects since it ensures that several team members agreed on the problem that needed solving. BDD doesn’t replace Exploratory and other forms of Testing.
Before BDD there was ATTD: ATDD Vs. BDD Vs. Specification By Example Vs ….
- ATDD From the Trenches
- BDD and the New Model for Testing– a presentation
- BDD and User Story Specification: Examples
- The Beginner’s Guide to BDD
- A case study for BDD in improving throughput and collaboration
- Developing Microservices with Behavior Driven Development and Interface Oriented Design
- Introducing BDD
- Oh Behave! Behavior-Driven Development with Cucumber – a presentation
- Real-World BDD
- Specification by Example, 10 years later
- Specification By Example and Product Quality
- Specification By Example Summary on Wikipedia
- Three top tips for using Given When Then
- Who writes the Cucumber scenarios?
Anti-Patterns for Behaviour Driven Development:
- Specification by Example – Gojko Adzic – the original book on the subject – focuses entirely on people and collaboration
- BDD in Action – Behavior-Driven Development for the whole software lifecycle – John Ferguson Smart
- The BDD Books – Discovery – Explore behaviour using examples – Seb Rose and Gáspár Nagy
- The BDD Books – Formulation – Document examples with Given/When/Then – Seb Rose and Gáspár Nagy
- Behavior-Driven Development with Cucumber: Better Collaboration for Better Software – Richard Lawrence, Paul Rayner – Good for non-Technical and Technical readers
- The Cucumber Book: Behaviour-Driven Development for Testers and Developers – Matt Wynne, Aslak Hellesoy and Steve Tooke
- The Cucumber for Java Book: Behaviour-Driven Development for Testers and Developers – Seb Rose, Matt Wynne and Aslak Hellesoy
- Agile Test Tools – Google Spreadsheet
- Concordion – a tool for creating living documentation. (I.E. Documents or examples that are written in text, but run automated test cases)
- Cucumber – (versions have been ported to most programming languages/platforms)
- RobotFramework – keyword-driven test automation – can be used with examples driving the tests
- Serenity BDD is an open-source library that aims to make the idea of living documentation a reality.
Mark Levison has been helping Scrum teams and organizations with Agile, Scrum and Kanban style approaches since 2001. From certified scrum master training to custom Agile courses, he has helped well over 8,000 individuals, earning him respect and top rated reviews as one of the pioneers within the industry, as well as a raft of certifications from the ScrumAlliance. Mark has been a speaker at various Agile Conferences for more than 20 years, and is a published Scrum author with eBooks as well as articles on InfoQ.com, ScrumAlliance.org an AgileAlliance.org.
*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