An Analysis of Test Data Selection Criteria Using the RELAY Model of Fault Detection

RELAY is a model of faults and failures that defines failure conditions, which describe test data for which execution will guarantee that a fault originates erroneous behavior that also transfers through computations and information flow until a failure is revealed. This model of fault detection provides a framework within which other testing criteria's capabilities can be evaluated. Three test data selection criteria that detect faults in six fault classes are analyzed. This analysis shows that none of these criteria is capable of guaranteeing detection for these fault classes and points out two major weaknesses of these criteria. The first weakness is that the criteria do not consider the potential unsatisfiability of their rules. Each criterion includes rules that are sufficient to cause potential failures for some fault classes, yet when such rules are unsatisfiable, many faults may remain undetected. Their second weakness is failure to integrate their proposed rules. >

[1]  K. A. Foster,et al.  Sensitive test data for logic expressions , 1984, SOEN.

[2]  Robert L. Glass,et al.  Persistent Software Errors , 1981, IEEE Transactions on Software Engineering.

[3]  Lori A. Clarke,et al.  A comparison of data flow path selection criteria , 1985, ICSE '85.

[4]  William E. Howden,et al.  A functional approach to program testing and analysis , 1986, IEEE Transactions on Software Engineering.

[5]  Debra J. Richardson,et al.  Approaches to specification-based testing , 1989 .

[6]  Larry Joe Morell A theory of error-based testing , 1983 .

[7]  Debra J. Richardson,et al.  The RELAY model of error detection and its application , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[8]  R.A. DeMillo,et al.  An extended overview of the Mothra software testing environment , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

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

[10]  Simeon C. Ntafos,et al.  On Required Element Testing , 1984, IEEE Transactions on Software Engineering.

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

[12]  Debra J. Richardson,et al.  A New Model for Error Detection , 1986 .

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

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

[15]  Thomas W. Reps,et al.  On the adequacy of program dependence graphs for representing programs , 1988, POPL '88.

[16]  Steven J. Zeil,et al.  Testing for Perturbations of Program Statements , 1983, IEEE Transactions on Software Engineering.

[17]  Debra J. Richardson,et al.  An Analysis of Text Data Selection Criteria Using the RELAY Model of , 1986 .

[18]  John B. Goodenough,et al.  Toward a theory of test data selection , 1975 .

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

[20]  L. J. Morell Theoretical insights into fault-based testing , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

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

[22]  Kenneth A. Foster Comment on "The application of error-sensitive testing strategies to debugging" , 1983, SOEN.

[23]  Steven J. Zeil Perturbation Techniques for Detecting Domain Errors , 1989, IEEE Trans. Software Eng..

[24]  K. A. Foster Revision of an error sensitive test rule , 1985, SOEN.

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

[26]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[27]  Lori A. Clarke,et al.  A Formal Evaluation of Data Flow Path Selection Criteria , 1989, IEEE Trans. Software Eng..

[28]  Lori A. Clarke,et al.  A Close Look at Domain Testing , 1982, IEEE Transactions on Software Engineering.

[29]  Steven J. Zeil,et al.  Perturbation testing for computation errors , 1984, ICSE '84.

[30]  Margaret Conklin Thompson An investigation of fault-based testing using the relay model , 1991 .

[31]  Peter J. Denning,et al.  Certification of programs for secure information flow , 1977, CACM.

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

[33]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[34]  Janusz W. Laski,et al.  A Data Flow Oriented Program Testing Strategy , 1983, IEEE Transactions on Software Engineering.

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

[36]  Arnold L. Rosenberg,et al.  The significance of program dependences for software testing, debugging, and maintenance , 1989 .

[37]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[38]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[39]  William E. Howden The Theory and Practice of Foundation Testing , 1985, IEEE Software.

[40]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

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

[42]  William E. Howden,et al.  Functional program testing and analysis , 1986 .