Navegación

Búsqueda

Búsqueda avanzada

El autor Antonio Garcia-Dominguez ha publicado 5 artículo(s):

1 - Análisis y determinación del impacto del operador de mutación en la generación genética de casos de prueba para WS-BPEL

La prueba basada en búsqueda permite generar casos de prueba automáticamente mediante la codificación de un criterio de cobertura como una función de aptitud que guía la búsqueda. Los algoritmos genéticos se han aplicado con éxito a este tipo de prueba utilizando principalmente criterios de cobertura estructural. Este trabajo presenta el análisis realizado para mejorar el comportamiento del generador de casos de prueba Rodan, que emplea un algoritmo genético para generar casos de prueba que matan mutantes producidos a partir de composiciones WS-BPEL. Se presentan los resultados obtenidos sobre un caso de estudio clásico en la literatura de prueba (un clasificador de triángulos) para tres operadores de mutación, con siembra y sin ella, y con distintos tamaños del espacio de búsqueda. Estos resultados se comparan con los obtenidos mediante generación aleatoria de casos de prueba.

Autores: Antonia Estero-Botaro / Álvaro Cortijo-García / Antonio García-Domínguez / Francisco Palomo-Lozano / Juan José Domínguez-Jiménez / Inmaculada Medina-Bulo / 
Palabras Clave:

2 - Generación Genética de Casos de Prueba para Composiciones WS-BPEL

La generación automática de casos de prueba juega un papel de gran importancia dentro de la prueba de software. En concreto, la prueba basada en búsqueda genera casos de prueba codificando un criterio de cobertura como una función de aptitud que guía la búsqueda. De hecho, los algoritmos genéticos han sido aplicados con éxito a la prueba basada en búsqueda utilizando principalmente criterios de cobertura estructural. Este trabajo presenta un generador de casos de prueba para composiciones WS-BPEL denominado Rodan que está basado en un algoritmo genético. Su objetivo es generar casos de prueba que maten a los mutantes producidos a partir de la composición a probar. El algoritmo genético diseñado adopta algunas de las características de los algoritmos bacteriológicos, también propuestos para la generación de casos de prueba. Hemos aplicado Rodan a una composición WS-BPEL, comparando nuestra técnica con la generación aleatoria de casos de prueba y concluyéndose que con nuestra técnica se obtienen resultados prometedores.

Autores: Antonia Estero-Botaro / Antonio García-Domínguez / Juan José Domínguez-Jiménez / Francisco Palomo-Lozano / Inmaculada Medina-Bulo / 
Palabras Clave:

3 - 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

4 - 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

5 - Ejecución Simbólica y Prueba de Mutaciones: mejora de la generación automática de casos de prueba

La prueba del software es una etapa compleja y costosa del desarrollo de software, existiendo una gran variedad de soluciones para reducir su coste y mejorar su calidad. En concreto, con respecto a la generación de pruebas, la ejecución simbólica dinámica (ESD) permite generar automáticamente pruebas con una buena cobertura estructural. En cuanto a la evaluación de las pruebas, la prueba de mutaciones (PM) evalúa la calidad de los casos de prueba introduciendo pequeños cambios localizados que se asemejan a fallos reales. Sin embargo, se sabe que la ESD genera pruebas que no tienen una buena cobertura de mutaciones. En este trabajo, proponemos combinar la ESD con la PM, de tal manera que obtengamos automáticamente conjuntos de casos de prueba con una mejora significativa de la cobertura de mutación y, por tanto, de la detección de fallos reales.

Autores: Kevin J. Valle-Gómez / Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Antonio García-Domínguez / 
Palabras Clave: Ejecución Simbólica - Generación automática de pruebas - prueba de mutaciones