Wodel-Test: a model-based framework for language-independent mutation testing
- PDF / 5,853,269 Bytes
- 27 Pages / 595.276 x 790.866 pts Page_size
- 74 Downloads / 170 Views
REGULAR PAPER
Wodel-Test: a model-based framework for language-independent mutation testing Pablo Gómez-Abajo1
· Esther Guerra1 · Juan de Lara1 · Mercedes G. Merayo2
Received: 12 December 2019 / Revised: 6 June 2020 / Accepted: 17 August 2020 © Springer-Verlag GmbH Germany, part of Springer Nature 2020
Abstract Mutation testing (MT) targets the assessment of test cases by measuring their efficiency to detect faults. This technique involves modifying the program under test to emulate programming faults, and assessing whether the existing test cases detect such mutations. MT has been extensively studied since the 70’s, and many tools have been proposed for widely used languages like C, Java, Fortran, Ada and SQL; and for notations like Petri-nets. However, building MT tools is costly and error-prone, which may prevent their development for new programming and domain-specific (modelling) languages. In this paper, we propose a framework called Wodel- Test to reduce the effort to create MT tools. For this purpose, it follows a model-driven approach by which MT tools are synthesized from a high-level description. This description makes use of the domain-specific language Wodel to define and execute model mutations. Wodel is language-independent, as it allows the creation of mutation operators for any language defined by a meta-model. Starting from the definition of the mutation operators, Wodel- Test generates a MT environment which parses the program under test into a model, applies the mutation operators, and evaluates the test-suite against the generated mutants, offering a rich collection of MT metrics. We report on an evaluation of the approach based on the creation of MT tools for Java and the Atlas transformation language. Keywords Mutation testing · Model mutation · Model-driven engineering · Domain-specific languages · Java · Model transformation
1 Introduction Mutation testing (MT) is a software testing technique consisting in injecting artificial faults to the program under test to evaluate an existing test suite [21,43]. The hypothesis is that if a test suite is good at distinguishing a program from its mutants, then it is probably good at discovering faults. Communicated by Benoit Baudry.
B
Pablo Gómez-Abajo [email protected] Esther Guerra [email protected] Juan de Lara [email protected] Mercedes G. Merayo [email protected]
1
Modelling and Software Engineering Research Group, Universidad Autónoma de Madrid, Madrid, Spain
2
Design and Testing of Reliable Systems Research Group, Universidad Complutense de Madrid, Madrid, Spain
Hence, MT is an alternative to other techniques to evaluate the strength of a test suite, e.g. based on coverage [6]. MT is based on the competent programmer hypothesis, which states that most software faults introduced by experienced programmers are caused by small syntactic errors [21]. MT emulates these errors in the form of mutation operators. These are specifications of small changes (e.g. swapping plus by minus in an arithmetical expression) which are systematic
Data Loading...