El autor Inmaculada Medina-Bulo ha publicado 29 artículo(s):
Hoy en día, existe una gran variedad de soluciones para reducir los costes de las pruebas y mejorar su calidad. La combinación de dos técnicas conocidas como la Ejecución Simbólica Dinámica (ESD) y la Prueba de Mutaciones (PM) produce conjuntos de pruebas capaces de detectar un buen número de mutantes, pero a expensas de un elevado coste. En este trabajo se propone un enfoque para alcanzar los buenos resultados de combinar ESD y PM sin aumentar el ya de por s+AO0 elevado coste de utilizar ESD.
Autores: Kevin J. Valle-Gómez / Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Antonio Garcia-Dominguez /
Palabras Clave: Ejecución Simbólica Dinámica - Generación automática de pruebas - prueba de mutaciones
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:
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
La generación de pruebas es una actividad costosa pero a la vez imprescindible para aumentar la calidad de los proyectos software. Las herramientas de pruebas automatizadas basadas en los principios de la búsqueda evolutiva aún presentan limitaciones a la hora de encontrar fallos en sistemas reales, as+AO0 como en la obtención de código entendible para un ingeniero de pruebas. El uso de enfoques interactivos puede ayudar a paliar estas limitaciones, pues permiten incluir conocimiento y habilidades humanas en la búsqueda. En este trabajo presentamos las posibilidades que la interacción ofrece a la generación automática de casos de prueba, proponiendo un algoritmo evolutivo interactivo capaz de integrar la evaluación del ingeniero de pruebas respecto a la legibilidad de los casos de prueba. Una comparativa inicial frente a la versión no interactiva del algoritmo evidencia que la inclusión de interacción favorece la generación de conjuntos de pruebas más legibles, sin perjudicar la cobertura alcanzada. Fruto de este primer experimento, basado en interacción simulada, planteamos una serie de retos relacionados con el diseño y validación real de algoritmos evolutivos interactivos en el contexto de la generación de pruebas.
Autores: Pedro Delgado-Pérez / Aurora Ramírez / Kevin J. Valle-Gómez / Inmaculada Medina-Bulo / José Raúl Romero /
Palabras Clave: generación de pruebas - ingeniería del software basada en búsqueda interactiva - pruebas de mutación - pruebas software
La prueba de mutaciones es una técnica basada en fallos que se ha desarrollado alrededor de un amplio rango de lenguajes de programación. Sin embargo, la construcción de un marco de trabajo de prueba de mutaciones no comercial para C++ ha sido pospuesto en favor de otros lenguajes, principalmente por la variedad de alternativas que ofrece C++. Este artículo presenta una solución factible y completa para la implementación de los operadores de mutación en C++, la cual se basa en la búsqueda de patrones en el árbol de sintaxis abstracta (AST) que el compilador Clang genera a partir del código fuente. Estos patrones se construyen según las reglas que determinan los distintos operadores de mutación, permitiendo localizar los puntos del código en los que es posible introducir una mutación. Asimismo, en el artículo se abordan distintas situaciones que han de ser consideradas para la validez de los mutantes creados. Este proceso se ilustra a través de un operador de mutación a nivel de clase, si bien este enfoque sirve para crear operadores a cualquier nivel del lenguaje.
Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Juan José Domínguez-Jiménez /
Palabras Clave: árbol de sintaxis abstracta - C++ - operador de mutación - prueba de mutaciones
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
Las técnicas basadas en búsqueda se han aplicado a casi todas las áreas de la Ingeniería del Software, especialmente a la prueba de software, con el fin de abordar problemas de difícil resolución. Sin embargo, el problema de la selección de mutantes con el objetivo de mejorar el conjunto de pruebas no ha sido explorado tanto como otros problemas del mismo área, como puede ser la generación de datos de prueba. En este artículo aplicamos selección de mutantes basada en búsqueda para la mejora eficiente de la calidad de las pruebas. Concretamente, usamos la técnica conocida como prueba de mutación evolutiva (PME), la cual permite reducir el número de mutantes pero sin pérdida significativa de efectividad. A pesar de los beneficios que su aplicación ha reportado, los resultados empíricos hasta el momento han sido derivados de un número limitado de casos de estudio, un único conjunto de operadores de mutación así como una métrica poco representativa del rendimiento real de la técnica. Este artículo trata de aliviar estos defectos definiendo una nueva metodología para la evaluación de PME basada en la mejora real que se logra en el conjunto de pruebas al usar la estrategia evolutiva. Después, aplicamos esta metodología en nuevos experimentos con un conjunto de programas en C++ reales. Los resultados muestran que PME proporciona un buen rendimiento para la mayoría de casos y niveles de exigencia de mejora de las pruebas (en torno al 45% mejor que la selección aleatoria en el mejor caso). Los resultados revelan que incluso un conjunto reducido de mutantes seleccionado con PME es útil para incrementar la calidad de las pruebas, especialmente en los programas con un número mayor de mutantes. En definitiva, estos resultados apoyan el uso de técnicas basadas en búsqueda para resolver el problema de la selección de mutantes para la mejora eficiente de las pruebas. Adicionalmente, identificamos ciertos aspectos que previsiblemente podrían ayudar a mejorar la técnica PME.
Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo /
Palabras Clave: Algoritmo evolutivo - algoritmo genético - ingeniería del software basada en búsqueda - prueba de mutaciones
Los errores de rendimiento del software pueden causar una importante degradación en la experiencia de usuario y dar lugar a problemas muy costosos de detectar y resolver. Las pruebas de rendimiento persiguen detectar y reducir el impacto de estos errores. Sin embargo, no existen mecanismos para evaluar la calidad de las pruebas de rendimiento, causando en muchos casos, que estos errores pasen desapercibidos. La prueba de mutación es una técnica para evaluar y mejorar las pruebas funcionales a través de la introducción de errores artificiales en el programa bajo prueba. En este artículo, exploramos la aplicabilidad de la prueba de mutación junto con el empleo de un algoritmo evolutivo para buscar mutantes que simulen errores de rendimiento. Esta propuesta noPrueba de mutación, errores de rendimiento, pruebas de rendimiento, algoritmos evolutivos.vedosa contribuye a mejorar la confianza en las pruebas de rendimiento al mismo tiempo que reduce el coste de la prueba de mutación.
Autores: Ana B. Sánchez / Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Sergio Segura /
Palabras Clave: algoritmos evolutivos - errores de rendimiento - prueba de mutación - Pruebas de Rendimiento
El Internet de las Cosas (IoT) se ha ido aplicando en diferentes áreas; como smartcyties , medicina, procesos de negocio, etc, convirtiéndolo en un paradigma muy popular. Uno de los inconvenientes de los sistemas IoT es la toma de decisiones en tiempo real según la gran cantidad de información, eventos, que manejan. Realizar pruebas en estos sistemas es crucial para la toma de decisiones, ya que si no se filtra la información correcta no se llevarán a cabo las acciones esperadas. En diversas ocasiones es difícil obtener los eventos con valores específicos para realizar pruebas: condiciones ambientales adversas, subida o bajada de la tensión arterial, paro cardíaco, caídas… Este trabajo está enfocado en analizar caídas y en generar los eventos de prueba que las simulen utilizando la herramienta IoT-TEG. Este análisis ha permitido detectar el comportamiento de los eventos durante las mismas y ampliar las funcionalidades de IoT-TEG: los eventos de prueba a generar siguen las reglas de comportamiento que el usuario defina.
Autores: Lorena Gutiérrez-Madroñal / Luigi La Blunda / Matthias F. Wagner / Inmaculada Medina-Bulo /
Palabras Clave: Detección de caídas - Eventos de prueba - IoT-TEG - Pruebas en sistemas IoT
La Industria 4.0 está cambiando todos los aspectos de la producción. Este cambio requiere la evolución de los sistemas con una gran rapidez. En este contexto, la validación y verificación de los proyectos software cobra especial importancia. Un defecto en el software podría tener consecuencias catastróficas, por lo que es fundamental que los sistemas funcionen correctamente en producción. En este trabajo se presenta una solución para aliviar el coste de proyectos industriales mediante la automatización de la fase de pruebas del software. Esto se enmarca dentro de una colaboración entre la Universidad de Cádiz y Navantia, una empresa española líder en construcción naval que desarrolla grandes proyectos de software.
Autores: Kevin J. Valle-Gómez / Pedro Delgado-Pérez / Inmaculada Medina-Bulo / José Magallanes Fernández /
Palabras Clave: automatización - Clang - Industria 4.0 - prueba del software
Computer networks are crucial for the operation of Information Technology (IT) infrastructures. For assuring and maintaining the functionality of networks and with this of IT systems in general, accurate and up-to-date information about networks and the incidents in them is of vital importance. To allow a proper, accurate, and timely assessment this information must be efficiently communicated to the relevant analysis applications that rely on it. In this paper we propose an approach on obtaining and efficiently communicating information gathered with means of low-level network analysis methods from spatially distributed and heterogeneous data sources. Thereby, we leverage existing technologies from the fields of network analysis, Event-driven Architecture (EDA), and Complex Event Processing (CEP) and combine these into a novel distributed network analysis system approach that can be integrated into todays, modern, distributed IT architectures.
Autores: Rüdiger Gad / Juan Boubeta-Puig / Martin Kappes / Inmaculada Medina-Bulo /
Palabras Clave: CEP - EDA - network analysis - network surveillance
Autores: Francisco Palomo-Lozano / Antonia Estero-Botaro / Inmaculada Medina-Bulo /
Palabras Clave:
En el contexto de la prueba de software, existen diversas técnicas que permiten probar las composiciones de servicios web. Una de ellas, que va adquiriendo importancia y visibilidad en este campo es la Prueba Metamórfica (PM).Dentro los aspectos que esta técnica requiere considerar, está la obtención y generación de Relaciones Metamórficas (RM), parte esencial y la más compleja de automatizar. En este trabajo se abordan las mejoras tanto en la arquitectura inicialmente propuesta (que representa un framework para probar composiciones de servicios web en el lenguaje WS-BPEL), como en los módulos que la componen. Es decir, se describen los avances en la herramienta de análisis (Analyzer4BPEL) y se presenta una nueva aplicación para generar RM candidatas, MRG4BPEL. Se muestra un caso de uso, donde, a partir de una composición, se obtienen y aplican RM utilizando estas herramientas, así como las conclusiones obtenidas.
Autores: M.Carmen De Castro-Cabrera / Kevin J. Valle-Gómez / Inmaculada Medina-Bulo / Pablo Tena-Sánchez /
Palabras Clave: casos de prueba siguientes - prueba metamórfica - relaciones metamórficas - WS-BPEL
Actualmente, el tráfico rodado y marítimo produce una alta contaminación medioambiental en los puertos marítimos, afectando a las ciudades en las que se integran. En particular, la polución es uno de los problemas más importantes a combatir dado que puede afectar seriamente a la salud y a la calidad de vida tanto del personal portuario y turistas, como de los ciudadanos que viven cerca de los puertos, pudiendo propiciar o empeorar determinadas enfermedades o incluso causar la muerte en determinados grupos de riesgo. Aunque los puertos inteligentes suelen monitorizar la calidad medioambiental, no acometen el envío automatizado de alertas contextuales según las situaciones de interés detectadas en tiempo real ni tampoco proporcionan un repositorio de componentes software sobre calidad del aire que pueda ser reutilizado por otros puertos marítimos que compartan las mismas necesidades. Este artículo presenta un proyecto I+D+i donde se propone una plataforma innovadora, reutilizable y adaptable que permita monitorizar y gestionar, de manera más eficiente y en tiempo real, la calidad de aire en distintos puertos marítimos, así como enviar automáticamente alertas contextuales con objeto de reducir todo lo posible el daño al medio ambiente, a las ciudades en las que se integran, así como a su contexto socioeconómico. Se trata, por tanto, de un proyecto con una contribución innovadora y sostenible hacia la transformación digital de los puertos, aunando los ámbitos de las Ciudades Inteligentes y de la Industria 4.0.
Autores: Juan Boubeta-Puig / Javier Criado / Guadalupe Ortiz / Nicolás Padilla / Alfonso García de Prado / Rosa Ayala / David Corral-Plaza / Antonio Corral / Inmaculada Medina-Bulo / Luis Iribarne /
Palabras Clave: arquitectura orientada a servicios y dirigida por eventos - calidad del aire - procesamiento de eventos complejos - Puerto inteligente - transformación digital - Web de las Cosas
Complex Event Processing (CEP) and Event-driven Architectures (EDA) are modern paradigms for processing data in form of events. Machine Learning (ML) methods offer additional sophisticated means for analyzing data. By combining these technologies it is possible to create even more comprehensive and powerful data analysis and processing systems. We analyze the feasibility of combining CEP and EDA with ML using the example of the application domain of computer networks. We present relevant aspects, a sample use case, an sample architecture, and results of performance benchmarks. Our results indicate that the combination of these technologies increases data processing capabilities and that it is feasible from a performance perspective as well.
Autores: Ruediger Gad / Martin Kappes / Inmaculada Medina-Bulo /
Palabras Clave: Complex Event Processing - Computer Networks - Event-driven Architecture - Machine Learning
La Prueba de Mutación Evolutiva (PME) es una técnica surgida recientemente para reducir el número de mutantes a generar en la prueba de mutaciones y, por consiguiente, su alto coste computacional. Esto se logra a través de un algoritmo genético, el cual trata de localizar la mayor cantidad posible de los mutantes con potencial para guiar a la mejora del conjunto de casos de prueba (denominados mutantes fuertes) en ese subconjunto de mutantes generado. La técnica ha sido evaluada precisamente respecto a esa capacidad de encontrar mutantes fuertes, pero tal análisis omite el hecho de que parte de esos mutantes fuertes puede no aportar a la mejora de las pruebas ya que son mutantes equivalentes. Por esa razón, en este artículo se propone una nueva metodología para la evaluación de la PME. Esta realiza una estimación del refinamiento conseguido del conjunto de pruebas a través de los mutantes seleccionados por el algoritmo genético. Esta metodología se emplea sobre cuatro programas en C++ que aplican orientación a objetos, mostrando que la PME es capaz de aumentar el conjunto de pruebas generando un porcentaje menor de mutantes que la selección aleatoria.
Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo /
Palabras Clave: Algoritmos genéticos - prueba de mutaciones - Prueba de software
La Prueba de Mutación Evolutiva (PME) busca la generación de un subconjunto de mutantes mediante un algoritmo genético con el objetivo de mejorar el conjunto de casos de prueba a un menor coste. A pesar de los resultados positivos obtenidos hasta el momento empleando esta técnica, otros avances paralelos en la prueba de mutaciones pueden aumentar la eficiencia de la PME. En este artículo se propone la incorporación en herramientas que aplican la PME de nuevas técnicas para ayudar a detectar mutantes que son equivalentes al programa original, exponiendo los beneficios de esta fusión.
Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo /
Palabras Clave: Algoritmos genéticos - prueba de mutaciones - Prueba de software
Uno de los grandes retos del Internet de las Cosas es la falta de un formato de datos común o una estructura homogénea que facilite el procesamiento y análisis de estos datos. Ser capaces de recibir información heterogénea de múltiples fuentes y, a continuación, poder procesarla para su análisis en tiempo real ofrece la posibilidad de reaccionar a situaciones críticas detectadas de forma inmediata. En este artículo se propone una arquitectura para inferir situaciones críticas en tiempo real que permita dar una respuesta adecuada lo más rápidamente posible.
Autores: David Corral-Plaza / Inmaculada Medina-Bulo / Guadalupe Ortiz / Juan Boubeta-Puig /
Palabras Clave: Análisis en Tiempo Real - Internet de las Cosas - procesamiento de eventos complejos
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
La prueba de mutaciones es una técnica basada en fallos en torno a la cual se han elaborado herramientas para un amplio abanico de lenguajes de programación. Sin embargo, el desarrollo de un marco de prueba de mutaciones no comercial para C++ estaba pendiente. En este artículo se presenta una herramienta que permite analizar código C++, generar mutantes y ejecutar un conjunto de casos de prueba para obtener resultados que nos permitan determinar su efectividad en la detección de errores en el código. La herramienta está diseñada para permitir la inclusión de nuevos operadores para cubrir cualquier característica del lenguaje. En este documento, el uso de la herramienta se muestra a través de un operador de mutación al nivel de clase.
Autores: Pedro Delgado-Pérez / Inmaculada Medina-Bulo / Juan José Domínguez-Jiménez /
Palabras Clave: C++ - prueba de mutaciones - Prueba de software
Toda herramienta de prueba de software requiere en algún momento de su proceso realizar un análisis, o bien como primer paso, para extraer la información necesaria para aplicar una determinada técnica, o bien, una vez procesado el software para estudiar los resultados y evaluarlos. Existen en la actualidad herramientas capaces de analizar la mayoría de los lenguajes de programación. Sin embargo, no abundan los analizadores de lenguajes para composiciones de servicios. En este trabajo se presenta una aplicación que realiza un análisis de composiciones en lenguaje WS-BPEL y de sus casos de prueba para extraer información útil para diversos objetivos. Así mismo, se describe su utilización particular, en una de las etapas de la aplicación de una técnica de prueba de software: la prueba metamórfica.
Autores: Kevin J. Valle-Gómez / M. Carmen de Castro-Cabrera / Inmaculada Medina-Bulo /
Palabras Clave: análisis - BPTS - casos de prueba - prueba del software - prueba metamórfica - relaciones metamórfircas - servicios web - WS-BPEL
La prueba de mutaciones está considerada como una técnicaefectiva, pero que es costosa en contrapartida. Varios estudios han pues-to de manifiesto que pueden existir mutantes redundantes y que, unavez eliminados, no suponen pérdida de la efectividad de la técnica. De lamisma manera, algunos mutantes pueden ser más efectivos que otros ala hora de guiarnos en la generación de nuevos casos de pruebas de altacalidad. En base a estos dos hallazgos, en este artículo presentamos unaevaluación de los operadores de mutación definidos para C++ en la queclasificamos dichos operadores en dos rankings diferentes tras estudiar losmutantes que cada uno de los operadores genera. La primera clasificaciónordena los operadores según el grado de redundancia de sus mutantes yla segunda en base a la calidad de las pruebas que ayudan a diseñar. Unavez establecidos ambos rankings, llevamos a cabo un proceso de mutaciónselectiva en el que seleccionamos subconjuntos de operadores desechandolos menos valorados. El objetivo es determinar qué relación existe entrela reducción que se obtendría al eliminar estos operadores y la pérdidade efectividad. Los resultados experimentales muestran de una maneraconsistente que al seleccionar los operadores que están en la parte altadel ranking podemos obtener una reducción significativa en el númerode mutantes con una mínima pérdida de efectividad. Esto se produce enambas clasificaciones a pesar de que los operadores se ordenan de for-ma distinta, lo cual valida el planteamiento de valorar los operadores demutación de una manera diferente según nuestro objetivo sea evaluar orefinar el conjunto de pruebas.P. Delgado-Pérez, S. Segura and I. Medina-Bulo, “Assessment of C++ object-oriented mutation operators: A selective mutation approach,” Software Testing,Verification and Reliability, vol. 27, num. 4–5, pp. e1630, 2017. http://dx.doi.org/10.1002/stvr.1630Factor de impacto revista: 1.588
Autores: Pedro Delgado-Pérez / Sergio Segura / Inmaculada Medina-Bulo /
Palabras Clave: C++ - calidad de operadores de mutación - mutación selectiva - operadores de mutación de clase - prueba de mutaciones
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
La calidad del aire es un factor que ha tomado gran relevancia en los últimos años y que puede afectar seriamente a la salud y a la calidad de vida de los ciudadanos. Actualmente los medios que nos permiten mantenernos informados sobre la calidad del aire en general se caracterizan por no proporcionar la información en tiempo real ni mecanismos de informacíon de fácil acceso para el ciudadano y, sobre todo, no se adaptan a las condiciones específicas de cada ciudadano particular. En este artículo proponemos la implementacíon de una arquitectura orientada a servicios que nos va a permitir detectar cambios en la calidad del aire en tiempo real y poner esta informacíon a disposicíon del usuario en su móvil, notificándole inmediatamente de alertas personalizadas cuando se detecte algún nivel potencialmente peligroso para su salud, procurando así la prevención de riesgos personales.
Autores: Juan Boubeta-Puig / Guadalupe Ortiz Bellot / Inmaculada Medina-Bulo /
Palabras Clave: arquitecturas orientadas a servicios - calidad del aire - procesamiento de eventos complejos
Dada la creciente complejidad de los sistemas software, disponer de métodos y técnicas eficientes para apoyar la realización de las diferentes actividades que se llevan a cabo en el ciclo de vida de un proyecto software ha despertado un gran interés. Así, el concepto de Ingeniería del Software basada en búsqueda (SBSE, search-based software engineering) ha permitido a ingenieros del software la aplicación de técnicas de optimización para automatizar tareas relativas a la gestión e implementación de un proyecto software. La comunidad científica en España no ha sido ajena a estos avances, contribuyendo desde la aparición de la disciplina en 2001. Este trabajo representa el primer estudio bibliométrico que resume y analiza el esfuerzo investigador realizado por la comunidad SBSE en España, así como su evolución en los últimos 18 años. Tras efectuar un riguroso proceso de búsqueda donde se han considerado más de 3700 artículos, se han identificado 232 publicaciones relevantes, donde participan hasta 145 autores de 19 instituciones diferentes. Entre los resultados más relevantes cabe destacar que casi la mitad de publicaciones se han llevado a cabo entre investigadores de distintas instituciones, la mayoría de ellas internacionales. No obstante, el nacimiento en 2015 del track sobre ingeniería del software guiada por búsqueda en las jornadas SISTEDES ha fomentado el contacto entre investigadores de instituciones españolas, mejorando el ratio de colaboraciones nacionales, así como la financiación dedicada a este campo en España.
Autores: Aurora Ramírez / Pedro Delgado-Pérez / Javier Ferrer / José Raúl Romero / Inmaculada Medina-Bulo / Francisco Chicano /
Palabras Clave: Análisis bibliométrico - Comunidad española - ingeniería del software basada en búsqueda
Internet of Things (IoT) has been paid increasingly attention by the government, academe and industry all over the world. One of the main drawbacks of the IoT systems is the amount of information they have to handle. This information arrives as events that need to be processed in real time in order to make correct decisions. Given that processing the data is crucial, testing the IoT systems that will manage that information is required. In order to test IoT systems, it is necessary to generate a huge number of events with specific structures and values to test the functionalities required by these systems. As this task is very hard and very prone to error if done by hand, this paper addresses the automated generation of appropriate events for testing. For this purpose, a general specification to define event types and its representation are proposed and an event generator is developed based on this definition. Thanks to the adaptability of the proposed specification, the event generator can generate events of an event type, or events which combine the relevant attributes of several event types. Results from experiments and real-world tests show that the developed system meets the demanded requirements.Journal of Systems and Software, JSS Special Issue on Software Reliability EngineeringImpact factor: 2,444 (Q1)Available online 20 June 2017DOI: https://doi.org/10.1016/j.jss.2017.06.037
Autores: Lorena Gutiérrez-Madroñal / Inmaculada Medina-Bulo / Juan José Domínguez-Jiménez /
Palabras Clave: Complex Event Processing - Event generator - Event type definition - Internet of Things - Testing
En la prueba de software basada en modelos es frecuente representar el modelo de la aplicación en forma de diagrama de estados para visualizarlo más claramente, permitiendo tener cobertura de caminos de manera visual. Por otro lado, cada camino del modelo está definido por una serie de condiciones que se pueden expresar en forma de restricciones (programación de restricciones), lo que permite obtener un conjunto de casos de prueba que cumplan esas restricciones para los caminos definidos. En este trabajo se propone combinar ambas técnicas (pruebas basadas en modelos y programación con restricciones) para obtener un conjunto de casos de prueba con cobertura de caminos. Para realizar esto, se proponen dos herramientas: GraphWalker (para la representación del modelo) y MiniZinc (para obtener la cobertura de caminos mediante programación con restricciones).
Autores: M.Carmen De Castro-Cabrera / Antonio Garcia-Dominguez / Inmaculada Medina-Bulo /
Palabras Clave: Cobertura de caminos - GraphWalker - MiniZinc - Programación con Restricciones - Pruebas basadas en modelos
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: