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.
Videos
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.