Optimización de
pruebas de mutación
con el uso de
algoritmos genéticos
UNIVERSIDAD DE GUADALAJARA
Roberto Carlos Reynoso Rodríguez
1
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
2
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
3
Justificación
• ¿Para qué?
• Reducción de costos
• Asegurar la calidad del software
• ¿Cómo?
• Utilizando Algoritmos Genéticos para generar mejores casos de
prueba
4
Pruebas de mutación
• ¿Qué es?
• Técnica de validación basada en fallas
• ¿Para que sirve?
• Ayuda a verificar que tan bueno es tu conjunto de pruebas
5
Pruebas de mutación
• ¿Cómo funciona?
1. Validación del software con un conjunto de pruebas
2. Generar copias del software original pero con pequeñas
mutaciones
3. Validar cada una de las mutaciones con el mismo conjunto de
pruebas que se uso anteriormente
6
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
7
Pruebas de mutación
Mutaciones
Fun(a,b)
{
a-b = c
}
Programa
Original
Fun(a,b)
{
a+b = c
}
Fun(a,b)
{
a*b = c
}
Fun(a,b)
{
a/b = c
}
Mutación Equivalente
Fun(2,2)
8
Algoritmos genéticos
• ¿Qué es?
• Algoritmos basados en la teoría de la evolución
• ¿Para que sirven?
• Solución de problemas complejos
• Optimización
9
Algoritmos genéticos
• ¿Cómo funcionan?
1. Se selecciona una población que alimentará al algoritmo
2. Se evalúa el fitness de cada individuo de la población
3. Se aplica Selección, Recombinación y Mutación
4. Se seleccionan los mejores individuos para incluirlos en
la nueva población
10
Objetivo
• Desarrollar e implementar un algoritmo genético que ayude
en la optimización de pruebas de mutación.
• Optimizar
• Mutaciones
• Pruebas
11
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
12
Cuadro de análisis de
congruencia
TÍTULO
Optimización de
pruebas de
mutación con el
uso de algoritmos
genéticos.
OBJETIVO
Desarrollar e
Implementar un
algoritmo
genético que
ayude en la
optimización de
pruebas de
mutación.
PREGUNTA
¿Con la utilización
de un algoritmo
genético se
pueden obtener
pruebas y
mutaciones
óptimas para
reducir tiempo y
costos en
validación?
HIPÓTESIS
VARIABLES
El uso de
Mutation Score
algoritmos
genéticos ayuda a
optimizar las
pruebas de
mutación
13
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.
14
Gracias
15
Descargar

Diapositiva 1