Mining metrics to predict component failures

Nachiappan Nagappan, Thomas Ball, Andreas Zeller

2006 · 779 citations · 23 references

Concepts

TL;DR

Software failures are linked to code complexity, but no single set of complexity metrics universally predicts defects. We used principal component analysis on code metrics to build regression models that accurately predict post‑release defect likelihood for new entities. The study found that code complexity metrics correlate with post‑release defects, and the PCA‑based models generalize to new, similar projects.

Abstract

What is it that makes software fail? In an empirical study of the post-release defect history of five Microsoft software systems, we found that failure-prone software entities are statistically correlated with code complexity measures. However, there is no single set of complexity metrics that could act as a universally best defect predictor. Using principal component analysis on the code metrics, we built regression models that accurately predict the likelihood of post-release defects for new entities. The approach can easily be generalized to arbitrary projects; in particular, predictors obtained from one project can also be significant for new, similar projects.

References

23