Agile
Acceptance Test Driven Development (ATDD)
Course Overview
This course is a hands-on workshop intended to teach students how to do Acceptance Test Driven Development. The class begins with an overview of Acceptance Test Driven Development and Behavior Driven Development. It then focuses on requirements, using specification by example. Students are taught to move from User Stories to Features to document requirements.
After the introductory material, the course shifts its focus to the Cucumber tool and Gherkin language. Students learn how to create executable acceptance tests that are the actual requirements. From there, the steps in the feature are converted into step definitions.
Students will work numerous examples where they create and execute acceptance tests for existing web sites (special sites have been developed for this part of the course) and API’s. As part of these exercises, students will learn to refactor their test code, create a Domain Specific Language, and learn to use the Page Object Model pattern.
Course Length
Target Audience
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.
Topic List
Lesson 1: Introduction: What is ATDD/BDD/TDD?
What is ATDD – Acceptance tests
What is BDD
What is TDD
Red – Green – Clean
How will ATDD/BDD really help?
Understanding Roles & Responsibilities
ATDD/BDD work process Flow
ATDD best practices
Lesson 2: Cucumber and Gherkin
What is Cucumber
Introduce Gherkin
Gherkin Syntax – Keywords
Features and Feature files
Creating scenarios – using Given/When/Then/And/But
Creating multiple scenarios for a single feature
Background key word
Scenario Outlines
Regular expressions
Good/Bad Practices – DSL
ATDD Best Practices
Tags
Lesson 3: Tools and web driver
Selenium and Selenium web driver
Practice – Case study number 1
Lesson 4: Programming the tests (step definitions) in Java
Case Study number 2
Case Study number 3
Lesson 5: Testing an API
Interfacing with an API
Case Study 1: Testing Git Hub
Parsing the response
Case Study 2: Testing Google Maps
Lesson 6: Advanced topics
Folder Structure – Configuration, Feature files, and step definition files
Libraries and Logging
Refactoring test code – the DRY principal
Creating a DSL of steps
Refactoring with the Page Object pattern
Case Study number 4