posted on 2012-02-01, 10:51authored byMel Ó Cinnéide, Dermot Boyle, Iman Hemati-Moghadam
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.