Acceptance Test Driven Development, like TDD, is based on the test first concept. It defines acceptance criteria and tests cases for it early in the development process, in the confirmation phase of a story development process (see paragraph 1.2.2). ATDD is a collaborative approach which allows every stakeholder to understand how the software component has to behave and what the product owner, tester, developer, and others need to do to insure this behavior. A typical process of ATDD is: 1. The whole team defines tests which give examples of intended behavior 2. Testers and/or developers create automated tests with an ATDD testing tools 3. Developers create the code of the intended behavior 4. Testers and/or developers run automated acceptance tests
ATDD creates reusable tests for regression testing. Specific tools support creation and execution of such tests, often within the context of a continuous integration process. These tools can connect to data and service layers of the application. This allows tests to be run in system level or acceptance level test environments Tests environments can be user acceptance test environments instead of development test environments. ATDD allows quick resolution of defects and validation of feature behavior before promoting code to a higher environment. It helps determine if the confirmation criteria is met for the feature. ATDD facilitates also the use of external testing teams to perform functional testing.
The text above is a sample from the upcoming Agile Tester Add-On that will be released in early 2014. Please note that Agile Tester Add-On is on alpha phase, which means that its content may change. Visit www.istqb.org to get latest information.