testingar meetup 4to encuentro - automatic software repair - rodrigo martin
TRANSCRIPT
Takeaways
2 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Conceptos Clave
• Reparación en tiempo real
• Generación automática de parches
• Aplicación en mantenimiento de tests de UI
Definición de Bug
4 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
“Un bug es la desviación entre el comportamiento esperado de un programa en ejecución, y lo que realmente ocurrió”
Tipos de Oráculos
7 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Oráculo de Bugs
• Oráculo de Regresión
Clases de Bugs
• Buffer Overflow
• Memory Leaks
• Infinite Loops
• Etc.
TestingAR Meetup – 4ta edición – 5 de Julio de 2016 8
Algoritmo principal de reparación
10 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
Mientras HAYA un bug {
Probar otra reparación
}
Takeaways
12 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Conceptos Clave
• Reparación en tiempo real
• Generación automática de parches
• Aplicación en mantenimiento de tests de UI
Oráculo de Bug
14 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Un crash (En el 95% de los casos)
Operadores de reparación de estado
16 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Alternativas
• Reconfiguración
• Cambiar el input
• Forward Recovery
• Etc.
Takeaways
18 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Conceptos Clave
• Reparación en tiempo real
• Generación automática de parches
• Aplicación en mantenimiento de tests de UI
Generación automática de Parches
19 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Oráculo de Bug: Test Case (95% de los casos)
• Oráculo de Regresión: Test Suite (95% de los casos)
Operadores de reparación “Behavioral”
20 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Añadir / quitar / reemplazar código
• Añadir una precondición
• Reemplazar una condición
• Añadir un chequeo
Takeaways
21 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Conceptos Clave
• Reparación en tiempo real
• Generación automática de parches
• Aplicación en mantenimiento de tests de UI
Método para reparación automática
24 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Elegir una clase de Bug
• Encontrar un oráculo de Bug
• Configurar acciones de reparación
• Correr el algoritmo
Método para reparación automática
26 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Elegir una clase de Bug
• Encontrar un oráculo de Bug
• Configurar acciones de reparación
• Correr el algoritmo
Método para reparación automática
27 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Elegir una clase de Bug
• Encontrar un oráculo de Bug
• Configurar acciones de reparación
• Correr el algoritmo
Takeaways
32 TestingAR Meetup – 4ta edición – 5 de Julio de 2016
• Conceptos Clave
• Reparación en tiempo real
• Generación automática de parches
• Aplicación en mantenimiento de tests de UI