Predicting faults using the complexity of code changes

Ahmed E. Hassan

2009 · 697 citations · 41 references

Concepts

TL;DR

Fault prediction has traditionally relied on measuring code complexity. The authors propose change‑process‑based complexity metrics and hypothesize that complex code changes degrade software quality. They validate the hypothesis with a case study on six large open source projects using change‑history data. The metrics outperform traditional predictors such as prior modifications and prior faults.

Abstract

Predicting the incidence of faults in code has been commonly associated with measuring complexity. In this paper, we propose complexity metrics that are based on the code change process instead of on the code. We conjecture that a complex code change process negatively affects its product, i.e., the software system. We validate our hypothesis empirically through a case study using data derived from the change history for six large open source projects. Our case study shows that our change complexity metrics are better predictors of fault potential in comparison to other well-known historical predictors of faults, i.e., prior modifications and prior faults.

References

41