2011 · 35 citations · 18 references
ComputingComputer ScienceQuality AssuranceQuality ImprovementSoftware EngineeringSoftware DesignSoftware MetricsSoftware RefactoringSoftware TestingAutomated RefactoringCohesionRefactoringRefactoring MetricsSoftware TestabilityTest Cases
Current software practice places a strong emphasis on unit testing, to the extent that the amount of test code produced on a project can exceed the amount of actual application code required. This illustrates the importance of testability as a feature of software. In this paper we investigate whether it is possible to improve a program's testability using an automated refactoring approach. We conduct a quasi-experiment where we create a small application that scores poorly using a proven cohesion metric, LSCC. Using our automated refactoring platform, Code-Imp, this application is automatically refactored using the LSCC metric to guide the search for better solutions. To evaluate the results, a number of industrial software engineers were asked to write test cases for the application both before and after refactoring and compare the relative difficulty involved. The results were interesting though inconclusive, and suggest that further work is required.
18
Cohesion and reuse in an object-oriented system
James M. Bieman, Byung-Kyoo Kang · 1995 · 395 citations
Pareto optimal search based refactoring at the design level
Mark Harman, Laurence Tratt · 2007 · 223 citations
A smart hill-climbing algorithm for application server configuration
Bowei Xi, Zhen Liu, Mukund Raghavachari et al. · 2004 · 164 citations