Software Reliability Growth Modeling Using
the Standard and Modified Gompertz Models
[Editor's Note: This article has been updated since its original publication to reflect a more recent version of the software interface.]
Software reliability modeling and prediction during product development is an area of reliability that is getting more focus from software developers. The use of software reliability growth models plays an important role in measuring improvements, achieving effective and efficient test/debug scheduling during the course of a software development project, determining when to release a product or estimating the number of service releases required after release to reach a reliability goal. Many new trends in software development process standardization, in addition to established ones, emphasize the need for statistical metrics in monitoring reliability and quality improvements. In this article, we investigate the standard Gompertz and modified Gompertz models and show their applications in modeling software reliability growth using RGA.
There are essentially two approaches to performing statistical reliability prediction for software. The first approach, based on design parameters, estimates the number of defects in the software using code characteristics such as numbers of lines of code, nesting of loops, external references, input/output calls, etc. The second approach is reliability growth analysis based on statistical correlations of actual defect detection data obtained during testing. Many models are used to describe reliability growth in software such as Crow-AMSAA, standard Gompertz, modified Gompertz and Lloyd-Lipow.*
This article addresses the techniques available for the second approach using the Gompertz reliability growth models. Let us start with an overview of the basics of the Gompertz model and the modified Gompertz models. Then, we will discuss the application of these models for software development.
The Standard Gompertz Model
The standard Gompertz model is mathematically given by the following 3-parameter equation:
The estimated parameters in RGA are unitless. The solution for the parameters, given Ti and Ri, is accomplished by fitting the best possible line through the data points. Many methods are available, all of which tend to be numerically intensive. For more details about the parameter estimation method used in RGA, click here.
The Modified Gompertz Model
The Reliability vs. Time plot for this model looks like the figure shown next.
The parameters of the modified Gompertz model can be estimated using linear regression and confidence bounds can also be estimated; for more details about how to estimate confidence bounds, click here.
Many scenarios can be modeled with the S-shape behavior of the modified Gompertz. The S-shape behavior essentially distinguishes between multiple "phases" in the product reliability growth program. In the beginning of testing (first phase), scarcity in discovering problems and delays in identifying fixes can cause the improvement in reliability to be small. During the second phase, fixes become available and, with any additional discovered failures and implemented fixes, significant improvements are observed and the reliability grows at a fast pace. In the third phase, fewer and fewer failure modes are uncovered, as most of the failure modes have already been discovered. In addition, the reliability growth program might start running into limitations of technology and design that slow down the reliability growth.
Application to Software Reliability
The next plot shows the estimated reliability plot along with the lower 90% one-sided confidence bound.
The next figure shows the calculation of the demonstrated reliability at the end of the test (10th stage of testing) with a 90% lower confidence estimate.
Because the "a" parameter in the standard Gompertz model is equal to 1, the testing/debugging program has the potential to grow the reliability of the software further than what is currently demonstrated. To achieve a reliability goal of 99%, for example, about 6.46 more stages of testing would be required.
In the current software development project, the company experienced slow growth at the initial testing stages, which relied on random exploratory testing. It was then able to improve the efficiency of the testing cases after better identification of the user profile and risk areas in the software. The last few stages of testing revealed software faults at a slower rate and the company expects that the software is reaching its maturity.
The following data set, shown entered in RGA, shows the test case results obtained at each of 11 stages of testing. The standard Gompertz model and the modified Gompertz model were fitted to the data set. The modified Gompertz model was a more appropriate model for this data set.
The reliability growth plot is shown next.
The achieved reliability is 0.9965, as shown next.
The asymptotic limit based on this reliability growth program is a + d = 0.9974. That reliability level is estimated to be achieved after about three stages of testing (at the 14.68th stage), as shown next.
*Other common models include Musa, Goel-Okumoto, Pareto and Yamada
Copyright 2008-2014 ReliaSoft Corporation, ALL RIGHTS RESERVED