Issue No. 04 - April (2018 vol. 44)
Everton L. G. Alves , Computer Science Department, Federal University of Campina Grande, Campina Grande, Brazil
Myoungkyu Song , Computer Science Department, The University of Nebraska at Omaha, Omaha, NE
Tiago Massoni , Computer Science Department, Universidade Federal de Campina Grande, Campina Grande, PB, Brazil
Patricia D. L. Machado , Systems and Computing Department, Federal University of Campina Grande, Campina Grande, Brazil
Miryung Kim , Computer Science Department, University of California, Los Angeles, CA
Refactoring is commonly performed manually, supported by regression testing, which serves as a safety net to provide confidence on the edits performed. However, inadequate test suites may prevent developers from initiating or performing refactorings. We propose
RefDistiller, a static analysis approach to support the inspection of manual refactorings. It combines two techniques. First, it applies predefined templates to identify potential missed edits during manual refactoring. Second, it leverages an automated refactoring engine to identify extra edits that might be incorrect. RefDistiller also helps determine the root cause of detected anomalies. In our evaluation, RefDistiller identifies 97 percent of seeded anomalies, of which 24 percent are not detected by generated test suites. Compared to running existing regression test suites, it detects 22 times more anomalies, with 94 percent precision on average. In a study with 15 professional developers, the participants inspected problematic refactorings with RefDistiller versus testing only. With RefDistiller, participants located 90 percent of the seeded anomalies, while they located only 13 percent with testing. The results show RefDistiller can help check the correctness of manual refactorings.
Manuals, Inspection, Testing, Computer bugs, Transforms, Engines, Detectors
E. L. Alves, M. Song, T. Massoni, P. D. Machado and M. Kim, "Refactoring Inspection Support for Manual Refactoring Edits," in IEEE Transactions on Software Engineering, vol. 44, no. 4, pp. 365-383, 2018.