InfoQ

News

Example Driven Acceptance Testing

Posted by Vikas Hazrati on Jan 21, 2009

Community
Agile
Topics
Agile in the Enterprise
Tags
Acceptance Testing ,
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

  1. Preview meeting with PO + Conditions of Satisfaction - ask questions, get examples, slice big stories
  2. Iteration Planning
  3. High Level Acceptance Tests & other preparatory tasks such as obtaining test data and more examples
  4. Detailed Test Cases
  5. Write automated FitNesse tests (business-facing tests that guide development)
  6. 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.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

thanks for reposting by Gojko Adzic Posted Jan 21, 2009 11:07 AM
Re: thanks for reposting by Emmanuel Hugonnet Posted Jan 28, 2009 4:00 AM
  1. Back to top

    thanks for reposting

    Jan 21, 2009 11:07 AM by Gojko Adzic

    Thanks for spreading the word - I actually stopped using the name example-writing workshop and I now call these exercises specification workshops, because it is easier to explain to business people that they should be involved something that has the name specification in it.

    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.

  2. Back to top

    Re: thanks for reposting

    Jan 28, 2009 4:00 AM by Emmanuel Hugonnet

    I can't wait to read your book Gojko as I agree with your opinion that acceptance testing should be integrated in the development process.
    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.
    Emmanuel

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.