Behaviour-Driven Development

This course explains what behaviour-driven design is all about, describes why it's a beneficial approach to application specification and development, and leads you through the process of how to do BDD in practice.


3 days



  • Software development roles catered for: product owners, architects, functional managers, test managers, developers

What you'll learn

  • What is BDD
  • Defining requirements
  • Feature analysis
  • Automation, management, and reporting
  • Testable architecture

Course details

Introduction to BDD

  • BDD vs TDD
  • BDD and requirements analysis
  • Key principles and features of BDD
  • Benefits of BDD

Defining Requirements

  • Defining a vision statement
  • Specifying business goals
  • Identifying stakeholders
  • Identifying capabilities

Specifying Features

  • Overview of features
  • Features vs. user stories
  • Illustrating features with examples

Creating Executable Scenarios

  • How to write executable scenarios
  • Using tables
  • Do's and dont's
  • Organizing features

Automating Scenarios

  • Automation options
  • Overview of Cucumber
  • Other tool possibilities

Automating Acceptance Tests

  • What makes a good acceptance test
  • Setting up a process for automating acceptance tests
  • Defining business rules, business flow, and the technical layer

Acceptance Tests for UI Requirements

  • Pros and cons of UI testing
  • Using Selenium WebDriver
  • Page objects

Acceptance Tests for Non-UI Requirements

  • Controllers, business logic, and services
  • Non-functional requirements

Project Management and Reporting

  • Feature readiness and coverage
  • The importance of living documentation
  • Using Atlassian Confluence, Jira and Xray for Jira

Managing the Build Process

  • Continuous integration
  • Continuous delivery
  • Deployment

Testable Architecture

  • Key concepts of testable architecture
  • Benefits of testable architecture
  • Testable Architecture methodology
  • Examples