What is Acceptance Test-Driven Development?

16. March 2010

Acceptance Test-Driven Development (ATDD) employs the approach of specification by example. ATDD is also known as Storytesting or Behavior-Driven Development (BDD).

Instead of talking in abstract terms about what the system will do, the team collaborates to create specific examples that specify what the system should do from the user's perspective. These executable specifications function as acceptance criteria for the user stories the team is developing. The team specifies as concretely as possible what the specification is, and then the developers code enough of the system to make the test pass to satisfy the acceptance criteria for that specification.

Frameworks such as Fit and Cucumber provide the means to embed this kind of collaboration into the development process. As Mugridge and Cunningham point out:

“[ATDD]…tests are a natural way to help develop this ubiquitous language. Such tests provide a comprehensive bridge between discussions of business need and software design. Writing concrete examples as tests explores ways in which to use and evolve the ubiquitous language for expressing business objects, constraints and rules.”

Fit for Developing Software: Framework for Integrated Tests, by Rick Mugridge and Ward Cunningham. (p. 336)

cucumber_logo Cucumber, for example, is such an amazing ATDD tool because it’s so good at mapping stories and acceptance criteria to automated functional tests. Product Owners and BA's write acceptance criteria in natural language. Developers and testers unobtrusively automate tests for them. Anyone on the team can run the tests and see the current state of the system.

Those wanting to learn more about using Cucumber for ATDD can schedule a private training course, or attend our next public course in Denver.

Additional resources on ATDD:


Comments are closed