Our classes are always live and instructor led from our Exton, PA or EPIC Partner locations. Springhouse AnywhereLive options require Internet Access. Select classes are Guaranteed to Run (GTR). View our complete schedule policies.
In person class only; not available via AnywhereLive
Behavior Driven Development (BDD) combines collaboration and domain discovery techniques with technology. BDD’s purpose is to reduce the potential understanding gap between business level software requirements and the technological realization of those requirements.
This is the official course offered through Cucumber Ltd - the company behind Cucumber. Cucumber is the world's most popular open source Behavior Driven Development (BDD) tool, used by thousands of organizations and companies around the world.
The course is an in-depth, hands-on workshop on discovering level business and transforming high needs into progressively detailed system requirements. The training consists of two modules: BDD Fundamentals and BDD with Cucumber. The BDD Fundamentals module covers domain discovery techniques by using examples, business rules, and a structured ubiquitous language. The BDD with Cucumber module covers how to use the Cucumber tool to drive the plain English software requirements into software which then drives the actual product creation.
This course is for product owners, business analysts, QA specialists and developers who are creating specification for software products. If you are deeply involved in creating detailed business or system requirements that are then turned into software functionality, this is the course for you.
This course is meant to transform the way you think about requirements and tests, not just give you mechanics to use a tool. At the end of this course, you will have enough understanding to begin realizing the benefits of BDD (attributed to Leslie Brooks):
- Bridging the *communication* gap between the business, developers and testers by giving them a common language (Gherkin) for specifications
- Bridging the *collaboration* gap between developers and testers by giving them a common programming language: The language used for step definitions.
- Removing inconsistencies between specifications, automated tests and documentation by merging them into a single source of truth, the feature documents written in Gherkin.
Using an agile process, such as Scrum, will give you a good grounding on the perspective of the BDD approach, but is not a prerequisite. Although not required, being able to read simple examples of code (looping, conditionals, methods) will be very helpful to get the most out of this course. The course is applicable to both .Net and Java languages.
Exams & Certifications
Day 1: BDD fundamentals
Section 1: Introduction
- What are BDD, TDD BDD, and Specification by Example?
- How is this approach different than traditional approaches?
- Deliberate discovery through examples
Section 2: Domain Discovery Techniques
- The context, action, outcome model
- Using rules and examples to create specification tests
- Applying the BDD process to discover rules and requirements
- The three amigos approach to collaborating
- Example mapping
Section 3: Formalizing and Applying Examples
- The importance of ubiquitous language
- Gherkin syntax
- Common pitfalls and how to avoid them
Day 2: BDD with Cucumber
Section 4: Introduction to tool and environment
- Environment setup and exploration
- Keywords of Gherkin
- Creating feature files and stepdef files
Section 5: Basics of Cucumber Scenarios
- Matching with Regular Expressions
- Adding scenarios and using autogenerated snippets
- Using scenarios to drive out domain behavior
Section 6: Improving Scenario Expressiveness
- Using data tables
- Backgrounds to simplify feature files
- Scenario outlines to group examples
Section 7: Managing Multiple Scenarios and Features
- Multiple step definition files
- Sharing state with dependency injection
- Hooks and tags
- Transformers and helper classes
- Strategies for testing software