Issue No.03 - Sept. (1975 vol.1)
John D. Musa , Bell Laboratories, Whippany, N.J. 07981
An approach to a theory of software reliability based on execution time is derived. This approach provides a model that is simple, intuitively appealing, and immediately useful. The theory permits the estimation, in advance of a project, of the amount of testing in terms of execution time required to achieve a specified reliability goal (stated as a mean time to failure (MTTF)]. Execution time can then be related to calendar time, permitting a schedule to be developed. Estimates of execution time and calendar time remaining until the reliability goal is attained can be continually remade as testing proceeds, based only on the length of the execution time intervals between failures. The current MTTF and the number of errors remaining can also be estimated. Maximum likelihood estimation is employed, and confidence intervals are also established. The foregoing information is obviously very valuable in scheduling and monitoring the progress of program testing. A program has been implemented to compute the foregoing quantities. The reliability model that has been developed can be used in making system tradeoffs involving software or software and hardware components. It also provides a soundly based unit of measure for the comparative evaluation of various programming techniques that are expected to enhance reliability. The model has been applied to four medium-sized software development projects, all of which have completed their life cycles. Measurements taken of MTTF during operation agree well with the predictions made at the end of system test. As far as the author can determine, these are the first times that a software reliability model has been used during software development projects. The paper reflects and incorporates the practical experience gained.
Software reliability, Testing, Software, Computational modeling, Calendars, Error correction, software reliability, Debugging, error prediction, program testing, reliability prediction, software project monitoring, software project scheduling
John D. Musa, "A theory of software reliability and its application", IEEE Transactions on Software Engineering, vol.1, no. 3, pp. 312-327, Sept. 1975, doi:10.1109/TSE.1975.6312856