Navegación

Búsqueda

Búsqueda avanzada

Resultados de búsqueda para Mutation testing

An experimental and practical study on the equivalent mutant connection: An evolutionary approach

Las pruebas de mutación permiten evaluar y mejorar la calidad de los conjuntos de casos de prueba, pero resultan costosas debido a la existencia de muchos mutantes semánticamente equivalentes al código original, lo que requiere la revisión manual de los mutantes. Este trabajo estudia la posibilidad de que estos mutantes equivalentes estén relacionados tomando como base ciertas características comunes, como son los operadores de mutación que los generan o los fragmentos de códigos en los que estos mutantes aparecen. El experimento que se muestra en este artículo ofrece evidencias de la existencia de tales conexiones, lo cual permite abordar el problema de la detección de mutantes equivalentes desde una perspectiva global en lugar de una puramente individual como hasta el momento. En base a ello, se propone un algoritmo evolutivo que utiliza esta relación entre mutantes equivalentes para resolver de forma más eficiente el problema de selección de mutantes. El trabajo fue publicado en Information and Software Technology, revista indexada en Clarivate Journal of Citation Reports con un índice de impacto de 2,726, y que se encuentra en el cuartil Q2 en la categoría Computer Science, Software Engineering (edición del índice: 2019).

Autores: Pedro Delgado-Pérez / Francisco Chicano / 
Palabras Clave: Evolutionary computation - Mutation testing - Software Testing

Combining Evolutionary Mutation Testing with Random Selection

Mutation testing is a well-known fault-based technique that has been applied to different domains as new technologies have appeared. Evolutionary Mutation Testing (EMT) finds mutants that are useful to produce new test cases. It uses evolutionary algorithms to reduce the number of mutants that are generated, keeping as many difficult to kill and stubborn mutants (strong mutants) as possible in the reduced set. Given the popularity of real-time systems, the MuEPL mutation system was developed for the Esper Event Processing Language (EPL), a query language aimed at the Internet of Things (IoT). In past work, EMT was integrated into MuEPL, and it reduced the cost of finding strong mutants in some EPL queries but not in others. This study takes a step forward by proposing and evaluating two metaheuristics for EMT that combine EMT and random selection: one which bootstraps the hall of fame with a random subset (Bootstrapped EMT), and one which falls back to random selection after a certain point (Inverse EMT). While BEMT is shown to outperform IEMT in most cases, BEMT has not managed to outperform EMT. An additional experiment studies the impact of low-quality mutation operators in the relative performance of BEMT, IEMT and plain EMT. Results suggest that the MuEPL RRO operator was the reason for the poor performance of EMT in some scenarios.

Autores: Lorena Gutiérrez-Madroñal / Antonio Garcia-Dominguez / Inmaculada Medina-Bulo / 
Palabras Clave: Event Processing Language - Evolutionary mutation testing - Internet of Things - Mutation testing

Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing

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+ADs 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.

Autores: Pablo Gómez-Abajo / Esther Guerra / Juan de Lara / Mercedes Merayo / 
Palabras Clave: Domain Specific Languages - Java - model mutation - Model Transformation - Model-Driven Engineering - Mutation testing

Performance mutation testing: hypothesis and open questions

Performance bugs are common, costly, and elusive. Performance tests aim to detect performance bugs by running the program with specific inputs and determining whether the observed behaviour is acceptable. There not exist mechanisms, however, to assess the effectiveness of performance tests. Mutation testing is a technique to evaluate and enhance functional test suites by seeding artificial faults in the program under test. In this new idea paper, we explore the applicability of mutation testing to assess and improve performance tests. This novel approach is motivated with examples and open questions.Ana B. Sánchez, Pedro Delgado-Pérez, Sergio Segura, Inmaculada Medina-Bulo. Performance Mutation Testing: Hypothesis and open questions. Information and Software Technology Journal, 103, 159-161, November 2018. Disponible online: https://doi.org/10.1016/j.infsof.2018.06.015ÍNDICES DE CALIDADFactor de impacto: 2,694Categoría de la revista: Q1Posición en su categoría: 16Número de autores: 4

Autores: Ana B. Sánchez / Pedro Delgado-Pérez / Sergio Segura / Inmaculada Medina-Bulo / 
Palabras Clave: Mutation testing - performance bugs - performance testing

Towards a model-driven engineering solution for language independent mutation testing

Mutation testing is a technique to assess test suite adequacy to distinguish between correct and incorrect programs. Mutation testing applies one or more small changes to a program to obtain variants called mutants. The adequacy of a test suite is measured by determining how many of the mutants it distinguishes from the original program. There are many works about mutation testing, but the existing approaches focus on a specific programming language, and usually, it is not easy to customize the set of mutation operators. In this paper, we present Wodel-Test, an extension of the Wodel tool that implements a language-independent mutation testing framework based on model-driven engineering principles.

Autores: Pablo Gómez-Abajo / Esther Guerra / Juan de Lara / Mercedes G. Merayo / 
Palabras Clave: Domain Specific Languages - model mutation - Model-Driven Engineering - Mutation testing - reverse engineering

Towards Mutation Testing of Configurable Simulink Models: a Product Line Engineering Perspective

Mutation testing has been found to be an efficient technique in order to assess the quality of a test suite. The use of Simulink models is increasing in both industry and academia to model and simulate complex systems such as Cyber-Physical Systems (CPSs). An advantage of Simulink is its ease to integrate software and control algorithms with complex mathematical models that typically represent continuous dynamic behaviors. In addition to that, the increasing trend of industry in adopting product line engineering methods to efficiently support the variability that their products demand is resulting in configurable Simulink models. Consequently, many configurations can be employed to test the configurable system. Each of these configurations will have a set of mutants, which will be in accordance with the configuration characteristics (i.e., features). However, manually generating and configuring mutants for each of the configurations is a time-consuming and non-systematic process. To deal with this problem, we propose a methodology supported by a tool that automatically generates mutants for configurable Simulink models.

Autores: Aitor Arrieta / Urtzi Markiegi / Leire Etxeberria / 
Palabras Clave: Cyber-Physical Systems - Feature Modeling - MATLAB/Simulink - Mutation testing - Product Line Engineering

Assessment of class mutation operators for C++ with the MuCPP mutation system

Context: Mutation testing has been mainly analyzed regarding traditional mutation operators involving structured programming constructs common in mainstream languages, but mutations at the class level have not been assessed to the same extent. This fact is noteworthy in the case of C++ , despite being one of the most relevant languages including object-oriented features. Objective: This paper provides a complete evaluation of class operators for the C++ programming language. MuCPP, a new system devoted to the application of mutation testing to this language, was developed to this end. This mutation system implements class mutation operators in a robust way, dealing with the inherent complexity of the language. Method: MuCPP generates the mutants by traversing the abstract syntax tree of each translation unit with the Clang API, and stores mutants as branches in the Git version control system. The tool is able to detect duplicate mutants, avoid system headers, and drive the compilation process. Then, MuCPP is used to conduct experiments with several open-source C++ programs. Results: The improvement rules listed in this paper to reduce unproductive class mutants have a significant impact in the computational cost of the technique. We also calculate the quantity and distribution of mutants generated with class operators, which generate far fewer mutants than their traditional counterparts. Conclusions: We show that the tests accompanying these programs cannot detect faults related to particular object-oriented features of C++ . In order to increase the mutation score, we create new test scenarios to kill the surviving class mutants for all the applications. The results confirm that, while traditional mutation operators are still needed, class operators can complement them and help testers further improve the test suite. Autores: Pedro Delgado-Pérez, Inmaculada Medina-Bulo, Francisco Palomo-Lozano, Antonio García-Domínguez, Juan José Domínguez-Jiménez Revista: Information and Software Technology, Volume 81, January 2017, Pages 169-184, http://dx.doi.org/10.1016/j.infsof.2016.07.002 Factor de impacto: 1.569 – Q1 (listado JCR 2015)

Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Francisco Palomo-Lozano / Antonio Garcia-Dominguez / Juan José Domínguez-Jiménez / 
Palabras Clave: C++ - Class mutation operators - Mutation system - Mutation testing - Object-oriented programming

No encuentra los resultados que busca? Prueba nuestra Búsqueda avanzada