Tutorial vom 26.02.2016

David Evans
by David Evans

Learn the key process patterns for successful application of Specification by Example.

Abstract:

Specification by Example has been described in two successful books by Gojko Adzic, who explains that there is far more to the success of high-performing agile teams than just automated testing and continuous integration. Specification by Example is a set of practices and patterns that successful teams use to derive scope from business goals, specify solution details collaboratively, make key acceptance conditions explicit through the use of concrete testable examples, and provide fast and frequent verification that our system behaviour matches our expectations.

This tutorial, for testers, developers and agile business customers, will enable you to apply the practices and patterns of Specification by Example to reach a shared understanding of business problems, discover hidden assumptions and domain concepts, highlight important exceptions and edge cases, and recognise when a specification is incomplete.

Through a series of practical exercises using a sample domain, you will learn how to collaboratively translate business requirements into user stories that are directly illustrated and elaborated by concrete examples, which can in turn be directly represented as automated acceptance tests. We will also look at how those tests are represented and automated in popular open-source agile testing frameworks such as Fitnesse.

Key learning points include:

  • How to overcome problems of incomplete, unclear or ambiguous requirements
  • How to use Story Maps to derive iteration-level stories from higher level business goals
  • How to illustrate specifications with concrete examples to create a single source of truth for testing and development
  • How to identify and avoid functional gaps and inconsistencies in specifications and tests
  • How to run workshops to facilitate collaboration, shared understanding and communication of intent
  • Good practices for designing specifications with examples and acceptance tests for agile teams
  • How to create a living documentation system to add value to your process long-term