Making Program Refactoring Safer

IEEE Software | , Vol 27(4): pp. 52-57

Developers rely on compilation, test suites, and tools to preserve observable behavior during refactoring. However, most refactoring tools don’t implement all the preconditions that guarantee refactoring correctness because formally identifying them is cost-prohibitive. Therefore, these tools could perform nonbehavior-preserving transformations. The authors present a tool for improving safety during refactoring that automatically generates a test suite suited for detecting behavioral changes. They used this tool to evaluate seven real case study refactorings (from 3 to 100 KLOC).