Programs, tests, and oracles: the foundations of testing revisited

In previous decades, researchers have explored the formal foundations of program testing. By exploring the foundations of testing largely separate from any specific method of testing, these researchers provided a general discussion of the testing process, including the goals, the underlying problems, and the limitations of testing. Unfortunately, a common, rigorous foundation has not been widely adopted in empirical software testing research, making it difficult to generalize and compare empirical research. We continue this foundational work, providing a framework intended to serve as a guide for future discussions and empirical studies concerning software testing. Specifically, we extend Gourlay's functional description of testing with the notion of a test oracle, an aspect of testing largely overlooked in previous foundational work and only lightly explored in general. We argue additional work exploring the interrelationship between programs, tests, and oracles should be performed, and use our extension to clarify concepts presented in previous work, present new concepts related to test oracles, and demonstrate that oracle selection must be considered when discussing the efficacy of a testing process.

[1]  Hong Zhu,et al.  Test data adequacy measurement , 1993, Softw. Eng. J..

[2]  Marie-Claude Gaudel,et al.  Testing Can Be Formal, Too , 1995, TAPSOFT.

[3]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[4]  Sanjai Rayadurgam,et al.  Coverage based test-case generation using model checkers , 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop On the Engineering of Computer-Based Systems-ECBS 2001.

[5]  Massimiliano Di Penta,et al.  Assessing and improving state-based class testing: a series of experiments , 2004, IEEE Transactions on Software Engineering.

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

[7]  Johannes Mayer,et al.  Test Oracles Using Statistical Methods , 2004, SOQUA/TECOS.

[8]  Jeffrey M. Voas,et al.  PIE: A Dynamic Failure-Based Technique , 1992, IEEE Trans. Software Eng..

[9]  Matthew M. Geller Test data as an aid in proving program correctness , 1976, POPL.

[10]  S. N. Weiss Comparing test data adequacy criteria , 1989, SOEN.

[11]  Gregg Rothermel,et al.  Can fault‐exposure‐potential estimates improve the fault detection abilities of test suites? , 2002, Softw. Test. Verification Reliab..

[12]  Lionel C. Briand A Critical Analysis of Empirical Research in Software Testing , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[13]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[14]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[15]  Robert M. Hierons Comparing test sets and criteria in the presence of test hypotheses and fault domains , 2002, TSEM.

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

[17]  Elaine J. Weyuker,et al.  The evaluation of program-based software test data adequacy criteria , 1988, CACM.

[18]  John S. Gourlay A Mathematical Framework for the Investigation of Testing , 1983, IEEE Transactions on Software Engineering.

[19]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

[20]  Dana Angluin,et al.  Two notions of correctness and their relation to testing , 1982, Acta Informatica.

[21]  Mats Per Erik Heimdahl,et al.  Better testing through oracle selection: (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[22]  Thomas J. Ostrand,et al.  Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria , 1994, Proceedings of 16th International Conference on Software Engineering.

[23]  Stuart H. Zweben,et al.  Clarifying Some Fundamental Concepts in Software Testing , 1993, IEEE Trans. Software Eng..

[24]  Larry J Morell,et al.  A Theory of Fault-Based Testing , 1990, IEEE Trans. Software Eng..

[25]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

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

[27]  Gilles Bernot,et al.  Testing Against Formal Specifications: A Theoretical View , 1991, TAPSOFT, Vol.2.

[28]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[29]  Jeffrey Voas,et al.  Dynamic testing complexity metric , 1992, Software Quality Journal.

[30]  Hong Zhu Axiomatic assessment of control flow-based software test adequacy criteria , 1995, Softw. Eng. J..

[31]  Ajitha Rajan,et al.  The effect of program and model structure on mc/dc test adequacy coverage , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[32]  Angelo Gargantini,et al.  Using model checking to generate tests from requirements specifications , 1999, ESEC/FSE-7.

[33]  Richard G. Hamlet,et al.  Foundations of software testing: dependability theory , 1994, SIGSOFT '94.

[34]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[35]  Martin R. Woodward,et al.  Critical Analysis of the PIE Testability Technique , 2004, Software Quality Journal.

[36]  Atif M. Memon,et al.  What test oracle should I use for effective GUI testing? , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[37]  Jeffrey M. Voas,et al.  Putting assertions in their place , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[38]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[39]  Elaine J. Weyuker,et al.  Axiomatizing software test data adequacy , 1986, IEEE Transactions on Software Engineering.

[40]  Elaine J. Weyuker,et al.  Theories of Program Testing and the Application of Revealing Subdomains , 1980, IEEE Transactions on Software Engineering.

[41]  Hong Zhu,et al.  A Theory of Behaviour Observation in Software Testing , 1999 .

[42]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[43]  William E. Howden,et al.  Weak Mutation Testing and Completeness of Test Sets , 1982, IEEE Transactions on Software Engineering.

[44]  Stuart H. Zweben,et al.  Analysis and Refinement of Software Test Data Adequacy Properties , 1991, IEEE Trans. Software Eng..

[45]  M. R. Woodward,et al.  From weak to strong, dead or alive? an analysis of some mutation testing issues , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[46]  Joseph Robert Horgan,et al.  Effect of Test Set Minimization on Fault Detection Effectiveness , 1995, 1995 17th International Conference on Software Engineering.