Example Driven Acceptance Testing
Testing is considered to be an integral part of development. Code and test cases are important artifacts of an Agile project. However, in many Agile teams unit and integration tests have a higher prominence than acceptance tests. Gojko Adzic and Lisa Crispin suggest approaches to include acceptance tests efficiently as a part of development.
Gojko focused on the need to have an example writing workshop to support acceptance testing. According to him, before the start of the next iteration, the team should have a rough idea on what should get into the next iteration. Without disturbing the current iteration, some members of the team should get into an example writing workshop. This workshop should focus on realistic examples which can be converted to acceptance tests. According to Gojko,
The aim of the workshop is to build a shared understanding among developers, business people and testers about the aims for the next two weeks of work. A more tangible result of the workshop is realistic examples which can be converted to acceptance tests.
Because realistic examples are discussed and written down, inconsistencies and gaps should be easy to identify at that stage and we will get a solid foundation for the development. The workshop ends when everyone involved agrees that there are enough examples and that everything is clear enough to start the work. Meanwhile, for an ongoing iteration the acceptance tests for that iteration should be continuously simplified and organized better.
Lisa Crispin also focused on the importance of examples in defining the acceptance tests. However, she does caution that getting too much into the details would be counter productive. According to Lisa, her testing strategy works like this
- Preview meeting with PO + Conditions of Satisfaction - ask questions, get examples, slice big stories
- Iteration Planning
- High Level Acceptance Tests & other preparatory tasks such as obtaining test data and more examples
- Detailed Test Cases
- Write automated FitNesse tests (business-facing tests that guide development)
- Exploratory testing, automate GUI Smoke testing
Steps 4-6 are done for each user story.
Thus, acceptance testing should be an integral part of development for each iteration. The key lies in involving the business and development team upfront and having enough realistic examples to create useful acceptance tests.
thanks for reposting
Specification workshops are one of the most important practices for success with agile acceptance testing and specification by example, but very few teams so them. Organising specification workshops effectively is one of the central themes of my new book Bridging the communication gap.
Re: thanks for reposting
I think that Dan North's BDD with JBehave 2.x, Elisabeth Hendrickson's Acceptance Test Driven Development, or Dave Nicolett's TDR/FTTD are different names for the same idea.
Now we need better tools for developers and business people so the two teams can be merged into a real product team.