Foundations of software testing: dependability theory

Testing is potentially the best grounded part of software engineering, since it deals with the well defined situation of a fixed program and a test (a finite collection of input values). However, the fundamental theory of program testing is in disarray. Part of the reason is a confusion of the goals of testing---what makes a test (or testing method) "good." I argue that testing's primary goal should be to measure the dependability of tested software. In support of this goal, a plausible theory of dependability is needed to suggest and prove results about what test methods should be used, and under what circumstances. Although the outlines of dependability theory are not yet clear, it is possible to identify some of the fundamental questions and problems that must be attacked, and to suggest promising approaches and research methods. Perhaps the hardest step in this research is admitting that we do not already have the answers.

[1]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

[2]  Harlan D. Mills,et al.  Engineering software under statistical quality control , 1990, IEEE Software.

[3]  Simeon C. Ntafos,et al.  An Evaluation of Random Testing , 1984, IEEE Transactions on Software Engineering.

[4]  Manuel Blum,et al.  Designing programs that check their work , 1989, STOC '89.

[5]  Joe W. Duran,et al.  Quantifying Software Validity by Sampling , 1980, IEEE Transactions on Reliability.

[6]  Ricky W. Butler,et al.  The infeasibility of experimental quantification of life-critical software reliability , 1991 .

[7]  Richard G. Hamlet,et al.  Error Propagation and Elimination in Computer Programs. , 1981 .

[8]  Richard G. Hamlet,et al.  Probable Correctness Theory , 1987, Inf. Process. Lett..

[9]  Richard G. Hamlet Are we testing for true reliability? , 1992, IEEE Software.

[10]  Jeffrey M. Voas,et al.  Faults on its sleeve: amplifying software reliability testing , 1993, ISSTA '93.

[11]  Kenneth A. Foster Error Sensitive Test Cases Analysis (ESTCA) , 1980, IEEE Transactions on Software Engineering.

[12]  Simeon C. Ntafos,et al.  On some reliability estimation problems in random and partition testing , 1991, Proceedings. 1991 International Symposium on Software Reliability Engineering.

[13]  Simeon C. Ntafos,et al.  On Some Reliability Estimation Problems in Random and Partition Testing , 1993, IEEE Trans. Software Eng..

[14]  Jeffrey M. Voas,et al.  Improving the software development process using testability research , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.

[15]  L. Lauterbach,et al.  Experimental evaluation of six test techniques , 1989, Proceedings of the Fourth Annual Conference on Computer Assurance, 'Systems Integrity, Software Safety and Process Security.

[16]  John D. Musa,et al.  Software reliability measurement , 1984, J. Syst. Softw..

[17]  Elaine J. Weyuker,et al.  Selecting Software Test Data Using Data Flow Information , 1985, IEEE Transactions on Software Engineering.

[18]  Richard G. Hamlet,et al.  Theoretical comparison of testing methods , 1989, TAV3.

[19]  Elaine J. Weyuker,et al.  Comparison of program testing strategies , 1991, TAV4.

[20]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

[21]  R. Taylor,et al.  Partition testing does not inspire confidence , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[22]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[23]  J WeyukerElaine,et al.  Selecting Software Test Data Using Data Flow Information , 1985 .

[24]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[25]  Richard G. Hamlet Theoretical comparison of testing methods , 1989 .

[26]  John D. Musa,et al.  Software reliability - measurement, prediction, application , 1987, McGraw-Hill series in software engineering and technology.

[27]  Elaine J. Weyuker,et al.  A Formal Analysis of the Fault-Detecting Ability of Testing Methods , 1993, IEEE Trans. Software Eng..