Systems Reliability and Failure Prevention

A test report that states, "the unit under test did not fail under any of the applied test conditions" does not necessarily mean that the item is free of faults. The qualifying clause "under any of the applied test conditions" is very important. If the applied test conditions did not represent the full range of requirements, the unit may have passed the test with flying colors and still be deficient or fail in service. These remarks are applicable to both hardware and software but they are much more important for software because it:
Operates in a digital environment, where the correct result for x = 5 and x = 10 does not ensure that the correct result will be obtained for x = 7.5;
Offers much greater flexibility, such as modifying the response for various conditions, and is therefore more difficult to test for the full range of requirements.
These limitations of software test are crucial for formulating a test plan and interpreting test results. The following experience from the testing and operation of a deep space telemetry system provides an example of these difficulties. The system includes more than a million lines of code, some of which were newly developed while others were legacy or modified legacy code. It was suspected that some sections of the program were not sufficiently tested and a small-scale investigation was authorized. Programmers were asked to select segments of frequently used and rarely used code of equivalent maturity.