Making refactoring safer through impact analysis
Science of Computer Programming, 2014•Elsevier
Currently most developers have to apply manual steps and use test suites to improve
confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO)
programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial
semantics of OO and AO languages. Moreover, most refactoring implementations contain a
number of bugs since it is difficult to establish all conditions required for a transformation to
be behavior preserving. In this article, we propose a tool (SafeRefactorImpact) that analyzes …
confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO)
programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial
semantics of OO and AO languages. Moreover, most refactoring implementations contain a
number of bugs since it is difficult to establish all conditions required for a transformation to
be behavior preserving. In this article, we propose a tool (SafeRefactorImpact) that analyzes …
Abstract
Currently most developers have to apply manual steps and use test suites to improve confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO) programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial semantics of OO and AO languages. Moreover, most refactoring implementations contain a number of bugs since it is difficult to establish all conditions required for a transformation to be behavior preserving. In this article, we propose a tool (SafeRefactorImpact) that analyzes the transformation and generates tests only for the methods impacted by a transformation identified by our change impact analyzer (Safira). We compare SafeRefactorImpact with our previous tool (SafeRefactor) with respect to correctness, performance, number of methods passed to the automatic test suite generator, change coverage, and number of relevant tests generated in 45 transformations. SafeRefactorImpact identifies behavioral changes undetected by SafeRefactor. Moreover, it reduces the number of methods passed to the test suite generator. Finally, SafeRefactorImpact has a better change coverage in larger subjects, and generates more relevant tests than SafeRefactor.
Elsevier
Showing the best result for this search. See all results