Predicting Software Reliability from Testing Taking into Account Other Knowledge about a Program

Inference from statistical testing is the only sound method available for estimating software reliability. However, if one ignores evidence other than testing (e.g., evidence from the track record of a developer, or from the quality of the development process), the results are going to be so conservative that they are often felt to be useless for decision-making. Bayesian inference is the main mathematical tool for taking into account such knowledge. Evidence from sources other than testing is modelled as prior probabilities (for values of the failure rate of the program) and is updated on the basis of test results to produce posterior probabilities. We explain these methods and demonstrate their use on simple examples. The measure of interest is the probability that a program satisfies a given reliability requirement, given that it has passed a certain number of tests. The procedures of Bayesian inference explicitly show the weights of prior assumptions vs. test results in determining this probability. We also demonstrate how one can model different assumptions about the faultrevealing efficacy of testing. We believe that these methods are a powerful aid for improving the quality of decision-making in matters related to software reliability.

[1]  David Wright,et al.  Stopping rules for the operational testing of safety-critical software , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[2]  Bev Littlewood,et al.  A Bayesian Reliability Growth Model for Computer Software , 1973 .

[3]  Robert L. Glass,et al.  Science and substance: a challenge to software engineers , 1994, IEEE Software.

[4]  David Wright,et al.  A Bayesian Model that Combines Disparate Evidence for the Quantitative Assessment of System Dependability , 1998, SAFECOMP.

[5]  John H. R. May,et al.  Reliability estimation from appropriate testing of plant protection software , 1995, Softw. Eng. J..

[6]  Lorenzo Strigini,et al.  On the Use of Testability Measures for Dependability Assessment , 1996, IEEE Trans. Software Eng..

[7]  Paul Ammann,et al.  The Effect of Imperfect Error Detection on Reliability Assessment via Life Testing , 1992, IEEE Trans. Software Eng..

[8]  Bev Littlewood,et al.  Validation of ultrahigh dependability for software-based systems , 1993, CACM.

[9]  David Lorge Parnas,et al.  Evaluation of safety-critical software , 1990, CACM.

[10]  Jeffrey M. Voas,et al.  Estimating the Probability of Failure When Testing Reveals No Failures , 1992, IEEE Trans. Software Eng..

[11]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[12]  John R. Garman,et al.  The "BUG" heard 'round the world: discussion of the software problem which delayed the first shuttle orbital flight , 1981, SOEN.