Behaviour Driven Development: Overview
Behaviour Driven Development: Helping business and technology professionals to collaborate in delivering the best possible products.
This course is designed to leave delegates more confident in five key areas:
- Defining the problem: Why it’s difficult to specify what software should be
- BDD scenarios: Specifying acceptance criteria with examples of behaviour
- Where BDD scenarios fit in with full-cycle product development
- Gherkin: how clear and concise scenarios can drive automated regression tests
- BDD in context: what this tool means for your organisation
For a private, on-site course for your team get in touch now!
Live Webex Online Delivery
Our Live Webex Online course: Effective Distributed Teams with BDD, delivers similar learning outcomes but optimised for
- Distributed teams
- Virtual teams
- Remote workers
- Offshore development
Behaviour Driven Development: Approach
Our BDD course is a workshop designed to allow professionals from business and technology backgrounds to learn how to collaborate effectively. It explores the use of BDD as a tool to support the entire software development lifecycle from understanding the requirements to preventing regression of existing features. Delegates leave having written real BDD feature files based on their own products, and know what to do next to establish automated regression testing.
BDD can be highly effective as a tool to support the consistent delivery of high-quality and high-value software, but sometimes the benefits are not realised when used with the wrong intentions and without the right people. This workshop will establish the intent and practices of BDD before helping delegates apply it directly to their context by writing scenarios on their existing or upcoming products.
Understand the Intent
It’s often very difficult for everybody involved in the delivery process to agree and understand what is required before the feature is built. BDD provides a structure to this conversation by considering how the product should behave in different scenarios. For example, should the login system allow you to try again if you entered the wrong password? How about if you’ve already tried four times? This course introduces the concept of scenarios structured as preconditions, actions and results. For example:
Given I have entered the wrong password four times, when I try again then I see an error message stating my account is locked.
Delegates will learn that these conversations bring assumptions to the surface that may be clarified before development takes place.
Leave a course with practical BDD skills
Having learned that BDD allows business and IT professionals to collaborate on deciding what to build, delegates then practice these techniques on an example product backlog. The given-when-then format is powerfully simple but surprisingly easy to misinterpret at first. Common mistakes such as using scenarios to describe a bug; rather than how the system should respond to a problem; are explored as a group to consolidate learning. These practices are further established with exercises to refactor poorly-written scenarios that use inappropriate technical or business language, lack focus, or test the wrong thing.
Apply BDD to your product for real
The final part of the workshop is a practical coaching session based on real features from your existing or planned product development. This allows context-specific issues to be addressed with an experienced BDD consultant and allows delegates to leave the course having started to use the techniques learned. Whether your product is still a twinkle in the product owner’s eye or an established production system, every team is able to engage in breaking down features into real BDD scenarios and experience the process of deciding what to build. Some teams that already have test automation expertise chose to use this time to explore building real automated tests.
Behaviour Driven Development: Outcomes
Clients that have attended our Behaviour Driven Development workshop have left the course with the following:
- Technology and business people have gained experience in working together to define requirements
- People have gained a solid understanding of Gherkin formatted scenarios and how these may be automated with Cucumber, Behat, Specflow, or Lettuce
- Teams have considered where BDD fits into their overall process as a tool supporting effective delivery
- Test specialists have had the opportunity to lead group exercises with their colleagues, creating the basis for a productive ongoing working relationship
- With the right environments in place teams have the opportunity to end the course by implementing a real BDD feature file with automated tests