Succeeding with BDD
Behaviour Driven Development (BDD) is a set of practices and tools that enables business analysts, developers and testers to collaborate on a single source of truth: Executable Specifications.
Executable Specifications are living documents that serve several purposes.
- For business analysts they are a concise way to express how they want the software to behave
- For developers they are unambiguous requirements that guide and validate the implementation
- For testers they are automated regression tests
Executable Specifications are easy to read by both humans and computers. They are great for building a shared understanding across different roles on a software project. This shifts the focus from finding bugs to preventing them.
Product owners and business analysts are encouraged to join this session even though the second half will involve a little coding. Non-technical attendees will be paired up with technical attendees to create executable specifications together.
Outline/structure of the Session
The session consists of about 80% group exercises and 20% presentations, spread out across the day.
- Brief (30 min) introduction to BDD
- Presentation of the case (a social networking application)
- Analyse stakeholders, differentiators and market value
- Brainstorm user stories
- Prioritise user stories
- Break them down into rules and examples
- Convert examples into Cucumber scenarios (executable specifications)
- Implement logic, following the BDD process
- Reflect and discuss
In this workshop you will learn:
- What is BDD and why should I care?
- Breaking down a user story into examples
- Conversation patterns to create more and better examples
- Turn those examples into executable specifications
- Execute these specifications with Cucumber
- Who does what and when (roles, responsibilities and timing on a BDD team)
Product owners, business analysts, developers and testers
We need a room with cabaret or board room layout, since attendees will be working in groups.
Projector and flipboard.
Only half of the attendees need a laptop. People without a laptop will be paired with someone who has a laptop.
Laptops should have either Windows, OS X or Linux. They also need a text editor (Atom, Sublime Text or other), gcc (if on Linux or OS X) and Ruby 2.x.x. Windows users should install Ruby 2.0.0 (and make sure it's not the x64 build).
Alternatively the attendees can install the JDK, Maven and an IDE such as IntelliJ IDEA Comunity Edition.