Course Objectives:

  • To learn tools and techniques to analyse problems in a way that helps to determine which product features to develop.
  • To develop skills in the creation and use of “Acceptance Tests” in the form of “Executable Specifications”.
  • To practise effective story-writing using a combination of “Story Mapping” and “Specification by Example” techniques.
  • To learn how to create and use a “Domain Specific Language” to support the creation and maintenance of “Executable Specifications”.
  • To be able to build Acceptance Tests, as Executable Specifications, that are not compromised by changes in the system under test.

Study this On-Line Course at a Pace that Works for You.

With over 4 hours of video lessons, the same again in reading material and several practical exercises, this course has been designed to study flexibly and fit  around your schedule.

  • You could complete this course in 2 days, or
  • Work incrementally to suit your schedule, and
  • Take more time to reflect and practise what you have learned, between lessons.

Course Content

Good Acceptance Tests are complex. Our aim in writing these high-level functional tests, is to make them understandable, stable and robust in the face of changes to the system or environment. What tools and techniques are effective? How can you avoid the common pitfalls which can lead to tests that are difficult, fragile, slow and prone to intermittent failure.

The course starts with the question - "Why Acceptance Test?" and proceeds to explain: 

  • Properties of Good Acceptance Tests
  • What to Test
  • How Test First Improves Design
  • Techniques to write effective Acceptance Tests

We explore the link between an effective, story-based, approach to requirements and practise the skills to map from Story to Acceptance Test. We share real world examples of Executable Specifications and set some problems for you to practise writing tests using these techniques:

  • Defining the Behaviour of the System
  • Event Storming - Understanding Your Problem
  • Capturing & Translating Requirements
  • Story-Mapping
  • Specification by Example
  • Domain Specific Language

The course is built around a "Four-Layer Approach" to organising and developing testing infrastructure to make tests easy to write, easy to understand, and flexible in the face of system change, and includes:

  • Acceptance Tests & BDD
  • Building a DSL for Testing
  • Test Isolation
  • Testing Asynchronous Systems
  • Testing Time

The Course concludes by looking at how we isolate the system under test and create effective, efficient test cases in complex systems.


This course is built around a series of 10 - 20 minute videos by Dave Farley, which comprise about 4 hours of video in total.

Reading Material

There are detailed written notes that accompany each lesson. These contain all the information from the videos and additional advice, tips and references for further reading and viewing so you can extend your learning.

Check Your Learning 

There are regular review exercises, with multiple choice questions, throughout the course, to help you check your learning. (There is no pass/fail requirement.)

Practical Exercises

This course includes 3 practical exercises in which you will put these ideas into practise - essential to learning these techniques.

You Will Also Get:

  • A Completion Certificate
  • A FREE copy of Dave Farley's latest book - "Continuous Delivery Pipelines"  
  • A 20% discount on your next course purchase (excluding special bundle prices other special offers).

About Your Instructor - Dave Farley:

Dave is:

  • Pioneer and expert practitioner in CD, DevOps, TDD and software development in general.
  • Author of the best-selling books on "Continuous Delivery" and "Modern Software Engineering".
  • Inventor of Deployment Pipelines 
  • Creator of the CD YouTube channel

Dave has spent 25+ years developing world class software, and is passionate about helping software developers around the world to improve the design, quality and reliability of their software, by sharing his expertise through his consultancy, YouTube channel, and training courses.

Dave has reconfigured his successful live courses, into an on-line learning format, so you can study and practise these techniques at a time and a place that fits around your busy schedule.

What People Say About Dave's Training Courses:

“I'm still trying to process all of the knowledge but I can tell you now that it was invaluable to my professional development in DevOps! Thank you!”
      - Developer

“The Acceptance Testing module was probably the best 2 hours of training I’ve ever been on.”
- Software Engineer

"It has helped me to know what great looks like and come up with a plan to get there. It's well put together. The worksheets encourage doing, rather than just consuming."
      - Co. Founder

“The fact that Dave is one of the creators of the discipline and had successfully implemented it gives him huge credibility.”
      - Senior Developer

"As busy team lead, I found that being able to pick up the course at times that suited me and the ability to work at my own pace was a much better learning experience than travelling to a live course."
      - Software Team Lead