Refactoring as Testability Transformation
This paper briefly reviews the theory of testability transformation and outlines its implications for and relationship to refactoring for testing. The paper introduces testability refactorings, a subclass of testability transformations and discusses possible examples of testability refactorings. Several approaches to testability refactoring are also introduced. These include the novel concept of test - carrying code and the use of pareto optimization for balancing the competing needs of machine and human in search based testability refactoring.