An information flow model of fault detection

RELAY is a model of how a fault causes a failure on execution of some test datum. This process begins with introduction of an original state potential failure at a fault location and continues as the potential failure(s) transfers to output. Here we describe the second stage of this process, transfer of an incorrect intermediate state from a faulty statement to output. Transfer occurs along information flow chains, where each link in the chain involves data dependence transfer and/or control dependence transfer. RELAY models concurrent transfer along multiple information flow chains with transfer sets, which identify possible interaction between potential failures, and with transfer routes, which identify actual interactions. Transfer sets, transfer routes, and control dependence transfer are unique to the RELAY model. The model demonstrates that the process of potential failure transfer is extremely complex and full analysis of real programs may not be practical. Nonetheless, RELAY provides insight into testing and fault detection and suggests an approach to fault-based testing and analysis that may be warranted for critical systems software.

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

[2]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[3]  Debra J. Richardson,et al.  An Analysis of Test Data Selection Criteria Using the RELAY Model of Fault Detection , 1993, IEEE Trans. Software Eng..

[4]  Vi Andrew Jefferson Offutt,et al.  Automatic test data generation , 1988 .

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

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

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

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

[9]  James C. King A new approach to program testing , 1975 .

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

[11]  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.

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

[13]  Nancy G. Leveson,et al.  Analyzing Software Safety , 1983, IEEE Transactions on Software Engineering.

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

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

[16]  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..

[17]  Richard J. Lipton,et al.  The design of a prototype mutation system for program testing , 1899, AFIPS National Computer Conference.

[18]  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.

[19]  Simeon C. Ntafos,et al.  ON TESTING WITH REQUIRED ELEMENTS. , 1981 .

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