Editorial: On mutants, metaphors and scientific creativity

M. Woodward
DOI: https://doi.org/10.1002/stvr.325
2005-06-01
Abstract:Mutation testing is a common theme of the papers in this issue of STVR. This has happened largely by chance, unlike the previous occasion in 2001, when a special issue of STVR [1] was allocated to selected papers from the first ever symposium [2] devoted exclusively to mutation testing. The use of the word ‘mutation’ in relation to testing of computer programs is a biological metaphor: a metaphor is a figure of speech whereby words are applied to something, even though they are not literally applicable. Programs cannot spontaneously mutate in the way that biological organisms can, as part of reproduction. Metaphors abound in computing. For example, we say that a program ‘runs’, rather than executes, or that it ‘crashes’ when an abnormal termination occurs. Perhaps it is not surprising that metaphors are so widely used in computing. After all, in terms of the development of mankind, computers are essentially new devices and their associated technologies are still rapidly evolving. Metaphors help us understand and communicate about new or unfamiliar situations. Mutation as applied to program testing is not the only biological metaphor in the paper by Baudry, Fleurey, Jézéquel and Le Traon; they also make use of genetic algorithms (GAs), a metaphor inspired by the Darwinian notion of ‘survival of the fittest’, coupled with a genetic model of reproduction. Starting from the premise that the quality of a set of test cases is related to its mutation score (i.e. the proportion of program mutants distinguished from the original program by the test cases), Baudry et al. investigate the use of GAs in automatic optimization of a set of test cases to maximize the mutation score. They discovered that a modification of the standard GA model provides much improved performance in two case studies. The modification amounts to suppression of the crossover operation and inclusion of a memorization function. The crossover operation involves breaking the genetic string of a pair of individuals (test cases here) and splicing each fragment of one member of the pair to a fragment of the other member, thus creating two new individuals. The purpose of the memorization function is to utilize the known mutation score of those individuals that are saved in going from one generation to the next. Using yet another biological metaphor, the new algorithm is likened to the development of a population of bacteria. The bacteria do not undergo subdivision (since there is no crossover operator); instead, just the most effective individuals survive, alter and reproduce. This socalled bacteriological algorithm (BA) outperforms the traditional GA with a factor of ten improvement in execution time and an improved final mutation score. The paper by Ma, Offutt and Kwon does not involve any metaphors other than program mutation, although the work described does possess a number of novel aspects and, as with the work of Baudry et al., one of the aims is performance improvement. Ma et al. describe MuJava, a mutation testing system for Java designed to tackle the object-oriented (OO) features of the language. A comprehensive set of 24 mutation operators, primarily for inter-class testing, has been implemented in MuJava.
What problem does this paper attempt to address?