Wednesday, June 19, 2019

Trace Tests To Requirements

Project Monitoring & Tracking

It is important to understand which tests verify which requirements. There are two reasons:
  1. When generating tests, you'll find it useful to know if all requirements are being tested.
  2. When performing tests, you'll find it useful to know which requirements are being checked.
Furthermore, if your requirements have been prioritized, you can easily derive the relative priorities of the tests; that is, the priority of a test is the maximum of the priorities of all its corresponding requirements.

Maintain a large binary table in which rows correspond to all software tests and columns correspond to every requirement in the software requirements specification (SRS). A 1 in any position indicates that this test helps to verify this requirement. Notice that a row void of 1's indicates that a test has no purpose and that a column void of 1's indicates an untested requirement. The successful creation of such a table depends on your ability to refer uniquely to every requirement.


Reference:
Lindstrom, D., "Five Ways to Destroy a Development Project," IEEE Software, Sept. 1992.