Refactorings are behavior preserving program transformations that improve program design. Refactoring engines are tools that automate the application of refactorings: first the user chooses a refactoring to apply, then the engine checks if the transformation is safe, and if so, transforms the program. Refactoring engines are a key component of modern IDEs and programmers rely on them to perform refactorings. A bug in the refactoring engine can have severe consequences as it can erroneously change large bodies of the program. The purpose of this thesis is testing several refactorings in NetBeans, a popular IDE that includes a refactoring engine for the Java programming language. We use two types of tests: (1) existing tests manually written for Eclipse, another popular IDE for Java, and (2) tests automatically generated with a framework called ASTGen. We reported 53 new bugs for the NetBeans refactoring engine; 27 bugs were found using Eclipse tests, and 26 bugs were found using ASTGen tests. We reported these bugs to Issuezilla, the bug-tracking system for NetBeans, and the developers already fixed 5 of these bugs, declared 7 bugs as duplicates, declared 1 bug as “won’t be fixed”, declared 2 bugs as “work fine in latest version”, and confirmed 43 as real bugs
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.