Case Study

Agile Acceptance Testing With FitNesse

Background

A telecommunications firm is developing an application to support subscription sales for its international markets. The application’s features include customer management, contract administration and billing and revenue execution. The goal is to improve contract administration and billing efficiency while also reducing support and maintenance costs.

Challenges

RTTS’ client is a major telecommunications firm using an Agile software development methodology to implement a system to support subscription sales. The Windows Forms client application uses third-party controls that an automated functional testing tool had difficulty recognizing. The challenge was to implement a software quality process that leveraged and enhanced the benefits of Agile development.

Strategy

Implement Agile acceptance testing using the FitNesse testing framework.

Solution

An important advantage for Agile acceptance testing is that it facilitates rapid feedback to the developers during each iteration because the acceptance tests interact with the business layer. This means that test execution can begin well before the GUI implementation has started, allowing defects to be fixed earlier in the development cycle.

RTTS’ solution was to use the open-source FitNesse testing framework to incorporate Agile acceptance testing into the software quality process. The FitNesse testing framework includes the following features:

  • Centralized wiki site hosting all acceptance tests accessible by all members of the project team
  • Automated acceptance tests in an easy – to-read format that is understandable to all team members and customers
  • Ability for any team member to create, edit, and execute acceptance tests from wiki pages

The two main components to create automated acceptance tests in FitNesse are:

  1. Acceptance test – Acceptance tests in FitNesse are presented in a table format and written in a simple markup language. No technical background is needed to be able to understand the test. The test can be written in the wiki page directly or can be uploaded from a spreadsheet program such as Excel.
  2. Fixture code – Fixture classes interpret the markup in the acceptance test tables to execute the test on the target application. The results are sent back to the test table. Programming skills and technical knowledge of the application-under-test (AUT) are necessary to write fixture code.

The team structured its work around multiple iterations lasting three weeks each. For each iteration, acceptance tests were written for each feature to be implemented for the iteration, and the fixture code for each acceptance test was written as the features were completed. 

The FitNesse testing framework is a good fit for Agile teams because it promotes collaboration between team members. The tester collaborates with business analysts to clarify features to make sure all requirements and boundary conditions for user stories are covered, and that the acceptance tests cover the business value expected by the customers. The tester also collaborates with the developers to help with implementing the fixture code necessary to interpret the acceptance test tables.

Fit Nesse Case Study

Benefits

  • Implementing test automation with FitNesse allows business analysts, testers and developers to build automated tests – widening the pool of test contributors.
  • Suites of acceptance tests allow for execution of automated regression testing for every software build, instilling confidence that software quality is maintained throughout the software development lifecycle.
  • Use of test automation early in development leads to early detection of defects, lowering development costs and increasing software quality.
  • Use of an open-source automation framework reduces tool costs for the team.