Acceptance Testing Clinic: FitNesse

Average Rating: -

Intent
To help the participants learn, how to build acceptance criteria and automated acceptance tests from User Stories to drive development and testing.

Overview
Collaboration, feedback, and shared understanding are some of the core values of agile practices. In addition, many agile projects need executable specifications created with your customers’ participation. Unfortunately, many agile teams struggle with building automated acceptance tests to implement executable specifications. I’ll explain this practice and provide a demonstration of how to perform Acceptance Test-Driven Development (ATDD) on real projects using FitNesse and the FitLibrary. I’ll share my recipe for getting customers involved on agile projects that use automated acceptance tests. The participants should also be able to learn how to start this practice in your team and how managers can track the team’s progress using these acceptance tests.

Audience
Customers, Business Analyst, QAs, Developers, anyone interested in the topic. This tutorial expects participants to have some knowledge about Agile and Iterative development. In the past, this tutorial has been most effective when participants are already using Agile and want to start the practice of acceptance testing. Some familiarity with Fit/FitNesse would help.

Outline
This tutorial will provide in-depth answers to the following questions.

  • What is Automated Acceptance Testing. Why do we need?
  • Where does Acceptance Testing fit in an Agile process?
  • What does the term Executable Specification mean?
  • What roles do QA’s play? What roles do developers play? What roles do BA’s/Customers play?
  • What impact does Acceptance Testing have on quality and productivity?
  • What tools are available? (FIT, FitNesse, FitLibrary, etc)
  • How to write Acceptance Tests first, before writing the code?
  • How to organize Stories, Acceptance Criteria and Acceptance Test better?
  • How to create different levels of test suites to give feedback at different levels?
  • How to version control the FitNesse wiki with their source code?
  • Inline editing of their FitNesse pages, with out having to worry about Wiki syntax
  • Integrate FitNesse with their builds, so that they can run their acceptance tests as part of their Continuous Integration loops
  • Integrate FitNesse with CruiseControl or other CI servers to that the team can see the acceptance test results from the build
  • Execute acceptance tests against the server side components in a web/app server
  • What patterns and anti-patterns teams use for ATTD?

Slides : http://www.slideshare.net/nashjain/acceptance-test-driven-development-19...
Slides are slightly out dated. They needs to be updated to incorporate some of the questions asked above. Also the number of slides need to reduced and we need to focus more on hands-on session.

Presentation History
This tutorial was presented in various forms at XP/Agile Universe 2004, STAR West 2005, STAR East 2005, local user groups and many other training engagements.
Introduction to Automated Acceptance Testing, Agile2006
Introduction to Acceptance Test Driven Development, Agile2007
Introduction to Acceptance Test Driven Development, SQE’s First Agile Development Practices Conference in Orlando.

Process/Mechanics

Content Outline
Section 1 – 90 Minutes

  • Introductions
  • Hopes and Concerns activity
  • Warm up activity to help participants understand important of “acceptance (doneness) criteria” and difficultly in coming up with the same
  • Introduction to Acceptance testing and Acceptance test drive development using FitNesse and FitLibrary.
  • Examples of good and bad acceptance tests
  • Quick Demo of ATDD

Break – 30 Minutes

Section 2 – 90 Minutes

  • Hands on exercise for all the participants (laptops/computers would be required at this stage)
  • Patterns and Anti Patterns
  • Conclusion

Infrastructure Required
A projector, round or rectangular tables with 5-6 chairs per table, a whiteboard or flip-chart per table, 2 packs of 200 PostIt Stickies (red and green)