23
1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software con Dos Técnicas Metaheurísticas Enrique Alba y Francisco Chicano Introducción Generador Algoritmos de Optimización Experimentos Conclusiones y Trabajo Futuro

1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

1/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Testeo de Software con Dos Técnicas Metaheurísticas

Enrique Alba y Francisco Chicano

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 2: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

2/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Introducción• Tras la codificación, el software requiere una fase de prueba

• El objetivo es comprobar que el software cumple la especificación

• Las empresas software dedican aprox. el 50%

de recursos a dicha fase

En este trabajo proponemos una herramienta automática basada en Metaheurísticas

para generar los casos de prueba

1.0, 2.31.0, 2.3

10.5Ok!

2.7, 5.42.7, 5.4

15.0

Mal!

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 3: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

3/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Criterio de Adecuación•

Objetivo del generador de casos de prueba: proponer casos que

encuentren el máximo

número de errores en un software incorrecto

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 4: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

4/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Criterio de Adecuación•

Objetivo del generador de casos de prueba: proponer casos que

encuentren el máximo

número de errores en un software incorrecto

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

DIFÍCIL DE COMPROBAR

Page 5: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

5/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Criterio de Adecuación•

Objetivo del generador de casos de prueba: proponer casos que

encuentren el máximo

número de errores en un software incorrecto

• Ejemplos de criterios de adecuación

DIFÍCIL DE COMPROBAR

Cobertura de Instrucciones

Cobertura de Ramas

Cobertura de Condiciones

Ejecutar todas las instrucciones

Tomar todas las ramas del programa

Hacer verdaderas y falsastodas las condiciones atómicas

Más severo

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 6: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

6/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

• Tres paradigmas de generación de casos de prueba:

Generación Aleatoria

Generación Simbólica

Generación Dinámica

Paradigmas

Inputs: a,b

c = a+b

c < 0true false

1.2, 0.7

α, βα+β

< 0

α+β ≥ 0

1.0, -2.0

3.5, 1.2

-1.0, -0.5

1.0, -0.5

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 7: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

7/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

• Tres paradigmas de generación de casos de prueba:

Generación Aleatoria

Generación Simbólica

Generación Dinámica

Paradigmas

Inputs: a,b

c = a+b

c < 0true false

1.2, 0.7

α, βα+β

< 0

α+β ≥ 0

1.0, -2.0

3.5, 1.2

-1.0, -0.5

1.0, -0.5

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 8: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

8/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Descomposición del Objetivo• El objetivo global se descompone en pequeños objetivos parciales

c1 true c1 falsec2 true

c3 falsec3 truec2 false

Seis objetivos parciales

Cob

ertu

ra d

e C

ondi

cion

es

Problema de Minimización

Casos de Prueba

Dis

tanc

ia

Objetivo parcial (c3 true)

Caso de prueba actual

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 9: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

9/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Generador de Casos de Prueba

Programa

Selecciona un objetivo parcial

Algoritmo de Optimización

Fin

Continuar?sí

no

Generador de Casos de Prueba

Datos de entrada

Distancia

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 10: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

10/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Trayectoria Población

Metaheurísticas

Algoritmos de Optimización

Problema de Optimización

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 11: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

11/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Trayectoria Población

Metaheurísticas

Algoritmos Evolutivos

Búsqueda Dispersa

Optimización basada en Colonias de Hormigas

Optimización basada en Nubes de Partículas

Metaheurísticas

basadas en Población

Algoritmos de Optimización

Problema de Optimización

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 12: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

12/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Nubes de Partículas (PSO)• Optimización basada en Nubes de Partículas

Partícula

Actualización

Perturbación (cuando no mejoran los resultados)

(0.2, -1.4, 3.5)(1.0, 10.3, 7.2)

→ Vector Solución (posición)→ VelocidadIntroducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Inercia Mejor personal

Mejor en vecindario

v v’

Page 13: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

13/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Nube

Programa

(0.1, -5.2, 3.0, ...)

7.3

n

partículasIntroducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Nubes de Partículas (PSO)

Actualización

Perturbación(si no hay mejora)

Nube modificada

Page 14: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

14/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

μ

individuos

Solución Seleccionada

Nueva solución

Estrategia Evolutiva (ES)• Estrategia Evolutiva

Individuo

Mutación Gaussiana

Reemplazo → (μ+λ) y (μ,λ)

(0.2, -1.4, 3.5)(1.0, 10.3, 7.2)(1.7, 0.3, 2.1)

→ Vector Solución

→ Ángulos→ Desviaciones estándar

Población previa

Nuevos individuos

Nueva población

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 15: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

15/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

μ

individuosμ

individuos

Solución Seleccionada

Nueva solución

Estrategia Evolutiva (ES)• Estrategia Evolutiva

Individuo

Mutación Gaussiana

Reemplazo → (μ+λ) y (μ,λ)

(0.2, -1.4, 3.5)(1.0, 10.3, 7.2)(1.7, 0.3, 2.1)

→ Vector Solución

→ Ángulos→ Desviaciones estándar

Población previa

Nuevos individuos

Nueva población

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 16: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

16/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Estrategia Evolutiva (ES)Población

Mutación Gaussiana

Programa

(0.1, -5.2, 3.0, ...)

7.3

(μ+λ) Reemplazo Nueva población

μ

individuos

λ

individuos

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 17: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

17/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Medidas de Cobertura • Cobertura:

• Inconvenientes: pérdidas inevitables de cobertura

• Cobertura corregida:

while(1<2){

/* algo */}

Pérdida de cobertura dependiente del código

p = malloc(4);if (!p){

error();}

Pérdida de coberturadependiente del entorno

objetivos parciales cubiertos

número total de objetivos parcialesc =

objetivos parciales cubiertos

número total de objetivos parciales alcanzablescc

=

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 18: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

18/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Experimentos: Programas• Benchmark: 6 programas en C

Programa Conds. LdC Args. Fuentetriangle 21 53 3 Michael et al., 2001

calday 11 72 3 C-Recipes

select 28 200 21 C-Recipes

bessel 21 245 2 C-Recipes

sanetflow

3055

332112

2366

C-RecipesWegener

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 19: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

19/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Experimentos: Parámetros• Parámetros de los algoritmos

Parámetro ValorPartículas 10

w 0.729

c1 1.494

c2 1.494

Prob. de perturb.Parada

0.5Obj. o 1000 evals.

Realizamos 30 ejecuciones independientes

para conseguir confianza estadística en los resultados

Parámetro ValorPoblación 25

Selección Aleatoria

Mutación Gaussiana

Hijos (λ) 5

ReemplazoParada

(μ+λ)Obj. o 1000 evals.

PSO ES

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 20: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

20/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Experimentos: Resultados (I)

ProgramasPSO ES GA

Cov. Evals. Cov. Evals. Cov. Evals.

triangle 93.98 11295.77 99.84 2370.03 99.67 3209.47

calday 100.00 179.33 98.18 3166.47 90.91 75.03

select 88.89 380.13 83.33 13.27 83.33 83.20

bessel 97.56 116.90 97.56 350.63 97.56 533.03

sa 100.00 165.67 99.94 2337.30 96.72 176.63

netflow 97.77 4681.70 98.17 307.77 96.42 917.90

• PSO y ES tienen una eficacia similar

La cobertura obtenida por GA es igualada o superada

por PSO o ES en todos los casos

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 21: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

21/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Experimentos: Resultados (y II)

ProgramasPSO ES GA

Cov. Evals. Cov. Evals. Cov. Evals.

triangle 93.98 11295.77 99.84 2370.03 99.67 3209.47

calday 100.00 179.33 98.18 3166.47 90.91 75.03

select 88.89 380.13 83.33 13.27 83.33 83.20

bessel 97.56 116.90 97.56 350.63 97.56 533.03

sa 100.00 165.67 99.94 2337.30 96.72 176.63

netflow 97.77 4681.70 98.17 307.77 96.42 917.90

• Pérdida de cobertura dependiente del entorno en select

• Se encuentran casos de prueba que para los que netflow

no termina

Wegener: 40703 evals.

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 22: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

22/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Conclusiones y Trabajo Futuro

• Hemos aplicado PSO

y ES al problema de testeo de software

Hemos usado un conjunto de seis programas

con diversas características para evaluar nuestra propuesta

• Las técnicas PSO y ES tienen una eficacia similar

• Ambas técnicas superan a los algoritmos genéticos

Conclusiones

Trabajo Futuro•

Hibridar

las técnicas para mejorar el balance entre explotación y

exploración

• Extender la propuesta para programas con entradas no numéricas

Paralelizar

las técnicas siguiendo esquemas de población distribuida

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro

Page 23: 1/23 Testeo de Software con Dos Técnicas …...1/23 Sitges, Barcelona, España, 3-6 de Octubre de 2006 Jornadas de Ingeniería del Software y Bases de Datos 2006 Testeo de Software

23/23

Sitges, Barcelona, España, 3-6 de Octubre de 2006

Jornadas de Ingeniería del Software y Bases de Datos 2006

Gracias por su Atención !!!

FIN

Introducción

Generador

Algoritmos de Optimización

Experimentos

Conclusiones y Trabajo Futuro