An Empirical Study on Refactoring Activity
Mohammad Iftekharul Hoque, Vijay Nag Ranga, Anurag Reddy Pedditi,, Rachitha Srinath, Md Ali Ahsan Rana, Md Eftakhairul Islam, Afshin Somani

TL;DR
This empirical study examines refactoring activities in Java projects, revealing insights about timing, types, responsible developers, testing, and persistence of code smells, challenging some prior assumptions.
Contribution
It provides new empirical evidence on refactoring patterns, timing, and developer behavior, contrasting with previous studies and confirming some earlier findings.
Findings
Refactoring activity is not always higher before major releases.
Different types of refactoring are performed on test and production code.
Most bad smells persist through the system's versions.
Abstract
This paper reports an empirical study on refactoring activity in three Java software systems. We investigated some questions on refactoring activity, to confirm or disagree on conclusions that have been drawn from previous empirical studies. Unlike previous empirical studies, our study found that it is not always true that there are more refactoring activities before major project release date than after. In contrast, we were able to confirm that software developers perform different types of refactoring operations on test code and production code, specific developers are responsible for refactorings in the project, refactoring edits are not very well tested. Further, floss refactoring is more popular among the developers, refactoring activity is frequent in the projects, majority of bad smells once occurred they persist up to the latest version of the system. By confirming assumptions…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
