| Abstract: Fault insertion based techniques have been used for measuring test adequacy and testability of programs. Mutation analysis inserts faults into a program with the goal of creating mutation-adequate test sets that distinguish the mutant from the original program. Software testability is measured by calculating the probability that a program will fail on the next test input coming from a predefined input distribution, given that the software includes a fault. Inserted faults must represent plausible errors. It is relatively easy to apply standard transformations to mutate scalar values such as integers, floats, and character data, because their semantics are well understood. Mutating objects that are instances of user defined types is more difficult. There is no obvious way to modify such objects in a manner consistent with realistic faults, without writing custom mutation methods for each object class. We propose a new object mutation approach along with a set of mutation operators and support tools for inserting faults into objects that instantiate items from common Java libraries heavily used in commercial software as well as user defined classes. Preliminary evaluation of our technique shows that it should be effective for evaluating real-world software testing suites. |
| @INPROCEEDINGS{AlexanderBGB02,
author = {Roger T. Alexander and James M. Bieman and Sudipto Ghosh and Bixia Ji},
title = {Mutation of Java Objects},
booktitle = {Proceedings of the 13th International Symposium on Software Reliability Engineering (ISSRE'02)},
year = {2002},
address = {Annapolis, Maryland},
month = {12-15 November},
pages = {341-351}
} |