Predicting Software Reliability

Critical business applications require reliable software, but developing reliable software is one of the most difficult problems facing the software industry. After the software is shipped, software vendors receive customer feedback about software reliability. However, by then it is too late; software vendors need to know whether their products are reliable before they are delivered to customers. Software reliability growth models help provide that information. Unfortunately, very little real data and models from commercial applications have been published, possibly because of the proprietary nature of the data. Over the past few years, the author and his colleagues at Tandem have experimented with software reliability growth models. At Tandem, a major software release consists of substantial modifications to many products and may contain several million lines of code. Major software releases follow a well defined development process and involve a coordinated quality assurance effort. We applied software reliability modeling to a subset of products for four major releases. The article reports on what was learned.