Acceptance test driven development takes the TDD practice and applies it to acceptance tests. On day 1 of the Sprint, before we begin coding a particular user story, we start by reviewing the acceptance criteria and thinking about how we will verify via tests that this story is complete. Typically, a single acceptance criteria might map to multiple acceptance tests. So we start out by automating these acceptance tests (using specification by example) and running them. These tests will fail because development hasn’t started yet.
Developers go through their TDD cycles, and continue until the acceptance test passes. Then they move to the second acceptance test and so on. So 1 acceptance criteria leads to multiple acceptance tests and each acceptance test leads to many integration and unit tests. This way when the team is done with coding for a particular user story, they are also done with most of the functional testing for that story. And running the suite of other tests also ensures that nothing else broke.
In this way we can maintain a consistent pace focused on delivery of working software even as the application grows by ensuring that everyone is involved in testing, balancing out the different types of tests, and minimizing the amount of manual testing required.
Also check out the entire Agile Testing series:
- 4 Typical Transitions Teams Go Through When They First Start Adopting Scrum
- The Most Common Misunderstanding of Agile Software Development
- What are the Different Types of Tests?
- What is The Agile Testing Quadrant?
- Which Tests Should We Automate?
- How Many Tests Are Enough?
- What is The Testing Pyramid?
- When Do We Start Testing in Scrum?
- Who Is Responsible for Testing in Scrum?
- What is Test Driven Development (TDD)?
- Why You Shouldn’t Do Functional Testing From the UI?
- What are Executable Specifications or Specifications by Example?
- What is Acceptance Test Driven Development (ATTD)?
- Testing Green Field Applications vs. Legacy Applications
- What is Exploratory Testing?
- Top 8 Things to Consider for Your Agile Testing Strategy
- Agile Testing – Testing from Day 1 Presentation