Wodel-Test

A Model-based Framework for Language-independent Mutation Testing

View on GitHub

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

View on GitHub Update-site Wodel project .zip FA ecore Meta-model Standalone Eclipse+MuT for FA

Wodel-Test for Java

View on GitHub Update-site Wodel project .zip Java ecore Meta-model Standalone Eclipse+MuT for Java

Wodel-Test for ATL

View on GitHub Update-site Wodel project .zip ATL ecore Meta-model Standalone Eclipse+MuT for ATL

Wodel-Test for Chatbots

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").