MuJava : An Automated Class Mutation System

Yu-Seung Ma, Jeff Offutt and Yong Rae Kwon

Abstract

Several module and class testing techniques have been applied to
object-oriented programs, but researchers have only recently begun
developing test criteria that evaluate the use of key OO features
such as inheritance, polymorphism, and encapsulation. Mutation
testing is a powerful testing technique for generating software
tests and evaluating the quality of software. However, the cost of
mutation testing has traditionally been so high it cannot be
applied without full automated tool support.
This paper presents a method to reduce the execution cost of
mutation testing for OO programs by using two key technologies,
Mutant Schemata Generation (MSG) and reflection. This method
adapts the existing MSG method for mutants that change the program
behavior and uses load-time structural reflection for mutants that
change the program structure. A key advantage is in performance:
only two compilations are required and both the compilation and
execution time for each is greatly reduced.
A mutation tool based on the MSG/reflection method has been built
and used to measure the speedup over the separate compilation
approach. Experimental results show that the MSG/reflection method
is about five times faster than separate compilation.