|
|
Agile Acceptance Testing with FitNesse |
Acceptance testing
implementation in an
Agile environment by
RTTS |
|
Telecommunications |
|
FitNesse, Agile, Acceptance
Testing, Telecommunications,
DbFit, Open Source |
|
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. |
|
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. |
|
Implement Agile acceptance testing using the FitNesse
testing framework.
|
|
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:
-
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.
-
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.

The DbFit set of
fixtures, which allows
for direct interaction
with databases without
the need for fixture
code, was used to set up
the AUT to the proper
state to begin
acceptance tests. DbFit
was chosen because the
tester was the primary
creator of fixture code
and it was easier to set
up the business objects
through SQL statements
rather than understand
the development code
needed to instantiate
these objects. |
-
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.
|
|
|
|
|
|
| |