O'Reilly logo

Making Software by Greg Wilson, Andy Oram

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. An Automated Fault Prediction System

Elaine J. Weyuker

Thomas J. Ostrand

Everyone wants their software to be perfect and contain no faults (or defects or bugs). Typically, developers use software testing techniques to identify these problems so that they can be removed, but when the software system is large, thorough testing can require a huge amount of resources.

Accurate prediction of the parts of a system that are most likely to have faults can provide developers, testers, and managers with a large head start on finding problems, increase the efficiency of testing, and help make the most of resources that are usually in short supply. Over the past several years, we have built models that predict the expected number of defects in each file of a software system in its next release. The files can then be arranged in decreasing order of predicted numbers of faults, so the files most likely to have defects are easily identified.

We have now used one of these prediction models to build an automated tool that can help a project manager prioritize effort for the files predicted to be most defect-prone. For example, the project manager might schedule more test time for these files, assign the team’s best developers to make changes to them, or do code inspections for the files predicted to be most problematic. This should lead to faster identification of defects and therefore to reduced testing costs. It might also free up resources, allowing additional testing for the entire system, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required