Language-independent mutation testing generated from models.
Overview
Wodel-Test automates the development of mutation-testing (MuT) tools. It takes the
meta-model of a language and a set of mutation operators defined with the Wodel
domain-specific language. From these inputs, it synthesises a complete MuT environment
for the target language as a ready-to-install Eclipse plug-in. This model-based approach
has already been used to generate MuT tools for Java, ATL, finite automata, logic
circuits and chatbots.
Language independence: a MuT tool can be generated for any language defined by a meta-model.
Mutation operators in Wodel: operators are defined once, at model level, using the Wodel DSL.
Complete MuT environments: each generated tool is a full Eclipse plug-in distributed through its own update site.
Model-based execution: programs are parsed as models that conform to the language meta-model, then mutated and tested.
Detailed metrics: the generated tools execute the test suites against the mutants and report detailed information about the MuT process.
Mutation testing assesses the quality of a test suite by introducing small, systematic
changes, known as mutants, into the program under test. The tests are then executed to
determine whether they detect these changes. Traditionally, developing a mutation-testing
tool for a new language has required substantial ad hoc work, which must be repeated for
each language.
Wodel-Test reduces this effort through a model-based approach. Both the target
language and its mutation operators are represented as models, so the same framework can
generate a tailored MuT tool for each language. The generated tool parses programs as
models, applies the mutation operators, executes the test suites against the resulting
mutants, and reports a detailed set of metrics about the MuT process.
See generated MuT tools in operation.
Tool demonstrations
The generated MuT tool for Java running with JUnit 4.
The generated MuT tool for Java running with JUnit 5.
From a language meta-model to mutation-testing results in five steps.
How ./Wodel-Test works
1Provide the language meta-model
The process begins with an Ecore meta-model that describes the abstract syntax of the
target language. This may be Java, ATL, finite automata, logic circuits, chatbot
definitions, or any other language for which a meta-model exists or can be created.
2Define the mutation operators with Wodel
Mutation operators are written in Wodel, a domain-specific language for model
mutation. Wodel provides primitives for creating and deleting objects, redirecting
references, modifying attributes, cloning elements and changing their types. Its engine
also ensures that every generated mutant is a valid model of the target language.
Defining mutation operators for the target language in the Wodel-Test designer.
3Generate the MuT tool with the Wodel-Test designer
Using the meta-model and mutation operators, the Wodel-Test designer synthesises a
complete MuT environment for the language. The environment is packaged as an Eclipse
plug-in with its own update site, ready for installation and distribution.
The update site generated for the new MuT tool.
4Run mutation testing
The generated tool parses the programs under test as models that conform to the language
meta-model. It then applies the mutation operators to create mutants and executes the
test suites against them.
5Analyse the results
The tool reports detailed metrics about the MuT process, including the mutation score
and the mutants detected by each test. These results help users assess and improve the
quality of their test suites.
A mutation-testing tool for chatbots defined with the CONGA notation.
An academic research tool for model-driven engineering and software testing.
Research context
Wodel-Test is developed by researchers at the Universidad Autónoma de Madrid and the
Universidad Complutense de Madrid. It builds on a broad range of Eclipse Modelling
technologies, including Xtext, Sirius, Epsilon, OCL Tools, Acceleo, MoDisco, ATL,
AnATLyzer, CONGA and EMF JSON. These technologies are acknowledged on the
Authors & Contributors page.
Key publications include Wodel-Test: A model-based framework for engineering
language-specific mutation testing tools (SoftwareX, Elsevier, 2025) and Wodel-Test: A
model-based framework for language-independent mutation testing (Software and Systems
Modeling, Springer, 2021). The complete publication list and funding acknowledgements,
including the SATORI, FORTE and MASSIVE projects, are available on the
Publications & Funding page.