Back to training

Acceptance Test Driven Development with Thomas Sundberg


Acceptance Test Driven Development, ATDD, is about writing the acceptance tests before the implementation of a system.

Writing the tests before the implementation is complicated. To make it easier, you implement specific examples instead of general concepts. This makes it easier and the complicated part is transformed into finding good examples. Specification by Examples is therefore another name for ATDD.

Who should attend

Product Owners, business analysts, testers and developers, everyone involved in the quality of the implemented system.

Why attend

With ATDD you will learn how to solve the right problems for your customers by focusing on the right features at the right time. You will also:

  • Learn how to overcome the telephone game effect by understanding the business problem right from the start
  • Understand outside-in testing
  • Create executable specifications
  • Understand what makes an example a good example and what makes it a bad example
  • Implement good examples in a language possible to understand for anyone – not just for programmers
  • Understand the important difference between unit tests, integration test and end-to-end tests and when to use which test type

This is a hands-on course where the participants are expected to write examples and implement enough code to make the examples pass.
The participants will build a web application during the course. It will be specified using executable examples. It will be automated using Cucumber-JVM and Selenium.


ATDD consists of three different parts:

  • Automated tests – tests that verifies the example you found
  • Executable specifications – specifications on how the system should behave
  • Living documentation – the executable examples are possible to understand by non-developers who are interested in how the system is supposed to work

In this 2-day course:

  • We will look at how you can come up with good examples that can act as executable specifications and therefore living documentation.
  • We will implement a system based on the executable specification.
  • We will start with the automated tests and allow them to tell us when we are done with the system.

The result will be a system whose implementation has been driven by the automated acceptance tests. These executable specifications will then act as living documentation.


The participants should bring laptops with a Java development environment installed. The preferred development environment is IntelliJ IDEA since it will allow the participants to get started very quickly with a skeleton application using Gradle.

The instructor will supply the participants with a skeleton as a starting point for the implementation. It will be made available through GitHub. The participants will then work in small groups, each using their own branch.

Practical details

  • Included: welcome coffee, lunch and coffee breaks
  • Language: English
  • Participants will receive a certificate of attendance

Need more information? Contact us and we’ll help you choose the right course for you.