A Theory of Program Testing - A Grand Challenge for Computer Science?

The elimination of errors in computer systems is a major activity in any development project. One of the most popular methods of finding error is testing. Testing absorbs a significant proportion of the budget of any project involving programmable digital systems. Yet, thus far, most of the work on testing within Software has been empirical and pragmatically motivated. By contrast the situation in hardware test is more fully developed. However, as the complexity of systems increases, along with our reliance on such systems, the results of conventional testing programmes provide less and less justification for that reliance. Industry standards in avionics and other high-integrity systems demand that systems are virtually error-free but empirical data demonstrates that most systems with programmable elements are riddled with errors.

Other engineering disciplines depend on theoretical models to "amplify" the significance of test results. Complex mechanical systems require relatively few tests to accurately predict reliability and absence of some classes of error. The development of a theory of program testing will help us understand whether such "amplification" is possible and could result in the means to design systems that are testable using reasonable resources.

One could argue that the absence of errors in software should be established by other means, for example by program proof. This proposal is not an argument against such techniques but rather an argument for a synthesis of all approaches to program verification. We will always need testing because:

There is a small and growing body of work on program testing in the literature. But it is quite fragmentary and lacks coherence. We argue that by taking on testing as a "grand challenge" we could: help synthesise the approaches of diverse areas of work, raise intellectually challenging questions, and perhaps make a significant contribution to the solution of a practical problem.

Potential Areas of Work

There is already some work in these areas but it is poorly integrated and a synthesis of approaches would benefit the work.

Existing and Potential Approaches to Testing

These are a few approaches to the testing problem. Taking each individually they could lead to good insights into testing but some synergy of approaches could provide the basis for a more comprehensive theory.
LFCS
Last modified: Tue Nov 25 16:53:45 GMT 1997