Wodel-Test is built on top of Wodel, a domain-specific language to define and execute model mutations.
Wodel is language independent, enabling the creation of mutation operators for any language defined by a meta-model.
Once the mutation operators are defined, Wodel-Test generates a complete Mutation Testing (MT) environment for the language as an Eclipse plugin.
This MT tool parses the program representing it as a model conformant to the language meta-model, applies the mutation operators, and evaluates the test suite on the generated mutants, offering a rich collection of metrics about the MT process.
This is an example of a Wodel program to replace a constructor call by a null literal in a Java program:
generate 2 mutants
in "data/out/"
from "data/model/"
metamodel "data/model/java.ecore"
description "Simple mutation operator for Java"
with blocks {
cir "Replaces a call to a constructor by null" {
a = select one Assignment
where {rightHandSide is typed ClassInstanceCreation}
create NullLiteral in a->rightHandSide
}
}
MT tools generated with Wodel-Test:
Wodel-Test for FA
FA ecore Meta-model
Wodel-Test for Java
Java ecore Meta-model
Wodel-Test for ATL
ATL ecore Meta-model
This is a short video demo of Wodel-Test for Java execution:
This video shows Wodel-Test environment features useful for MT tools:
This work has been funded by the Spanish Ministry of Science (RTI2018-095255-B-I00, project "MASSIVE") and the R&D programme of Madrid (P2018/TCS-4314, project "FORTE").