top of page


Mastering ATDD with

Cucumber and Selenium


This course is a hands-on workshop intended to teach participants how to do Acceptance Test-Driven Development.  The class begins with an overview of Acceptance Test-Driven Development and Behavior-Driven Development.  Participants are taught to move from User Stories to Specification by Example, and then to use these examples in the creation of test cases.


Throughout the course, we use the Cucumber tool and Gherkin language.  Participants learn how to create executable acceptance tests that are the actual requirements.  From there, the steps in the feature are converted into Java step definitions.  Participants will work numerous examples where they create and execute acceptance tests for existing web sites and API’s


Special web sites built specifically to be tested are used in this course.  As part of the exercises, participants will learn to refactor both their test code and production code, create a Domain-Specific Language, and learn to use the Page Object Model pattern. 



The course is intended for testers, developers, quality engineers and managers who want a practical course in ATDD.  As programming exercises are included in the course work, a knowledge of Java is necessary.


3 Days

Course Objectives

Upon completion of this course, participants will be able to:

  • Gain knowledge and experience using ATDD, BDD, And TDD

  • Write requirements in Gherkin that are executable

  • Create step definitions for the Gherkin requirements

  • Refactor test and production code

  • Create a Domain-Specific Language

  • Write good test code, including using patterns (Page Object, eg) and the DRY principle

  • Understand Continuous Integration and its benefits on an Agile project

  • Test web based applications using Selenium Web Driver

Detailed Course Outline

I.  JUnit

A.  Overview of JUnit

B.  Testing techniques with JUnit

C.  Class exercises


A.  ATDD Overview

B.  ATDD Process:  Discuss, Distill, Develop, Demo

C.  BDD Overview

D.  TDD Overview

E.  Red – Green - Clean

F.   Understanding Roles and Responsibilities 

G.  ATDD/BDD Work Process Flow and integration with tools

H.  ATDD Best Practices



A.  Cucumber Overview

B.  Gherkin Overview

C.  Gherkin Syntax – Keywords

D.  Features and Feature Files

E.  Create Scenarios

1.  Given

2.  When

3.  Then

4.  And

5.  But  

F.  Create Multiple Scenarios for a Single Feature

G.  Class Exercise #1

H.  Background Keyword

I.   Scenario Outlines

J.  Class Exercise #2

K.  Regular Expressions

L.  Good/Bad Practices – DSL

M.  Class Exercise #3

N.  Tags

O.  Class Exercise #4


IV.  Testing Web Apps

A.  Selenium and Selenium Web Driver

B.  Class Exercise #1

C.  Class Exercise #2

D.  Class Exercise #3

E.  Class Exercise #4

F.  Class Exercise #5

G.  Page Object Pattern


V.  Testing an API

A.  Basic Principles

B.  Class Exercise

VI.  Continuous Integration

A.  Branches and Merges

B.  Integration complexity

C.  Continuous Integration

D.  CI environments

bottom of page