Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Example Driven Acceptance Testing

Example Driven Acceptance Testing

Leia em Português

This item in japanese

Testing is considered to be an integral part of development. Code and test cases are important artifacts of an Agile project. However, in many Agile teams unit and integration tests have a higher prominence than acceptance tests. Gojko Adzic and Lisa Crispin suggest approaches to include acceptance tests efficiently as a part of development.

Gojko focused on the need to have an example writing workshop to support acceptance testing. According to him, before the start of the next iteration, the team should have a rough idea on what should get into the next iteration. Without disturbing the current iteration, some members of the team should get into an example writing workshop. This workshop should focus on realistic examples which can be converted to acceptance tests. According to Gojko,

The aim of the workshop is to build a shared understanding among developers, business people and testers about the aims for the next two weeks of work. A more tangible result of the workshop is realistic examples which can be converted to acceptance tests.


Because realistic examples are discussed and written down, inconsistencies and gaps should be easy to identify at that stage and we will get a solid foundation for the development. The workshop ends when everyone involved agrees that there are enough examples and that everything is clear enough to start the work. Meanwhile, for an ongoing iteration the acceptance tests for that iteration should be continuously simplified and organized better.

Lisa Crispin also focused on the importance of examples in defining the acceptance tests. However, she does caution that getting too much into the details would be counter productive. According to Lisa, her testing strategy works like this

  1. Preview meeting with PO + Conditions of Satisfaction - ask questions, get examples, slice big stories
  2. Iteration Planning
  3. High Level Acceptance Tests & other preparatory tasks such as obtaining test data and more examples
  4. Detailed Test Cases
  5. Write automated FitNesse tests (business-facing tests that guide development)
  6. Exploratory testing, automate GUI Smoke testing

Steps 4-6 are done for each user story.

Thus, acceptance testing should be an integral part of development for each iteration. The key lies in involving the business and development team upfront and having enough realistic examples to create useful acceptance tests.

Rate this Article