Acceptance Test-Driven Development
Acceptance test-driven development [Adzic09], like test-driven development, is also based on the test first concept. It defines acceptance criteria and tests early in the development process during the creation of the user story (see Section 1.2.2). Acceptance test-driven development is a collaborative approach that allows every stakeholder to understand how the software component has to behave and what the developers, testers, and business representatives need to ensure this behavior.
The following is a typical acceptance test-driven development cycle:
- The whole team defines tests that simulate intended behavior
- Testers and/or developers create automated acceptance tests with test tools
- Developers program the intended behavior
- Testers and/or developers run the automated acceptance tests
Acceptance test-driven development creates reusable tests for regression testing. Specific tools support creation and execution of such tests, often within the continuous integration process. These tools can connect to data and service layers of the application. This allows tests to be executed at the system or acceptance level, in the appropriate test environments. Acceptance test-driven development allows quick resolution of defects and validation of feature behavior. It helps determine if the acceptance criteria are met for the feature. Acceptance test-driven development facilitates the use of external testing teams to perform functional testing.
The text above is a sample from the upcoming Agile Tester Extension that will be released soon. Visit www.istqb.org to get latest information.