Dynamic testing complexity metric

This paper introduces a dynamic metric that is based on the estimated ability of a program to withstand the effects of injected ‘emantic mutants’ during execution. Semantic mutants include: (1) syntactic mutants injected into an executing program and (2) randomly selected values injected into an executing program's internal states. The metric is a function of a program, the method used for injecting these two types of mutants, and the program's input distribution; this metric is found through dynamic executions of the program. A program's ability to withstand the effects of injected semantic mutants by computing the same function when executed is then used as a tool for predicting the difficulty that will be incurred during random testing to reveal the existence of faults, i.e., the metric suggests the likelihood that a program will expose the existence of faults during random testing assuming faults were to exist. If the metric is applied to a module rather than to a program, the metric can be used to guide the allocation of testing resources among a program's modules. In this manner the metric acts as a white-box testing tool for determining where to concentrate testing resources.

[1]  Taghi M. Khoshgoftaar,et al.  Applications of a relative complexity metric for software project management , 1990, J. Syst. Softw..

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

[3]  Jeffrey M. Voas,et al.  Predicting where faults can hide from testing , 1991, IEEE Software.

[4]  Averill M. Law,et al.  Simulation Modeling and Analysis , 1982 .

[5]  Bogdan Korel,et al.  PELAS - Program Error-Locating Assistant System , 1988, IEEE Trans. Software Eng..

[6]  Hisashi Kobayashi,et al.  Modeling and analysis , 1978 .

[7]  Michael Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[8]  Jeffrey Mark Voas A dynamic failure model for performing propagation and infection analysis on computer programs , 1990 .

[9]  Jeffrey M. Voas A Dynamic Failure Model for Predicting the Impact that a Program Location has on the Program , 1991, ESEC.

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

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

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

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

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

[15]  S. K. Park,et al.  Random number generators: good ones are hard to find , 1988, CACM.

[16]  Michael E. Fagan Design and Code Inspections to Reduce Errors in Program Development , 1976, IBM Syst. J..

[17]  Voas Jeffrey A Dynamic Failure Model for Predicting the Impact That a Program Location has on the Program , 1991 .

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

[19]  Austin Melton,et al.  Deriving structurally based software measures , 1990, Journal of Systems and Software.

[20]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[21]  Jeffrey M. Voas,et al.  Designing programs that are less likely to hide faults , 1993, J. Syst. Softw..

[22]  J. C. Huang,et al.  An Approach to Program Testing , 1975, CSUR.