Course Content
*NEW DATES UPDATED*
This course is now fully booked but please click on Book Now to go on the waiting list for our next session
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
Register Your Interest
Course dates, price and availability will be determined based on volume of interest.
Register Your Interest