Behaviour Driven Development
Behaviour Driven Development, often described as “TDD done well”, is a pull-based approach to delivering software that matters through the whole software lifecycle, from vision to code. It minimises rework and over-delivery, bakes quality in, and is founded on respect for people in their various roles and the language that we use to collaborate and communicate. BDD has its origins in NLP and the Sapir-Whorf hypothesis: the idea that the words we use affect the cognitive model of our work. It decouples the learning associated with TDD and Acceptance Testing from the word “test”, using the more natural vocabulary of examples and behaviour to elicit requirements and create a shared understanding of the domain.
In this highly practical workshop, we pass on the mindset which has brought multiple benefits to Enterprise projects around the world.
Learn how to:
- avoid writing code that doesn’t need to be written
- communicate more effectively with technical and non-technical team members
- document code simply and effectively through executable examples and descriptions of behaviour
- use examples of behaviour to aid good design
- automate regression testing and communicate the value of automation
- focus on a project vision while breaking down requirements into code
- document, refactor and safely change legacy code
Programme
- A quick Introduction to Agile from a BDD perspective
- Describing examples with “Should”
- The Single Responsibility Principle
- Collaboration and Mocks
- Stories and scenarios
- Splitting stories and getting feedback faster
- Moving up the stack: Feature Injection
- Outside-in
- Plan, Do, Check, Act / Adapt
- The value of automation
- Working with legacy code
- Review and questions
Homework is provided for participants to enjoy in their own time. Participants should bring a USB key with 2MB of free space.
Is this course for you?
This course is aimed at developers.
This course is of particular benefit to developers struggling with TDD, wanting to learn TDD for the first time, or transitioning into an Agile or Lean process. No previous knowledge of JUnit, mocks or TDD is required.
Course Prerequisites
This course requires a moderate understanding of Java. Examples of syntax are provided throughout. C# developers are welcome – please brush up on standard Java libraries and syntax (loops, arrays, lists, sets, maps) before attending.
Course Labs and Exercises
The exercises in this course are delivered using pre-created projects in Eclipse, with all required libraries present. The techniques taught are independent of tools. Libraries used in this course include JUnit, Hamcrest, Mockito and JBehave.
This course can be delivered at customer sites, or booked through Skills Matter.
