Are refactorings less error-prone than other changes?

Peter Weißgerber, Stephan Diehl

2006 · 96 citations · 8 references

Concepts

TL;DR

Refactorings are program transformations that should preserve program behavior. The study aims to test whether refactorings are less bug‑prone by identifying phases in change histories where the hypothesis holds or fails. The authors analyzed version histories of multiple open source projects, reconstructed refactorings, gathered bug reports, and used this data to delineate phases where the refactoring hypothesis holds or fails.

Abstract

Refactorings are program transformations which should preserve the program behavior. Consequently, we expect that during phases when there are mostly refactorings in the change history of a system, only few new bugs are introduced. For our case study we analyzed the version histories of several open source systems and reconstructed the refactorings performed. Furthermore, we obtained bug reports from various sources depending on the system. Based on this data we identify phases when the above hypothesis holds and those when it doesn't.

References

8