English

MMT: Mutation Testing of Java Bytecode with Model Transformation -- An Illustrative Demonstration

Software Engineering 2024-04-23 v1

Abstract

Mutation testing is an approach to check the robustness of test suites. The program code is slightly changed by mutations to inject errors. A test suite is robust enough if it finds such errors. Tools for mutation testing usually integrate sets of mutation operators such as, for example, swapping arithmetic operators; modern tools typically work with compiled code such as Java bytecode. In this case, the mutations must be defined in such a way that the mutated program still can be loaded and executed. The results of mutation tests depend directly on the possible mutations. More advanced mutations and even domain-specific mutations can pose another challenge to the test suite. Since extending the classical approaches to more complex mutations is not well supported and is difficult, we propose a model-driven approach where mutations of Java bytecode can be flexibly defined by model transformation. The corresponding tool called MMT has been extended with advanced mutation operators for modifying object-oriented structures, Java-specific properties and method calls of APIs, making it the only mutation testing tool for Java bytecode that supports such mutations.

Keywords

Cite

@article{arxiv.2404.14097,
  title  = {MMT: Mutation Testing of Java Bytecode with Model Transformation -- An Illustrative Demonstration},
  author = {Christoph Bockisch and Gabriele Taentzer and Daniel Neufeld},
  journal= {arXiv preprint arXiv:2404.14097},
  year   = {2024}
}
R2 v1 2026-06-28T16:02:09.310Z