SpecFlow BDD & Selenium WebDriver C#, 5 Day

Behaviour-Driven Development (BDD) has become a well established approach to testing, providing ‘living documentation’ of the system under test, and being able to use the documentation to drive the test automation. Our BDD courses teach you what BDD is all about, how to write your Gherkin Feature files, and then how to bind the test automation code to the features. To learn more about BDD visit this page.

The perfect introductory course on Behaviour-Driven Development. This course covers writing Feature Files in Gherkin, then generating Step Definitions and then writing the code bindings using Selenium WebDriver C#.

This course differs from our other SpecFlow course in that it also starts with a 2 day primer on web automation with Selenium WebDriver. This makes it a very comprehensive course taking the newcomer to WebDriver and SpecFlow and getting them up and running with the whole framework.

Technologies Used

This course uses SpecFlow, NUnit, and WebDriver C# all in Microsoft Visual Development Studio. The course is modular, so can be done using SpecRun (SpecFlow+) as your test runner or NUnit, you can also choose between .NET Core or .NET Framework. If you are unsure, we would recommend NUnit.

Course Delivery

The course is delivered online. It is live, instructor-led training over 5 days. Each day is an online session of approx. 3.5 hours. All delegates receive a comprehensive workbook, and the sessions are recorded. It can be accessed from anywhere in the world. We also offer on-site training at your offices if required.

Course Topics

Installation of the SpecFlow Framework

SpecFlow Visual Studio plugin, installing the SpecFlow Libraries, WebDriver and other dependent libraries. Creating a project structure, creating a Feature File, formatting and execution of Feature Files

Writing your First WebDriver Test Case

Creating our initial NUnit Test, the import statements, invoking a browser, writing to the console, writing a simple script against the Web Site

Recording Tools

Recording & Exporting Scripts using Selenium IDE

Object Identification

Element locator strategies, Chrome Developer Tools and other extensions, Regular Expressions, Index, Xpath functions


What is Synchronisation, Adding Delay, Implicit versus Explicit Waits, common examples

Capturing Values and Validation

How to capture values from the Web Site, Using Asserts, Execution Flow, Debugging Tools

Introduction to BDD

A background to BDD and its benefits. The process of BDD. An overview of the tools available, terminology.

Introduction to Gherkin

Feature Files, introduction to the Gherkin language, basic syntax

More Gherkin

Using the Background fixture, Parameters, Doc Strings, Examples and Data Tables, using Tags to organise execution, commenting

Step Definitions & Code Binding

Creating our Test Classes, Using prototype step definitions, fixing errors for executing feature files, creating step definition Methods, expanding Methods with Parameters

Deconstructing Step Definitions and Regular Expressions

Step Definition syntax, using Regular Expressions, using multiple annotations for one Method, re-using Methods for more than one Scenario

Handling Tables

Scenario Outline, In-line Step Table Iterating


Using a base class with before & after hooks to accelerate test writing.

Executing the SpecFlow Features

Using SpecFlow, Using Tags, Results & Reporting, Command line execution, SpecFlow Fixtures for Execution Flow. Parallel Execution

Sharing Data

Simple Instance Fields, Context Injection

Cross Browser testing

Setup for different web browsers

Integrating SpecFlow into the POM

Using SpecFlow & WebDriver under the Page Object Model.

Continuous Integration

Building SpecFlow pipelines in Azure DevOps

Related Courses: