A 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

This is a short video demo of Wodel-Test applied to Java: