Systematic Engineering of Mutation Operators

By: Pablo Gómez-Abajo, Esther Guerra, Juan de Lara, Mercedes G. Merayo

Abstract

In the context of software engineering, mutation consists in injecting small changes in artefacts – like models, programs, or data – for purposes like (mutation) testing, test data generation, and all sorts of search-based methods. These tasks typically require defining sets of mutation operators, which are often built ad-hoc because there is currently poor support for their development and testing. To improve this situation, we propose a methodology and corresponding tool support for the proper engineering of mutation operators. Our proposal is model-based, representing the artefacts to be mutated as models. It includes a domain-specific language to describe the mutation operators, facilities to synthesize models that can be used to test the operators, different metrics to analyse operator coverage, and services to generate operators when the coverage is insufficient. We show automated support atop the WODEL tool, and illustrate its use by defining mutation operators for UML Class Diagrams.

Keywords

Model-driven engineering; model mutation; model synthesis; metrics; class diagrams; WODEL.

Cite as:

Pablo Gómez-Abajo, Esther Guerra, Juan de Lara, Mercedes G. Merayo, “Systematic Engineering of Mutation Operators”, Journal of Object Technology, Volume 19, no. 3 (October 2020), pp. 3:1-16, doi:10.5381/jot.2020.19.3.a5.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn

This article is accompanied by a video realized by the author(s).

The JOT Journal   |   ISSN 1660-1769   |   DOI 10.5381/jot   |   AITO   |   Open Access   |    Contact