Behavior Driven Development (BDD)

Upcoming Trainings

Contact Us

Course Overview

This is the official course offered through Cucumber Ltd – the company behind Cucumber. Cucumber is the world’s most popular open source BDD tool, used by thousands of organizations and companies around the world. Our approved instructors have written books about BDD and Cucumber and are maintainers of the numerous Cucumber implementations for software platforms such as Java, Ruby and JavaScript.

Behavior Driven Development 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. The

BDD Kickstart training is a 2-day applied workshop with plenty hands on practice. 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. Cucumber is the world’s most popular open source BDD tool, and it lets you keep specifications, automated tests and documentation in the same place – a single source of truth that’s always in sync.

One of the biggest challenges with requirements is misunderstanding them. BDD is not founded on using a tool, but on a transformative way of approaching requirements with a triad of customer, tester, and developer. BDD scenarios become a detailed specification of the system, not a post coding verification artifact. By using the standardized vocabulary of the Gherkin syntax, requirements can be created by business facing individuals and then evolved into unambiguous, executable software specifications.

The course is an in-depth, hands-on workshop on discovering level business and transforming high needs into progressively detailed system requirements.

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):

  1. Bridging the *communication* gap between the business, developers and testers by giving them a common language (Gherkin) for specifications
  2. Bridging the *collaboration* gap between developers and testers by giving them a common programming language: The language used for step definitions.
  3. Removing inconsistencies between specifications, automated tests and documentation by merging them into a single source of truth, the feature documents written in Gherkin.

Cucumber lets you keep specifications, automated tests and documentation in the same place – a single source of truth that’s always in sync.

Course Objectives

  • Understand Behavior Driven Development
  • Learn how to evolve high level requirements into acceptance tests
  • Learn tips and pitfalls of BDD and Cucumber
  • Learn how to use Gherkin and associated tools to specify requirements.
  • Learn conversation patterns for discovering edge cases
  • Practice example mapping and discovery workshops
  • Be able to installing Cucumber and setting up your development environment
  • Be able to write step definitions
  • Apply backgrounds, tags, tables, scenario outlines and other Gherkin techniques

Course Topics

  • BDD fundamentals
    • Introduction
    • Domain Discovery Techniques
    • Formalizing and Applying Examples
  • BDD with Cucumber
    • Introduction to tool and environment
    • Basics of Cucumber Scenarios
    • Improving Scenario Expressiveness
    • Managing Multiple Scenarios and Features

Who Should Attend?

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. 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.