Optimización de pruebas de mutación con el uso de algoritmos genéticos UNIVERSIDAD DE GUADALAJARA Roberto Carlos Reynoso Rodríguez
Validación de software ¿Qué es? La validación de software consiste en el desarrollo de pruebas para encontrar problemas antes de que un producto de software salga al mercado ¿Por qué nos interesa? Existen muchos casos de productos que no fueron correctamente validados y cuestan millones de dólares a las empresas
Problema El desarrollo de buenas pruebas es costo Los usuarios exigen cada vez software de mejor calidad Los ciclos de desarrollo de software son cada vez son menores
Justificación ¿Para qué? ¿Cómo? Reducción de costos Asegurar la calidad del software ¿Cómo? Utilizando Algoritmos Genéticos para generar mejores casos de prueba
Pruebas de mutación ¿Qué es? ¿Para que sirve? Técnica de validación basada en fallas ¿Para que sirve? Ayuda a verificar que tan bueno es tu conjunto de pruebas
Pruebas de mutación ¿Cómo funciona? Validación del software con un conjunto de pruebas Generar copias del software original pero con pequeñas mutaciones Validar cada una de las mutaciones con el mismo conjunto de pruebas que se uso anteriormente
Pruebas de mutación 4. Comparar los resultados del software original y las mutaciones Resultados diferentes -> mutación eliminada Resultados iguales -> mutación viva/mutación equivalente Mutation Score = Mutantes muertos Total de mutantes – Equivalentes x 100
Pruebas de mutación Mutación Equivalente Fun(2,2) Mutaciones a-b = c Programa Original Mutaciones Fun(a,b) { a+b = c } a-b = c a*b = c a/b = c Mutación Equivalente Fun(2,2)
Algoritmos genéticos ¿Qué es? ¿Para que sirven? Algoritmos basados en la teoría de la evolución ¿Para que sirven? Solución de problemas complejos Optimización
Algoritmos genéticos ¿Cómo funcionan? Se selecciona una población que alimentará al algoritmo Se evalúa el fitness de cada individuo de la población Se aplica Selección, Recombinación y Mutación Se seleccionan los mejores individuos para incluirlos en la nueva población
Objetivo Desarrollar e implementar un algoritmo genético que ayude en la optimización de pruebas de mutación. Optimizar Mutaciones Pruebas
Cronograma TAREAS JUNIO JULIO AGOSTO SEPTIEMBRE OCTUBRE NOVIEMBRE Aprobación del tema de Tesis Investigación de modelos implementados Diseño del algoritmo Implementación del algoritmo Analizar datos y conclusiones
Cuadro de análisis de congruencia TÍTULO OBJETIVO PREGUNTA HIPÓTESIS VARIABLES Optimización de pruebas de mutación con el uso de algoritmos genéticos. Desarrollar e Implementar un algoritmo genético que ayude en la optimización de pruebas de mutación. ¿Con la utilización de un algoritmo genético se pueden obtener pruebas y mutaciones óptimas para reducir tiempo y costos en validación? El uso de algoritmos genéticos ayuda a optimizar las pruebas de mutación Mutation Score
Referencias Gao, Jerry Tsai, H.S. Wu, Ye. Testing and Quality Assurance for Component-Based Software. Norwood : Artech, House, 2003. D.E., Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. s.l. : Addison - Wesley, 1989.
Gracias