An algorithmic procedure is developed for determining the release time of a software system with multiple modules where the underlying module structure is explicitly incorporated. Depending on how much the module is used 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 also be estimated following H. Joe and N. Reid (1985). 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 Δ. The validity of this procedure is examined through extensive Monte-Carlo simulation.
ASJC Scopus subject areas
- Computer Graphics and Computer-Aided Design
- Hardware and Architecture
- Electrical and Electronic Engineering
- Safety, Risk, Reliability and Quality