Managing requirements with FitNesse

Versioning of requirements

In FitNess requirements are versioned … in the following example Version 001 is stable and Version002 can be further specified.

Figure 2: Two versions – one for further specification and a stable one for implementation

For preparing a new version, we make a copy of the file system:

Figure 3: Representation in the filesystem

5.2 Requirements are directly referenceable

Via URL, all requirements are versioned referenceably.

Figure 4: URL referencable directly

A UseCase

This is an example for a UseCase, the acceptance tests are described below.

Figure 5: A UseCase

The associated acceptance test

Figure 6: An acceptance test

Search for requirements

FitNesse features the possibility for a full text search:

Figure 7: The FitNesse search form

Figure 8: The search result

A view

Here you can see a view with chapters in hinged position:

Figure 9: Embedded requirement – in hinged position

And here the chapter “Community Suche” (community search) is opened … all assigned requirements are listed one below the other.

Figure 10: And an Embedded requirement - opened

The Edit-Mode shows that the requirements are only referenced.

Figure 11: In the Edit Mode the referencing becomes apparent.

Test support

In the meaning of FitNesse, all requirements are TestSuites. So in the FitNesse manner, requirements can be tested together on any level. A generic fixture presents the test instruction to the tester.

Figure 12: Semi-automatic test support

You get a fine test summary for the individual test...

Figure 13: several acceptance tests summarized in a suite

and for all realized tests and retests ...

Figure 14: A historical overview over the last test procedures

What's still missing

The tooling suggested above already works for small projects. But it has the following two gaps: Semi-automatic test support only prototypical: At the moment, the test support works only prototypical. The test instructions are just realized by swing - a web based realization is possible but complex and not yet implemented.