1 of 17
•Haga clic para modificar el estilo de subtítulo del patrón
Ajhsia
MAEB 2013
Generación de Secuencias de Pruebas
F...
2 of 17MAEB 2013 2/25
Contenidos
3
Introducción
Problema de la Secuencia de Pruebas
Algoritmos de Resolución
Experimentos
...
3 of 17MAEB 2013 3/25
•Necesidad de la fase de pruebas
•Alrededor del 50% del presupuesto total
•Automatización de la fase...
4 of 17MAEB 2013 4/25
•Combinatorial Interaction Testing es …
•Un técnica para pruebas funcionales (black box)
•Efectiva p...
5 of 17MAEB 2013 5/25
•Pruebas tradicionales: Casos de prueba independientes
•Secuencias de Pruebas: Estado del SUT (Softw...
6 of 17MAEB 2013 6/25
•Classification Tree Method: identificar casos de prueba para
pruebas funcionales. Diseño del árbol ...
7 of 17MAEB 2013 7/25
•Cobertura de Clases: Todas las clases deben estar
presentes en la secuencia
Problema Secuencia de P...
8 of 17MAEB 2013 8/25
•Cobertura de Clases: Todas las clases deben estar
presentes en la secuencia
•Cobertura de Transicio...
9 of 17MAEB 2013 9/25
Algoritmos de Resolución
• Generación automática de test suites
• Herramienta Real: CTE XL Proffessi...
10 of 17MAEB 2013 10/25
•Individuo: Representa la transición seleccionada
•Evaluación:
•Parte del estado inicial (starting...
11 of 17MAEB 2013 11/25
•Recombinación: No se ejecuta
•Mutación: Probabilidad de mutación adaptativa (m1-m2)
Generador Gen...
12 of 17MAEB 2013 12/25
•Modificaciones:
•Nos interesa el camino completo
•No tenemos nodos finales, todos son objetivos
•...
13 of 17MAEB 2013 13/25
Experimentos: Benchmark
Programa Clases Transiciones Minima Completa
Keyboard 5 8 2 4
Microwave 19...
14 of 17MAEB 2013 14/25
Experimentos: Resultados Cobertura Clases
Programa GA ACO Voraz
Keyboard 2 2 2
Microwave 8* 8* 9
A...
15 of 17MAEB 2013 15/25
Experimentos: Cobertura Clases Vs Tamaño
16 of 17MAEB 2013 16/25
Experimentos: Resultados Cobertura Transiciones
Programa GA ACO Voraz
Keyboard 5 5 5
Microwave 17 ...
17 of 17MAEB 2013 17/25
Experimentos: Cobertura Transiciones Vs Tamaño
18 of 17MAEB 2013 18/25
Conclusiones y Trabajo Futuro
Introducción
Sistemas de Alta Variabilidad
Generador de Escenarios d...
19 of 17MAEB 2013 19/25
Gracias por su atención
Javier Ferrer: ferrer@lcc.uma.es
http://neo.lcc.uma.es/
Generación de Secu...
Próxima SlideShare
Cargando en…5
×

Generación de secuencias de pruebas funcionales con algorithmos bio-inspirados

37 visualizaciones

Publicado el

Presentación MAEB 2015

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
37
En SlideShare
0
De insertados
0
Número de insertados
0
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.
  • Frequently, software testers are faced with situations in which there is not enough time for testing, since the software under test must be finished on time for the release date not to be delayed. Hence, software testers have to deal with limited resources, unfinished systems, and not much time to test the software. If this is the case, the prioritization of test cases is a technique for re-ordering of tests to find faults in early stages.
  • El enfoque CIT intent encontrar el conjunto minimo de pruebas que consiga la cobertura deseada
  • Combinatorial Interaction Testing (CIT) is a
    black box sampling technique to complement traditional testing methods.
    CIT provides a practical way to detect failures caused by parameter interactions with a good trade-off between cost and efficiency.
    This technique provides a natural mechanism for testing systems to be deployed on a variety of hardware and software configurations.
  • De hecho, en sistemas software grandes, el coste derivado de situar al programa en cierto estado puede ser importante. Por ejemplo, probar el sistema ABS de un vehículo requiere
    que este alcance cierta velocidad. En este caso, tiene sentido considerar la generación de secuencias de pruebas que nos permitan probar una funcionalidad (aceleración del vehículo) mientras que modificamos el estado del SUT (considerando las dependencias entre casos de prueba). El ahorro implícito de usar esta técnica es la razón por la cual la generación de secuencias es relevante y merece mas esfuerzo de investigaciónon
  • Se usa para la identificación de casos de prueba. En esta técnica ayudados por un expert en el dominio, debemos definer el árbol y a continuación ya podríamos generar los casos de prueba.
    Para diseñar el árbol se tienen en cuenta los aspectos de interés o clasificaciones (representadas en rectángulos) y estas a su vez se subdividen en clases, o valores de las clasificaciones (son las que no están contenidas en un rectángulo). Nótese que las clases se pueden seguir refinando en nuevas clasificaciones.
    Un caso de prueba se define como una combinación de clases de diferentes clasificaciones, teniendo en cuenta que no se pueden seleccionar dos clases “hermanas”.
    En este ejemplo un caso de prueba sería seleccionar “startup y running”
  • Dada una secuencia de pruebas denimos la cobertura de clases como el numero de clases no repetidas que aparecen en los casos de prueba de una secuencia dividida por el total de clases del modelo ECTM
  • Explicar cómo funcionan las transiciones y las clases iniciales.
    Definimos la cobertura de transiciones como el numerous de transiciones no repetidas efectuadas frente al numero total de transiciones posibles en el ECTM. El problema que estamos interesados en solucionar consiste en encontrar un conjunto de secuencias tales que la cobertura (clases o transiciones) sea maximizada y la longitud de la secuencia sea minimizada.
  • Al llegar aki: 7‘, 5‘15, 5

    We have used the Classification Tree Method that is a technique for black box testing.
    Its main advantage is that this techinique is independent of test domain, test level or test object.
    Aplying the classificatin tree method implies two stages; the first one is the design of the classification tree. The tree represents the test object. This task must be done by the tester guided by the specification of the system.
    The second stage is the costly generation of tests, nevertheless this generation could be automated for reducing costs. In this work we focus on this second stage.
    In addition, in order to make the work useful, we have worked with the restrictions and constraints impose by a professional tool called CTE XL. All the algorithms introduced in this work can be integrated in this particular tool, and some of them are already integrated.
  • Explicar cómo funcionan las transiciones y las clases iniciales.
    Definimos la cobertura de transiciones como el numerous de transiciones no repetidas efectuadas frente al numero total de transiciones posibles en el ECTM. El problema que estamos interesados en solucionar consiste en encontrar un conjunto de secuencias tales que la cobertura (clases o transiciones) sea maximizada y la longitud de la secuencia sea minimizada.
  • Explicar cómo funcionan las transiciones y las clases iniciales.
    Definimos la cobertura de transiciones como el numerous de transiciones no repetidas efectuadas frente al numero total de transiciones posibles en el ECTM. El problema que estamos interesados en solucionar consiste en encontrar un conjunto de secuencias tales que la cobertura (clases o transiciones) sea maximizada y la longitud de la secuencia sea minimizada.
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Explicar como va la función heurística:
    - Se añade a la cola la clase o transición candidata.
    Si no se ha cubierto, se suma cierto valor arbitrario.
    Se añaden las clases o transiciones hijas y se decrementa el peso, ya que estas están un paso más lejos.
    Se procede de esta forma hasta que se hayan evaluado todas las posibles transiciones, a partir de esa candidata.
    Esta heurística tiene un mecanismo para no caer en un bucle, ya que recuerda las clases o transiciones ya valoradas.

    Decir que esos valores se obtienen si ninguna clase se ha cubierto ya, sino serían valores diferentes
  • Hemos aportado…
    Los benecios de generar secuencias son claros, ahorramos costes y tiempo al ejecutar las pruebas de forma secuencial, ya que el caso de prueba previo situa al SUT en el estado adecuado para probar la siguiente funcionalidad

    Nos ha permitido concluir que…
    No existe un programa que funcione bien para condiciones de tráfico diferentes (3 de 10 escenarios como máximo)
    La ponderación de los escenarios es fundamental (probabilidad de ocurrencia)
  • Generación de secuencias de pruebas funcionales con algorithmos bio-inspirados

    1. 1. 1 of 17 •Haga clic para modificar el estilo de subtítulo del patrón Ajhsia MAEB 2013 Generación de Secuencias de Pruebas Funcionales con Algoritmos Bio-inspirados Javier Ferrer Peter M. Kruse Enrique Alba Francisco Chicano ferrer@lcc.uma.es peter.kruse@berner-matter.com eat@lcc.uma.es chicano@lcc.uma.es
    2. 2. 2 of 17MAEB 2013 2/25 Contenidos 3 Introducción Problema de la Secuencia de Pruebas Algoritmos de Resolución Experimentos Conclusiones 1 2 5 Introducción Sistemas de Alta Variabilidad Generador de Escenarios de Test Validación Experimental Conclusiones 4
    3. 3. 3 of 17MAEB 2013 3/25 •Necesidad de la fase de pruebas •Alrededor del 50% del presupuesto total •Automatización de la fase de pruebas •Generación datos + salida (oráculo) •No hay recursos para pruebas exhaustivas -> Tamaño Introducción 1,0; 2,3 1,0; 2,3 10,5¡Good! 2,7; 5,4 ¡Error! 2,7; 5,4 15,1
    4. 4. 4 of 17MAEB 2013 4/25 •Combinatorial Interaction Testing es … •Un técnica para pruebas funcionales (black box) •Efectiva para detectar fallos causado por interacciones de parámetros. •Se identifican los aspectos más relevantes (parámetros) y se definen sus correspondientes clases (valores de los parámetros) •Un caso de prueba es un conjunto de n valores, uno por cada parámetro Introducción: Combinatorial Interaction Testing
    5. 5. 5 of 17MAEB 2013 5/25 •Pruebas tradicionales: Casos de prueba independientes •Secuencias de Pruebas: Estado del SUT (Software Under Test) •Objetivo: Probar los todos los estados y transiciones Introducción: Secuencias de Pruebas Aceleración (40 Km/h) Girar y Acelerar (100 Km/h) Frenar (ABS) Fallo!
    6. 6. 6 of 17MAEB 2013 6/25 •Classification Tree Method: identificar casos de prueba para pruebas funcionales. Diseño del árbol + casos de prueba •Extensión CTM: Añadir transiciones entre clases •Secuencia de pruebas: lista ordenada de casos de prueba con el objetivo de probar toda la funcionalidad. Problema Secuencia de Pruebas: CTM
    7. 7. 7 of 17MAEB 2013 7/25 •Cobertura de Clases: Todas las clases deben estar presentes en la secuencia Problema Secuencia de Pruebas: Cobertura
    8. 8. 8 of 17MAEB 2013 8/25 •Cobertura de Clases: Todas las clases deben estar presentes en la secuencia •Cobertura de Transiciones: Todas las transiciones posibles deben ser tomadas Problema Secuencia de Pruebas: Cobertura
    9. 9. 9 of 17MAEB 2013 9/25 Algoritmos de Resolución • Generación automática de test suites • Herramienta Real: CTE XL Proffessional
    10. 10. 10 of 17MAEB 2013 10/25 •Individuo: Representa la transición seleccionada •Evaluación: •Parte del estado inicial (startingGame, running) •Consume transiciones del vector Generador Genético de Secuencias de Pruebas 1 1 1 2 2 5 2 1 3 1
    11. 11. 11 of 17MAEB 2013 11/25 •Recombinación: No se ejecuta •Mutación: Probabilidad de mutación adaptativa (m1-m2) Generador Genético de Secuencias de Pruebas 1 1 1 2 2 5 2 1 3 1 m1=0,05 m2=0,25 1 2 3 4 5 6 7 4 9 7 5 6 4 5 5 5 4 4 5 2 1 1 1 2 2 3 5 6 4 5 5 5 6 4 5 4 5 5 5 4 4 5 2 5 6 4 5 5 5 6 4 5 5 5 6 4 5 5 5 1 2 5 4 4 5 2 1 1 3 4 5 6 7 2 9 7 5 6 4 5 5 4 4 5 2 1
    12. 12. 12 of 17MAEB 2013 12/25 •Modificaciones: •Nos interesa el camino completo •No tenemos nodos finales, todos son objetivos •Heurística: •Selecciona una candidata del conjunto de las disponibles •Guía la búsqueda hacia regiones inexploradas Generador de Secuencias con ACO Valor: 90 Valor: 120
    13. 13. 13 of 17MAEB 2013 13/25 Experimentos: Benchmark Programa Clases Transiciones Minima Completa Keyboard 5 8 2 4 Microwave 19 23 7 56 Autoradio 20 35 11 66 Citizen 62 74 31 3121 Coffee Machine 21 28 9 81 Communication 10 12 7 7 Elevator 13 18 5 80 Tetris 11 18 10 10 Mealy Moore 5 11 5 5 Fuel Control 5 27 5 600 Transmission 7 12 4 12 Aircraft 24 20 5 625
    14. 14. 14 of 17MAEB 2013 14/25 Experimentos: Resultados Cobertura Clases Programa GA ACO Voraz Keyboard 2 2 2 Microwave 8* 8* 9 Autoradio 13,30* 14 13* Citizen 39,47* 36** 47 Coffee Machine 9 9 9 Communication 7 7 7 Elevator 6 6 6 Tetris 12* 12* 15 Mealy Moore 5 5 5 Fuel Control 5 5 5 Transmission 4 4 4 Aircraft 4 (86,20%) 4 (86,20%) 4 (86,20%) *Diferencia significativa con el peor resultado **Diferencia significativa con los otros dos resultados
    15. 15. 15 of 17MAEB 2013 15/25 Experimentos: Cobertura Clases Vs Tamaño
    16. 16. 16 of 17MAEB 2013 16/25 Experimentos: Resultados Cobertura Transiciones Programa GA ACO Voraz Keyboard 5 5 5 Microwave 17 17 17 Autoradio 36,30 36 36 Citizen 75,27 (99,90%) 64,17 51(92,70%) Coffee Machine 19 19 18** Communication 16* 16* 17 Elevator 9 9 9 Tetris 31 31 31 Mealy Moore 24 24 24 Fuel Control 11* 11* 12 Transmission 9 9 9 Aircraft 7 (2) 7 (2) 7 (2) *Diferencia significativa con el peor resultado **Diferencia significativa con los otros dos resultados
    17. 17. 17 of 17MAEB 2013 17/25 Experimentos: Cobertura Transiciones Vs Tamaño
    18. 18. 18 of 17MAEB 2013 18/25 Conclusiones y Trabajo Futuro Introducción Sistemas de Alta Variabilidad Generador de Escenarios de Test Validación Experimental Conclusiones Contribuciones:  Extendemos el CTM para posibilitar la generación de secuencias  Experimentamos con 12 modelos de programas y 3 algoritmos con cobertura de clases y transiciones. Resultados: Las técnicas bio-inspiradas son significativamente mejores, especialmente en el programa más complejo. El ACO es el mejor algoritmo de la comparación Trabajo Futuro: Criterios de cobertura t-wise t≥2 para secuencias. Aplicar prioridades a las clases del modelo. Explorar algoritmos de trayectoria como Simulated Annealing.
    19. 19. 19 of 17MAEB 2013 19/25 Gracias por su atención Javier Ferrer: ferrer@lcc.uma.es http://neo.lcc.uma.es/ Generación de Secuencias de Pruebas Funcionales con Algoritmos Bio-inspirados FINAL

    ×