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:
View on GitHub Update-site Wodel project .zip FA ecore Meta-model Standalone Eclipse+MuT for FA
View on GitHub Update-site Wodel project .zip Java ecore Meta-model Standalone Eclipse+MuT for Java
View on GitHub Update-site Wodel project .zip ATL ecore Meta-model Standalone Eclipse+MuT for ATL
View on GitHub Update-site Wodel project .zip Conga ecore Meta-model
Annotation ecore Meta-model Standalone Eclipse+MuT for Chatbots
This is a short video demo of a Wodel-Test for Java execution:
This video shows Wodel-Test environment features useful for MT tools:
TThis is a video demo of a Wodel-Test for Chatbots execution:
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").