An empirical study of the correlation between code coverage and reliability estimation

Existing time-domain models for software reliability often result in an overestimation, of such reliability because they do not take the nature of testing techniques into account. Since every testing technique has a limit to its ability to reveal faults in a given system, as a technique approaches its saturation region fewer faults are discovered and reliability growth phenomena are predicted from the models. When the software is turned over to field operation, significant overestimates of reliability are observed. We present a technique to solve this problem by addressing both time and coverage measures for the prediction of software failures. Our technique uses coverage information collected during testing to extract only effective data from a given operational profile. Execution time between test cases which neither increase coverage nor cause a failure as reduced by a parameterized factor. Experiments using this technique were conducted on a program created in a simulation environment with simulated faults and on an industrial automatic flight control project which contained several natural faults. Results from both experiments indicate that overestimation of reliability is reduced significantly using our technique. This new approach not only helps reliability growth models make more accurate predictions, but also reveals the efficiency of a testing profile so that more effective testing techniques can be conducted.

[1]  Joseph Robert Horgan,et al.  Effect of test set size and block coverage on the fault detection effectiveness , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[2]  Paul Piwowarski,et al.  Coverage measurement experience during function test , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[3]  Vernon Rego,et al.  A Time/Structure Based Model for Estimating Software Reliability , 1992 .

[4]  C. V. Ramamoorthy,et al.  Software Reliability—Status and Perspectives , 1982, IEEE Transactions on Software Engineering.

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

[6]  James M. Bieman,et al.  The relationship between test coverage and reliability , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[7]  Norman F. Schneidewind,et al.  Optimal selection of failure data for predicting failure counts , 1993, Proceedings of 1993 IEEE International Symposium on Software Reliability Engineering.

[8]  Praerit Garg,et al.  Investigating coverage-reliability relationship and sensitivity of reliability to errors in the operational profile , 1994, Proceedings of 1994 1st International Conference on Software Testing, Reliability and Quality Assurance (STRQA'94).

[9]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[10]  Michael R. Lyu,et al.  Improving the N-version programming process through the evolution of a design paradigm , 1993 .

[11]  Amrit L. Goel,et al.  Time-Dependent Error-Detection Rate Model for Software Reliability and Other Performance Measures , 1979, IEEE Transactions on Reliability.

[12]  Vernon Rego,et al.  TERSE: A tool for evaluating software reliability models , 1993, Proceedings of 1993 IEEE International Symposium on Software Reliability Engineering.

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

[14]  Yashwant K. Malaiya,et al.  Enhancing accuracy of software reliability prediction , 1993, Proceedings of 1993 IEEE International Symposium on Software Reliability Engineering.

[15]  Vernon Rego,et al.  Effect of testing techniques on software reliability estimates obtained using a time-domain model , 1995 .

[16]  A. Mathur,et al.  Eeect of Testing Techniques on Software Reliability Estimates Obtained Using Time-domain Models , 1992 .