testingar meetup 4to encuentro - automatic software repair - rodrigo martin

35
Pregunta para la audiencia1 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Upload: testingar-meetup

Post on 14-Apr-2017

119 views

Category:

Technology


2 download

TRANSCRIPT

Pregunta para la audiencia…

1 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Qué es Automatic Software Repair?

TestingAR Meetup – 4ta edición – 5 de Julio de 2016 3

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ó”

Especificación

5 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Oráculos

6 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Método de reparación automática

TestingAR Meetup – 4ta edición – 5 de Julio de 2016 9

Algoritmo principal de reparación

10 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Mientras HAYA un bug {

Probar otra reparación

}

Operadores de reparación

11 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Reparación en tiempo real

13 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Oráculo de Bug

14 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

•  Un crash (En el 95% de los casos)

Mario, bajá!

15 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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.

Rejuvenation

17 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Aplicación ejemplo

22 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Reparación automática de tests de UI

23 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Clase de bug a reparar

25 Copyright Protected · Marketing Material · www.avature.net

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

Snapshot inicial

28 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Buscando candidatos

29 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Algoritmo de reparación

30 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Commit resultado

31 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

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

Conclusión

33 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Preguntas

34 TestingAR Meetup – 4ta edición – 5 de Julio de 2016

Thank You!

35 TestingAR Meetup – 4ta edición – 5 de Julio de 2016