SLIDE 31 Predicting Software Defects with Dynamic Reliability Modeling
An introduction for the common test practioner
Michael Allegra June 1, 2005 Abstract How does a test practioner know when they have tested enough to recommend proceeding with a software release? How do they know if their testing is uncovering defects at an acceptable rate? Dynamic reliability modeling is a powerful technique that can help answer these questions that are critical to business success. This author’s view of the field of software defect prediction is that it is mostly practiced by statisticians, mathematicians or the top technical folks at places like NASA. Indeed, if you open a book on the subject you’ll come across some advanced mathematical symbols and statistical formulas that you likely haven’t seen since college(and maybe not even then!). However, most test practioners are very competent in their profession and can implement modern test techniques without having a PhD. The target audience of this paper is the professional software testers that are involved with real world software development projects and are interested in practical techniques to increase their
- rganization’s quality capabilities. This paper is an introduction to the topic and the
reader is encouraged to learn more about reliability modeling so they can make customizations specific to their organization. The goals of this paper are:
- I. Provide basic understanding of software reliability modeling
- II. Describe a prediction model that is applicable to most software projects
- III. Instruct how to download and setup CASRE, a tool for defect prediction modeling
- IV. Walkthrough CASRE setup and execution
- V. Show how to create easy to read charts from CASRE output
- VI. Interpret charts and describe decisions points
What is Software Reliability modeling?
Reliability models are mathematical and statistical functions that have been developed
- ver the last couple decades by many mature software development organizations to
assess the number of total defects in an application and to quantify the application’s reliability over time. This paper will not break down the mathematics of these functions since they are impractical to implement without a dedicated modeling tool. You may ask ‘What is the practical application of these predictions?’
- 1. Foremost, is the predicted reliability of an application is useful for establishing
realistic service availability targets and acceptable levels of quality to customer delivered products. For example, if a service has a target of 99.99% availability for the first 3 months of its release but, the defect prediction shows dozens of high severity defects still present after the last test phase then a case can be made for lowering that availability target.