2006 · 96 citations · 8 references
ComputingComputer ScienceOperating SystemsResistance To ChangeSoftware EngineeringSoftware DesignSoftware EvolutionSoftware MaintenanceSoftware RefactoringVersion ControlVersion Control SystemsBehavior-preserving RefactoringChange History TrackingRefactoringTransformationsVersion Preservation
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.
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.
8
Finding refactorings via change metrics
Serge Demeyer, Sté́phane Ducasse, Oscar Nierstrasz · 2000 · 255 citations · Full text
Preprocessing CVS data for fine-grained analysis
Thomas Zimmermann · 2004 · 212 citations
The role of refactorings in API evolution
Danny Dig, R. E. Johnson · 2005 · 156 citations · Full text