Testability Transformation
Mark Harman
Testability transformation combines automated test data generation with traditional program transformation. This talk introduces the concept of testability transformation, to address structural impediments to automated test data generation. A testability transformation alters the program's structure, creating an equivalent version of the program for which test data generation is easier. Because the structure of the original program is transformed, the test adequacy criterion may also need to be transformed, to preserve the meaning of the original adequacy criterion.
This observation motivates the introduction of a theoretical foundation for testability transformation, in which a testability transformation extends traditional program transformation to include the test adequacy criterion together with the program to be transformed. The theory is illustrated with two example applications of testability transformation for evolutionary testing.
Interestingly testability transformations are disposed of once they are used - testability transformation is a means to an end, rather than an end in itself. This is a departure from previous work on transformation, in which the transformed program replaces the original. Even more radical, the transformations need not be meaning preserving in the conventional sense of functional equivalence - the sine qua non of transformation for the past thirty years.