Abstract. Developers rely on compilation, test suite and tools to pre-serve observable behavior during refactorings. However, most of the refac-toring tools do not implement all preconditions that guarantee the refac-toring correctness, since formally identifying them is cost-prohibitive. Therefore, these tools may perform non-behavior-preserving transforma-tions. We present a technique and tool (SafeRefactor) for making pro-gram refactoring safer. It analyzes a transformation and automatically generates a test suite that is suited for detecting behavioral changes. Moreover, we propose a program generator (JDolly) useful for generat-ing inputs for testing refactoring tools. We have evaluated both in two experiments. First, we used SafeRefac...
One of the costs of reusing software components is migrating applications to use the new version of ...
Poorly structured code is hard to maintain and read. Refactoring can improve the code structure and ...
Refactorings, behavior preserving transformations, are claimed to make software easier to understand...
Defining and implementing refactorings is a nontrivial task since it is difficult to define precondi...
Refactoring enhances software quality in an evolving system. Developers perform behavior-preserving ...
Many refactorings are simple but tedious, which makes them good candidates for automation. Common re...
Refactoring, the process of changing the structure of code without changing its behavior, can be sem...
Abstract. Testing refactoring engines is a challenging problem that has gained recent attention in r...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
Refactorings are structured changes to existing software that leave its externally observable behavi...
Software has been and is still mostly refactored without tool support. Moreover, as we found in our ...
Modern Integrated Development Environments (IDEs) sup-port many refactorings. Yet, programmers great...
A topical and relevant issue in the area of refactoring is the nature and characteristics of classes...
Abstract—Static analysis tools are used for the detection of errors and other problems on source cod...
One of the costs of reusing software components is migrating applications to use the new version of ...
Poorly structured code is hard to maintain and read. Refactoring can improve the code structure and ...
Refactorings, behavior preserving transformations, are claimed to make software easier to understand...
Defining and implementing refactorings is a nontrivial task since it is difficult to define precondi...
Refactoring enhances software quality in an evolving system. Developers perform behavior-preserving ...
Many refactorings are simple but tedious, which makes them good candidates for automation. Common re...
Refactoring, the process of changing the structure of code without changing its behavior, can be sem...
Abstract. Testing refactoring engines is a challenging problem that has gained recent attention in r...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
Refactorings are structured changes to existing software that leave its externally observable behavi...
Software has been and is still mostly refactored without tool support. Moreover, as we found in our ...
Modern Integrated Development Environments (IDEs) sup-port many refactorings. Yet, programmers great...
A topical and relevant issue in the area of refactoring is the nature and characteristics of classes...
Abstract—Static analysis tools are used for the detection of errors and other problems on source cod...
One of the costs of reusing software components is migrating applications to use the new version of ...
Poorly structured code is hard to maintain and read. Refactoring can improve the code structure and ...
Refactorings, behavior preserving transformations, are claimed to make software easier to understand...