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.
Before BDD there was ATTD: ATDD Vs. BDD Vs. Specification By Example Vs ….
- ATDD From the Trenches
- A case study for BDD in improving throughput and collaboration
- BDD and the New Model for Testing– a presentation
- The Beginner’s Guide to BDD
- Oh Behave! Behavior-Driven Development with Cucumber – a presentation
- BDD and User Story Specification: Examples
- Developing Microservices with Behavior Driven Development and Interface Oriented Design
- Specification by Example – High level overview, good for non-Technical readers, from Thoughtworks
- Specification by Example, 10 years later
- Specification By Example and Product Quality
- 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
- 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
- BDD in Action – Behavior-Driven Development for the whole software lifecycle – John Ferguson Smart
- The BDD Books – Formulation – Document examples with Given/When/Then – Seb Rose and Gáspár Nagy
- The BDD Books – Discovery – Explore behaviour using examples – Seb Rose and Gáspár Nagy
- 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)
- RobotFramework – keyword driven test automation – can be used with examples driving the tests
- Cucumber – (versions have been ported to most programming languages/platforms)
- Serenity BDD is an open source library that aims to make the idea of living documentation a reality.