In this paper, we describe and then appraise a testing taxonomy proposed by van Deursen and Moonen (VD&M) based on the post-refactoring repeatability of tests. Four categories of refactoring are identified by VD&M ranging from semantic-preserving to incompatible, where, for the former, no new tests are required and for the latter, a completely new test set has to be developed. In our appraisal of the taxonomy, we heavily stress the need for the inter-dependence of the refactoring categories to be considered when making refactoring decisions and we base that need on a refactoring dependency graph developed as part of the research. We demonstrate that while incompatible refactorings may be harmful and time-consuming from a testing perspective...
Many of the seventy-two refactorings originally proposed by Fowler have the aim of reducing coupling...
Background: Refactoring has matured over the past twenty years to become part of a developer's toolk...
Defining and implementing refactorings is a nontrivial task since it is difficult to define precondi...
The mechanics of seventy-two different Java refactorings are described fully in Fowler's text. In th...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
It is widely believed that refactoring improves software quality and developer’s productivity by mak...
Previous studies have investigated the reasons behind refactoring operations performed by developers...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
The purpose of refactoring is to improve the quality of a software system by changing its internal d...
Two key aspects of extreme programming (XP) are unit testing and merciless refactoring. Given the fa...
Refactoring, as coined by William Obdyke in 1992, is the art of optimizing the syntactic design of a...
Software development is a messy process filled with an assortment of widely varying practices, proce...
It is important to refactor software source code from time to time to preserve its maintainability a...
Abstract. Testing refactoring engines is a challenging problem that has gained recent attention in r...
Refactoring is the de-facto practice to optimize software health. While several studies propose refa...
Many of the seventy-two refactorings originally proposed by Fowler have the aim of reducing coupling...
Background: Refactoring has matured over the past twenty years to become part of a developer's toolk...
Defining and implementing refactorings is a nontrivial task since it is difficult to define precondi...
The mechanics of seventy-two different Java refactorings are described fully in Fowler's text. In th...
Abstract—Refactorings are—as defined by Fowler—behavior preserving source code transformations. Thei...
It is widely believed that refactoring improves software quality and developer’s productivity by mak...
Previous studies have investigated the reasons behind refactoring operations performed by developers...
Refactorings are—as defined by Fowler—behavior preserving source code transformations. Their main pu...
The purpose of refactoring is to improve the quality of a software system by changing its internal d...
Two key aspects of extreme programming (XP) are unit testing and merciless refactoring. Given the fa...
Refactoring, as coined by William Obdyke in 1992, is the art of optimizing the syntactic design of a...
Software development is a messy process filled with an assortment of widely varying practices, proce...
It is important to refactor software source code from time to time to preserve its maintainability a...
Abstract. Testing refactoring engines is a challenging problem that has gained recent attention in r...
Refactoring is the de-facto practice to optimize software health. While several studies propose refa...
Many of the seventy-two refactorings originally proposed by Fowler have the aim of reducing coupling...
Background: Refactoring has matured over the past twenty years to become part of a developer's toolk...
Defining and implementing refactorings is a nontrivial task since it is difficult to define precondi...