CS-Related Math Lunch Talk on Thursday, Nov. 19
What Can We Learn from Software Failure Data
Veena Mendiratta, Bell Labs
Failure detection and fault correction are vital to ensure high quality software. During the development and deployment phases detected failures are commonly classified by severity and tracked to meet quality and reliability requirements. Besides tracking failures, this data can be analyzed and used to qualify the software and to control the development and maintenance process. Our work is focused on failure data collected during the development phase and explores what we can learn by analyzing this data. Change management systems log the failures detected and the code fixes to correct the underlying software defects. By applying software reliability models and statistical techniques to this defect data, we can answer questions such as the following:
Is the maintenance process increasing the software reliability?
Is the maintenance process under control?
How many failures are expected to occur in the field?
What is the expected time remaining to meet the reliability requirement?
This presentation addresses these questions by using a methodology based on trend analysis, control charts and software reliability growth models. The methodology is applied to a large software system during various stages of testing including customer acceptance testing. What is new about this methodology is the combined use of control charts, trend analysis and software reliability models.