BDD & Cucumber Training - Software Cornwall

Course Details




Location: Fibre Hub, Pool Redruth
Full Price: £475 2 days -£695 3 days
Funded Price: £225 2 days - £350 3 days (see description)

Course Content

About Behaviour-Driven Development

BDD – Behaviour-Driven Development – is an approach to software development that not only focuses on fast and maintainable automated tests but also on more precise requirements specifications using collaboration techniques for the whole team.

These techniques help non-technical stakeholders communicate better with developers and testers so they can discover misunderstandings before the software is written. BDD encourages testers to shift their focus from finding bugs to preventing bugs.

With BDD and Cucumber, the whole team collaborates on executable specifications in plain text that serve as both automated tests and living documentation of the implemented system. In other words, a single source of truth for the software, shared and owned by the whole team.

About this training

New teams to Behaviour-Driven Development will benefit from a combination of technical and non-technical training. Our BDD Kickstart three-day class combines the BDD Fundamentals and the BDD with Cucumber modules.

This class provides the most comprehensive training and provides your team with a new set of skills ready to deploy back in the office.

We can work with you to focus on the elements you deem need the most attention. 

The training material has been developed and iterated on by the core team behind Cucumber Ltd, some of the best known BDD authors, practitioners, and coaches in the industry.

SmartBear has helped ambitious teams and organisations transition to BDD from Fortune 500 to high-growth start-ups.

BDD Fundamentals (2-day module)

Course outline:

A two-day course, without computers, for the whole team. The course is exclusively hands-on, interactive, and experiential. There are no slides and no lecture element lasts for more than 10 minutes.

Covers the full BDD process and the following BDD practices:

| Discovery

| Formulation

Day 1: Discovery and process

Topics covered:

BDD Principles

  • Deliberate discovery – “learning is the constraint”
  • Rules & examples – early testing of requirements and understanding
  • Living documentation – specifications that tell you when they are incorrect

The three practices of BDD – Discovery, Formulation, Automation

Deliberate discovery with examples – an introduction to examples

  • Essential vs. incidental
  • Concrete vs. abstract
  • The importance of context

Discovery workshops

  • Guidelines for a productive workshop
  • Example mapping – structuring the conversation
  • Alternatives to index cards

“Story-sized” user stories

  • User story splitting techniques
  • Pitfalls of estimation
  • Importance of slack

Introduction to Gherkin and Cucumber/ Specflow

Ideal BDD process

  • How to fit BDD into your process
  • Who does what
  • Variations and pitfalls

Day 2: Formulation and benefits of “driving” development

Topics covered:

Good Gherkin

  • Basic Gherkin
  • Critiquing scenarios
  • Gherkin tips and best practices
  • Writing Gherkin – basic and advanced

Evolving the ubiquitous language

  • Readability, ambiguity, and bounded contexts
  • Glossaries and alternatives

Tip of the iceberg

  • Workflow scenarios – for the big picture and smoke tests

Organising Gherkin

  • Publishing Gherkin
  • Remote collaboration
  • Structuring large bodies of living documentation

Driving development with automation

  • Automate-first development
  • Principles of TDD (for the whole team)
  • The continuing need for testers
  • Automation as a development skill

Basics of Cucumber/Specflow (for the whole team)

BDD Fundamentals – Learning outcomes

Attendees will be able to:

Day One:

Explain how BDD will help me and my team

Speak knowledgeably about BDD using the correct terminology

Describe the three main practices of BDD

Facilitate an example mapping discovery workshop

Apply Example Mapping to a story from a real project

Day two:

Formulate Gherkin to describe an example

Critique and improve existing Gherkin

Formulate Gherkin for a scenario from a real project

Decide what actions will be needed to fit

BDD into our current process

BDD with Cucumber (1-day module)

Course outline:

A one-day technical course, with computers, for the developers, testers and the techcurious team members. The course is exclusively hands-on, interactive, and experiential. There are no slides and no lecture element lasts for more than 10 minutes.

The course can either be delivered using your in-house development environment or using our web-based training environment.

Covers the essential functionality Cucumber and the following BDD practice:

  • Automation

Automation and Cucumber/Specflow

Topics Covered:

Structure of a Cucumber project – files, folders, and configuration

Interaction of BDD and TDD – interpretation and response to failing tests

Step definitions

  • Regex and/or Cucumber expressions
  • Common failure modes
  • Parameterising your stepdefs
  • Keeping your stepdefs short

Automating a new scenario

  • Undefined steps
  • Snippet generation
  • Common pitfalls and failures

Cucumber life-cycle

  • What is Cucumber actually doing
  • Ambiguous steps – and what to do about them
  • Error signalling – and how not to fix them
  • Isolation – what it is, why it’s important, and how Cucumber helps

Importance of code quality in your “test” code

  • Keeping your tests “truthful”
  • Refactoring techniques
  • Extracting complex setup into “support” code
  • Sharing “support” code with programmer tests
  • Preventing test concerns from leaking into production code

Gherkin features – how to use them, when to use them, and when not

  • Backgrounds
  • Scenario outlines
  • Tags
  • Hooks
  • Data tables

Growing your specification

  • How to split your stepdefs among multiple files
  • How to share state between multiple step definition files

The pyramid and the iceberg

  • Keeping scenarios focused on business behaviour
  • Decoupling documentation from automation decisions

BDD with Cucumber – Learning outcomes

Attendees will be able to:

Get Cucumber set up on my machine ready to hack

Hook up scenarios to the system by writing step definitions in code

Use the BDD process to implement a solution guided by failing scenarios and unit tests

Explain the different types of feedback from acceptance tests and programmer tests

Explain the difference between test-driven development and test-after.

Optionally, depending on time and the group’s priorities:

Take arguments into step definitions

Use scenario outlines

Use data tablest

Refactor scenarios to use a Background

Organise step definitions into multiple files and share state between them

Use tags and hooks

Get feedback on scenarios and automation code we’ve already written on our project

European Social Fund

The European Social Fund is partially funding Software Cornwall to run this training project to provide development training for employees within the software industry. As a Software Cornwall member you will be receiving a discount to this course by email. This course is only available to those from the UK or EU. To participate in the training certain personal information will be required from attendants as proof of employment and eligibility to attend. This information is for the purposes of ensuring that the training will go to the correct participants. You will also be required to complete an evaluation form after the training as part of the attendance.

European Social Fund Logo