./Wodel-Test

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.

Tool demonstrations

The generated MuT tool for Java running with JUnit 4.
The generated MuT tool for Java running with JUnit 5.

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.

The Wodel editor showing mutation operators for 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 a MuT tool
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.

Available tools

Designer

./Wodel-Test designer

The core framework for defining a language and its mutation operators and generating the corresponding MuT tool.

MuT tool for Java

./Wodel-Test for Java

A mutation-testing tool for Java with support for JUnit 3, JUnit 4 and JUnit 5.

MuT tool for ATL

./Wodel-Test for ATL

A mutation-testing tool for the ATL model-transformation language.

MuT tool for finite automata

./Wodel-Test for Finite Automata

A mutation-testing tool for finite automata.

MuT tool for logic circuits

./Wodel-Test for Logic Circuits

A mutation-testing tool for logic circuits.

MuT tool for chatbots

./Wodel-Test for Chatbots

A mutation-testing tool for chatbots defined with the CONGA notation.

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.

me

./Wodel-Test