Typically a software system has multiple modules connected through an underlying logic structure. During execution of the software system, the total time spent in each of the modules may differ appreciably. Accordingly it is reasonable that such differences should be taken into account in studying reliability issues and related optimal release-time problems. The effect of the software module structure on the decision of the software release-time has been largely ignored in the literature. An algorithmic procedure is developed for determining the release time of software system with multiple modules where the underlying module structure is explicitly incorporated. Depending on amount of use of a module during execution, the impact of software bugs from one module is distinguished from the impact of software bugs from another module. It is assumed that software bugs in one module have i.i.d. lifetimes but lifetime distributions can vary from one module to another. For the two cases of exponential and Weibull lifetimes, statistical procedures are developed for estimating distribution parameters based on failure data during the test period for individual modules. In the exponential case, the number of software bugs can be also estimated following Joe & Reid. These estimates enable one to evaluate the average cost due to undetected software bugs. By introducing an objective function incorporating this average cost as well as the time dependent value of the software system and the cumulative running cost of the software testing, a decision criterion is given for determining whether the software system should be released or the test should be continued further for a certain period A. The validity of this procedure is examined through extensive Monte-Carlo simulation.
ASJC Scopus subject areas
- Safety, Risk, Reliability and Quality
- Electrical and Electronic Engineering