Acceptance Test Driven Development

Intent

To help the participants learn, how to build acceptance criteria and automated acceptance tests from User Stories to drive development and testing.

Overview

Collaboration, feedback, and shared understanding are some of the core values of agile practices. In addition, many agile projects need executable specifications created with your customers' participation. Unfortunately, many agile teams struggle with building automated acceptance tests to implement executable specifications. I'll explain this practice and provide a demonstration of how to perform Acceptance Test-Driven Development (ATDD) on real projects using FitNesse and the FitLibrary. I'll share my recipe for getting customers involved on agile projects that use automated acceptance tests. The participants should also be able to learn how to start this practice in your team and how managers can track the team's progress using these acceptance tests.

Target Audience

Customers, Business Analyst, QAs, Developers, anyone interested in the topic. This tutorial expects participants to have some knowledge about Agile and Iterative development. In the past, this tutorial has been most effective when participants are already using Agile and want to start the practice of acceptance testing. Some familiarity with Fit/FitNesse would help.

Outline

This tutorial will provide in-depth answers to the following questions.

What is Automated Acceptance Testing. Why do we need?

Where does Acceptance Testing fit in an Agile process?

What does the term Executable Specification mean?

What roles do QA's play? What roles do developers play? What roles do BA's/Customers play?

What impact does Acceptance Testing have on quality and productivity?

What tools are available? (FIT, FitNesse, FitLibrary, etc)

How to write Acceptance Tests first, before writing the code?

How to organize Stories, Acceptance Criteria and Acceptance Test better?

How to create different levels of test suites to give feedback at different levels?

How to version control the FitNesse wiki with their source code?

Integrate FitNesse with their builds, so that they can run their acceptance tests as part of their Continuous Integration loops

Execute acceptance tests against the server side components in a web/app server

What patterns and anti-patterns teams use for ATTD?

Presentation History

This tutorial was presented in various forms at XP/Agile Universe 2004, STAR West 2005, STAR East 2005, local user groups and many other consulting engagements.