Pruebas de interacción combinatoria para el aseguramiento...

103
Pruebas de interacción combinatoria para el aseguramiento de la calidad del hardware y software Dr. Eduardo A. RODRÍGUEZ TELLO 7 de noviembre de 2019 Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 1 / 88

Transcript of Pruebas de interacción combinatoria para el aseguramiento...

Page 1: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de interacción combinatoria para elaseguramiento de la calidad del hardware y

software

Dr. Eduardo A. RODRÍGUEZ TELLO

7 de noviembre de 2019

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 1 / 88

Page 2: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 2 / 88

Page 3: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 3 / 88

Page 4: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

En un proyecto de desarrollo de hardware/software los errores(bugs en inglés) puede presentarse en cualquiera de sus etapas

Aún cuando se intente detectarlos después de cada faseutilizando técnicas como la inspección, algunos errorespermanecen sin ser descubiertos

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 4 / 88

Page 5: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Por lo tanto es muy probable que el producto final contengaerrores de requerimientos y diseño, adicionales a los introducidosen la etapa de implementación

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 5 / 88

Page 6: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Las pruebas de hardware/software son una parte importante peromuy costosa del proceso de desarrollo de nuevos productos

Pueden llegar a representar entre el 30 y 50 % del costo total deldesarrollo [Myers, 2004]

Sin embargo, los costos de las fallas de un producto dehardware/software en operación pueden llegar a ser muchomayores (catastróficos)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 6 / 88

Page 7: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

IntroducciónAlgunos de los peores errores de la historia

Falla de un misil antibalístico Patriot durante la primera guerra delGolfo Pérsico (1991)

Errores en el hardware/software de cálculo de trayectorias yactivación del misil causaban fallas en algunas ocasiones

28 soldados muertos en una base Arabia Saudita (Dhahran) acausa de un ataque con misiles Scud

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 7 / 88

Page 8: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

IntroducciónAlgunos de los peores errores de la historia

Desintegración de una sonda climática enviada a Marte por laNASSA (1999)

Errores en el software de navegación causan que se estrelle en laatmósfera marciana (incorrecto uso de unidades métricas)

Después de 9 meses de viaje y un gasto de 125 millones dedolares el proyecto fracasó

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 8 / 88

Page 9: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

IntroducciónAlgunos de los peores errores de la historia

Sobredosis radiológica en el Instituto Nacional del Cáncer dePanama (2000)

Errores en los procedimientos y un fallo de software causan quese apliquen dosis erróneas de radiación

8 personas murieron y 20 tuvieron problemas de salud graves.Los médicos responsables del hecho fueron acusados deasesinato

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 9 / 88

Page 10: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Como pueden observar las pruebas de hardware/software tienenun rol muy importante en el aseguramiento de la calidad ya quepermiten detectar los errores introducidos en las fases previas delproyecto

Durante esta platica analizaremos algunas de las estrategias ytécnicas más importantes para efectuar estas pruebas, haciendoespecial énfasis en las pruebas de interacción combinatoria

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 10 / 88

Page 11: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 11 / 88

Page 12: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Error, se refiere a la diferencia entre la salida actual de unhardware/software y la correcta.

(1 + sen(90))2 =

5

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 12 / 88

Page 13: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Error, se refiere a la diferencia entre la salida actual de unhardware/software y la correcta.

(1 + sen(90))2 = 5

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 12 / 88

Page 14: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Defecto, es una condición que causa que un hardware/softwarefalle al realizar una función requerida (sinónimo de bug)

Función PromedioRecibe como entrada un vector A de tamaño nsuma← 0for (i← 0; i < n; i++) do

suma← suma + A[i]end forreturn (suma / 10)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 13 / 88

Page 15: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Falla, es la incapacidad de un hardware/software para realizaruna función requerida de acuerdo con sus especificaciones (sonproducidas por defectos)

Función PromedioEntrada vector A = {10, 8, 9, 10, 9} de tamaño n = 5suma← 0for (i← 0; i < n; i++) do

suma← suma + A[i]end forreturn (suma / 10)

Regresa como resultado 4.6 en vez de 9.2

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 14 / 88

Page 16: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Caso de prueba, está dado por un conjunto de entradas,condiciones de ejecución y las salidas esperadas. Permite revelarfallas

Función PromedioRecibe como entrada un vector A de tamaño nsuma← 0for (i← 0; i < n; i++) do

suma← suma + A[i]end forreturn (suma/n)

Caso de prueba 1:Entrada: A = {10, 10, 10, 10, 10, 10}, n = 6Salida: 10.0

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 15 / 88

Page 17: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosProceso de pruebas

La forma más común de organizar las actividades relacionadas alproceso de pruebas de software [Burnstein, 2003] son:

Planeación, fija las metas y una estrategia general de pruebas

Preparación, se describe el procedimiento general de pruebas y segeneran los casos de prueba específicos

Ejecución, incluye la observación y medición del comportamientodel producto

Análisis, incluye verificación y análisis de resultados paradeterminar si se observaron fallas

Seguimiento, si se detectaron fallas, se inicia un monitoreo paraasegurar que se remueva el origen de éstas

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 16 / 88

Page 18: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosCasos de prueba y criterios de prueba

Generar casos de prueba efectivos que revelen la presencia defallas es fundamental para el éxito del proceso de pruebas (etapade preparación)

Idealmente, se debería determinar un conjunto de casos deprueba tales que su ejecución exitosa implique que no hay erroresen el producto desarrollado

Comúnmente este objetivo ideal no se puede lograr debido a laslimitaciones prácticas y teóricas

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 17 / 88

Page 19: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosCasos de prueba y criterios de prueba...

Cada caso de prueba cuesta dinero: esfuerzo para generarlo,tiempo de cómputo para ejecutarlo, esfuerzo para evaluar losresultados

Por lo tanto, el número de casos de prueba necesarios paradetectar los errores debe ser minimizado para reducir costos

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 18 / 88

Page 20: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosObjetivos del proceso de pruebas

Los dos objetivos principales del proceso de pruebas:Maximizar el número de errores detectados (cobertura)Reducir al mínimo el número de casos de prueba (costo)

Como con frecuencia son contradictorios, el problema deseleccionar el conjunto de casos de prueba con el que unprograma debe ser probado se vuelve una tarea muy compleja

Costomejor peor

Cobertura

mejor

peor

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 19 / 88

Page 21: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 20 / 88

Page 22: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Niveles de pruebas

Generalmente se comienza probando las partes más pequeñas yse continua con las más grandes

Para el software convencionalEl módulo (componente) se prueba primeroSe continua con la integración de módulos

Para el software orientado a objetosSe prueba primero una clase (atributos, métodos, colaboración)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 21 / 88

Page 23: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Niveles de pruebas

Codigo

Diseno

Requisitos

Direccion de

la prueba

Prueba deintegracion

Pruebas de altonivel

Pruebaunitaria

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 22 / 88

Page 24: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

Se concentran en probar cada componente individualmente paraasegurar que funcione de manera apropiada como unidad

Emplean técnicas de prueba que recorren caminos específicos enla estructura de control de los componentes (pruebasestructurales)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 23 / 88

Page 25: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 24 / 88

Page 26: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 25 / 88

Page 27: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitariasAmbiente

Para probar cada módulo se requiere de un módulo controlador yde uno o más módulos simulados (stubs)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 26 / 88

Page 28: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

HerramientasJUnit

TestNG (versión mejorada de JUnit)

PHPUnit

CPPUnit

NUnit (.Net)

MOQ (creación dinámica de objetos simuladores, mocks)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 27 / 88

Page 29: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Breve introducción a JUnit 4

Una herramienta libre para escribir pruebas unitarias en Java

www.junit.org

Soporta la ejecución de pruebas en modo batch o mediante GUI

Los casos de prueba pueden agruparse (test suites)

Todos las pruebas son del tipo pasa/falla

Los mensajes de error y la pila de ejecución indican donde pudooriginarse el error

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 28 / 88

Page 30: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Breve introducción a JUnit 4

Para probar una clase se escribe una clase de prueba

Cada prueba unitaria está compuesta de un método de prueba

Los casos de prueba se identifican con la anotación @Test

Los métodos de inicialización y finalización se identifican con laanotación @Before y @After (son llamados antes y después decada método de prueba)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 29 / 88

Page 31: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Breve introducción a JUnit 4

Los métodos de inicialización y finalización que aplican a la clasede prueba entera se identifican con @BeforeClass y@AfterClass (se ejecutan sólo una vez)

Es posible verificar excepciones en los métodos de prueba:@Test(expected=IllegalArgumentException.class)

Se puede especificar un tiempo máximo permitido (milisegundos)para ejecutar un método de prueba: @Test(timeout=1000)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 30 / 88

Page 32: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Breve introducción a JUnit 4

Tipos de assert:assert(boolean condition)assertTrue(boolean condition)assertFalse(boolean condition)assertEquals(boolean condition)assertNotNull(Object)assertNull(Object)

fail(String message)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 31 / 88

Page 33: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Breve introducción a JUnit 4

Veamos un ejemplo práctico ...

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 32 / 88

Page 34: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración

Las pruebas de integración tienen dos objetivos principales:Descubrir errores asociados con las interfaces de los módulos

Ensamblar sistemáticamente los módulos individuales para formarsubsistemas y al final un sistema completo

Principalmente se utilizan técnicas que verifican el correctomanejo de las entradas y salidas del software (pruebasfuncionales)

También pueden emplearse técnicas que recorren rutasespecíficas en la estructura de control del software (pruebasestructurales)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 33 / 88

Page 35: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración

Existen dos enfoquesBig bang, combinar todos los componentes y probar el sistemacomo un todoIntegración incremental, los componentes se integran y pruebanpoco a poco

Integración descendente (componentes de funcionales)Integración ascendente (componentes de infraestructura, e.g. accesoa BD)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 34 / 88

Page 36: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

Para explicar este enfoque utilizaremos el siguiente grafo dellamadas (diagrama de estructura)

B F G

C

D E

A

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 35 / 88

Page 37: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

El módulo principal es usado como controlador y todos susmódulos subordinados son remplazados por módulos simulados(stubs)

B F G

C

D E

A

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 36 / 88

Page 38: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

El módulo principal es usado como controlador y todos susmódulos subordinados son remplazados por módulos simulados(stubs)

B F G

C

D E

A

T1

T2

T3

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 36 / 88

Page 39: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

Los módulos simulados se remplazan uno a la vez con loscomponentes reales (en profundidad) y se van probando

B F G

C

D E

A

T1

T2

T3

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 37 / 88

Page 40: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

Los módulos simulados se remplazan uno a la vez con loscomponentes reales (en profundidad) y se van probando

T1

T2

T3 B F G

C

D E

A

T4

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 37 / 88

Page 41: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, descendente

Los módulos simulados se remplazan uno a la vez con loscomponentes reales (en profundidad) y se van probando

T1

T2

T3 B F G

C

D E

A

T4

T5

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 37 / 88

Page 42: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

Como su nombre lo indica, inicia la construcción y prueba con losmódulos en los niveles más bajos de la estructura del programa

No se requiere el uso de módulos simulados (stubs)

La estrategia ascendente de integración puede ser implementadacon los siguientes pasos:

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 38 / 88

Page 43: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

Los módulos en niveles bajos de la jerarquía son combinados engrupos que realizan una subfunción específica del software

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 39 / 88

Page 44: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

Se escribe un módulo controlador para coordinar las entradas ysalidas de los casos de prueba

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 39 / 88

Page 45: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

El grupo es probado

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 39 / 88

Page 46: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

Los controladores son remplazados y los grupos son combinadoshacia arriba en la estructura del programa

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 39 / 88

Page 47: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de alto nivel

Pruebas de validación, se enfocan en los requerimientos

Prueba del sistema, se enfoca en la integración del sistema (Hw,información, personas)

1 Prueba de recuperación, forza el software a fallar en diferentesformas y verifica que éste se recupere adecuadamente

2 Prueba de seguridad, verifica que los mecanismos de protecciónintegrados en el sistema realmente impidan irrupcionesinapropiadas

3 Prueba de resistencia, ejecutan un sistema de manera que sedemanden recursos en cantidades, frecuencias o volúmenesanormales

4 Prueba de desempeño, prueba el desempeño del software entiempo de ejecución dentro del contexto de un sistema integrado

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 40 / 88

Page 48: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 41 / 88

Page 49: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónProceso de depuración

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 42 / 88

Page 50: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónEsfuerzo de depuración

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 43 / 88

Page 51: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónSíntomas y causas

Síntoma y causa pueden estarseparados

Síntoma puede desaparecer alarreglar otro problema

Causa puede darse por combinaciónde no-errores

Causa puede darse por error desistema o compilador

Síntoma puede ser intermitente

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 44 / 88

Page 52: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración en IDEs

Existen en el mercado diversas herramientas de depuración

En la mayoría de las IDEs se incluye alguna

Veamos un ejemplo con Java y Netbeans

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 45 / 88

Page 53: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Valgrind es una herramienta que permite detectar fácilmenteerrores (bugs) en el manejo de memoria e hilos (threads)

Funciona con programas escritos en cualquier lenguaje o mezclasde ellos gracias a que trabaja directamente con el código binario

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 46 / 88

Page 54: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Valgrind se ha empleado para detectar errores de memoria ennumerosos proyectos importantes:

OpenOffice

Mozilla Firefox

MySQL

Perl

PHP

Yahoo! Messenger

PACX-MPI, etc.

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 47 / 88

Page 55: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Su nombre deriva de la mitología nórdica, donde Valgrind es lapuerta principal del paraíso (Valhalla) al cual los héroes van almorir en combate

Para instalarlo en Linux sólo se necesita ejecutar el comandosiguiente en una consolasudo apt-get install valgrind

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 48 / 88

Page 56: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Para utilizar Valgrind es necesario seguir los siguientes pasos:1 Compilar tu programa con las opciones -O0 (O mayúscula cero) y

-g2 Ejecutar el comando siguiente:

valgrind –leak-check=yes tuPrograma p1 p2 p3

Donde tuPrograma indica el nombre del archivo binario generadoal compilar tu código y p1, p2, p3 los parámetros que recibe de lalínea de comandos tu programa

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 49 / 88

Page 57: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

DepuraciónHerramientas de depuración, Valgrind

Suponga el siguiente programa en C que se encuentra en unarchivo llamado demos01.c

Page 58: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Veamos que errores es capaz de detectar Valgrind en esecódigo...

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 51 / 88

Page 59: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

DepuraciónHerramientas de depuración, Valgrind

Page 60: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónHerramientas de depuración, Valgrind

Como pudimos observar Valgrind es muy útil para detectar lossiguientes tipos de errores en el uso de memoria

Escritura en memoria no inicializada

Lectura de memoria fuera de rango

Condicionantes que dependen de memoria no inicializada

Incorrecta liberación de memoria (fugas)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 53 / 88

Page 61: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Métodos de prueba

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 54 / 88

Page 62: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Métodos de prueba

Métodos de prueba

Existen dos métodos básicos para diseñar casos de pruebaDe caja blanca (estructurales)

De caja negra (funcionales)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 55 / 88

Page 63: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Métodos de prueba

Métodos de prueba de caja blanca

Hacen énfasis en la reducción deerrores internos

Permiten derivar casos de prueba queejecuten al menos una vez

Todas las rutas independientes dentrodel módulo

Los lados verdadero y falso de todaslas decisiones lógicas

Todos los ciclos dentro y en suslímites operacionales

Todas las estructuras de datosinternas para asegurar su validez

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 56 / 88

Page 64: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Métodos de prueba

Métodos de prueba de caja negra

Verifican el correcto manejo defunciones externas provistas por elHW/SW

Permiten derivar casos de prueba paradetectar los siguientes tipos de errores:

Funciones incorrectas o faltantes

de interfaz

en estructuras de datos o en acceso aBD externas

de comportamiento o desempeño

de inicialización o término

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 57 / 88

Page 65: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 58 / 88

Page 66: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPrueba aleatoria

Cada módulo de HW/SW tiene un dominio de entrada del cual losdatos de prueba deben ser seleccionados

Existen reportadas en la literatura diversas formas deseleccionarlos

Si dichos datos de prueba se seleccionan de forma aleatoriaentonces hablamos de pruebas aleatorias

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 59 / 88

Page 67: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPrueba aleatoria

Por ejemplo, si el dominio de entrada válido para un módulo sontodos los enteros positivos entre 1 y 100, se podrían seleccionaraleatoriamente los valores 55, 24 y 3 para desarrollar tres casosde prueba

Sin embargo, existen los siguientes puntos a considerar:¿Son los 3 valores adecuados para mostrar que el módulo cumplecon su especificación?

¿Existen otros valores diferentes que permitan revelar los defectosdel módulo?

¿Se deben usar valores fuera del dominio válido como datos deprueba?

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 60 / 88

Page 68: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPrueba aleatoria

El uso de pruebas aleatorias puede ahorrar mucho tiempo yesfuerzo en la selección de los datos de prueba

Sin embargo, se debe tener en mente que esta forma deseleccionar los casos de prueba tiene muy poca posibilidad deproducir un conjunto efectivo de datos de prueba

Afortunadamente existen otros enfoques más estructurados quepermiten afrontar las desventajas de las pruebas aleatorias

Analizaremos algunos de ellos a continuación

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 61 / 88

Page 69: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPrueba exhaustiva

El procedimiento de prueba de caja negra más obvio es la pruebaexhaustiva

Hardware Browser OS Connection Memory

PC IE Windows LAN 1GBLaptop Mozilla Linux ISDN 2GB

Para probar exhaustivamente este sistema con 5 componentes(parámetros) cada uno con 2 valores se requieren ejecutar25 = 32 configuraciones diferentes (casos de prueba)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 62 / 88

Page 70: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPrueba exhaustiva

Para un sistema simple como el de nuestro ejemplo es posibleejecutar una prueba exhaustiva

Sin embargo, este enfoque es impráctico y no factible por que elnúmero de casos de prueba crece muy rápidamente

Por ejemplo para probar exhaustivamente un sistema con 5parámetros cada uno con 10 valores se requieren ejecutar105 = 1′000, 000 de casos de prueba

Suponiendo que se ejecuta y evalúa un caso de prueba porsegundo tardaríamos más de 11 días en concluir la prueba

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 63 / 88

Page 71: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraOtros criterios de selección de datos de prueba

Partición equivalente: divide en subconjuntos (clases deequivalencia) los valores de los parámetros del sistema al asumirque elementos de un mismo subconjunto producen uncomportamiento similar del SW [Myers, 1979]

Análisis de valores de frontera: selecciona valores próximos a loslímites de las clases de equivalencia para ser cubiertos por loscasos de prueba [Burnstein, 2003].

Estrategias de combinación: seleccionan casos de prueba queidentifican parámetros de entrada individuales y los combinanbasados en alguna estrategia combinatoria [Grindal et al., 2005].Un ejemplo son las pruebas de interacción introducidas porCohen et al. [Cohen et al., 1996].

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 64 / 88

Page 72: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 65 / 88

Page 73: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria

Este enfoque identifica fallas que surgen de las interacciones de t(o menos) parámetros de entrada

Para ello crea casos de prueba que incluyen al menos una veztodas las t-combinaciones entre estos parámetros y sus valores

Los Arreglos de Cobertura (Covering Arrays) son objetoscombinatorios que pueden ser usados para representar esoscasos de prueba de interacción [Hartman, 2005]

Principalmente por que permiten maximizar el número de erroresdetectados reduciendo al mínimo el número de casos de prueba[Kuhn et al., 2004]

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 66 / 88

Page 74: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Un covering array, CA(N; t, k, v), de tamaño N, fuerza t, grado k, yorden v es un arreglo N × k sobre v símbolos tal que para cadasubarreglo N × t contiene todos los subconjuntos ordenados de vsímbolos de tamaño t (t-tuplas) al menos una vez

CA(9; 2, 4, 3)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 67 / 88

Page 75: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Un covering array, CA(N; t, k, v), de tamaño N, fuerza t, grado k, yorden v es un arreglo N × k sobre v símbolos tal que para cadasubarreglo N × t contiene todos los subconjuntos ordenados de vsímbolos de tamaño t (t-tuplas) al menos una vez

CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 67 / 88

Page 76: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Un covering array, CA(N; t, k, v), de tamaño N, fuerza t, grado k, yorden v es un arreglo N × k sobre v símbolos tal que para cadasubarreglo N × t contiene todos los subconjuntos ordenados de vsímbolos de tamaño t (t-tuplas) al menos una vez

CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 67 / 88

Page 77: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Un covering array, CA(N; t, k, v), de tamaño N, fuerza t, grado k, yorden v es un arreglo N × k sobre v símbolos tal que para cadasubarreglo N × t contiene todos los subconjuntos ordenados de vsímbolos de tamaño t (t-tuplas) al menos una vez

CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 67 / 88

Page 78: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

El mínimo N para el cual un CA(N; t, k, v) existe es conocidocomo el tamaño óptimo del covering array y se define como sigue:

CAN(t, k, v) = min{N : ∃ CA(N; t, k, v)}

Un límite inferior para N es el siguiente:

vt ≤ CAN(t, k, v)

El covering array de nuestro ejemplo es óptimo: CA(9; 2, 4, 3)(N = 32 = 9)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 68 / 88

Page 79: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Veamos un ejemplo de cómo se puede utilizar un covering arraypara representar casos de prueba de interacción

Supongamos un sistema de hardware/software que tiene 4parámetros cada uno de los cuales puede tomar 3 valoresdiferentes y que queremos realizar la prueba de todas lasinteracciones entre pares de parámetros

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 69 / 88

Page 80: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAs

Valor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFi

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 81: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAs

Valor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFiLos casos de prueba de interacción para este producto se puedenrepresentar con un CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 82: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAsValor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFiLos casos de prueba de interacción para este producto se puedenrepresentar con un CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Tableta Mozilla Linux WiFiPC Chrome Win7 WiFi

Laptop Chrome Linux ISDNTableta Chrome XP LANTableta IE Win7 ISDN

PC IE Linux LANPC Mozilla XP ISDN

Laptop Mozilla Win7 LANLaptop IE XP WiFi

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 83: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAsValor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFiLos casos de prueba de interacción para este producto se puedenrepresentar con un CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Tableta Mozilla Linux WiFiPC Chrome Win7 WiFi

Laptop Chrome Linux ISDNTableta Chrome XP LANTableta IE Win7 ISDN

PC IE Linux LANPC Mozilla XP ISDN

Laptop Mozilla Win7 LANLaptop IE XP WiFi

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 84: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAsValor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFiLos casos de prueba de interacción para este producto se puedenrepresentar con un CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Tableta Mozilla Linux WiFiPC Chrome Win7 WiFi

Laptop Chrome Linux ISDNTableta Chrome XP LANTableta IE Win7 ISDN

PC IE Linux LANPC Mozilla XP ISDN

Laptop Mozilla Win7 LANLaptop IE XP WiFi

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 85: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAsValor Hardware Navegador SO Conexión0 PC IE XP LAN1 Laptop Mozilla Win7 ISDN2 Tableta Chrome Linux WiFiLos casos de prueba de interacción para este producto se puedenrepresentar con un CA(9; 2, 4, 3)

2 1 2 20 2 1 21 2 2 12 2 0 02 0 1 10 0 2 00 1 0 11 1 1 01 0 0 2

Tableta Mozilla Linux WiFiPC Chrome Win7 WiFi

Laptop Chrome Linux ISDNTableta Chrome XP LANTableta IE Win7 ISDN

PC IE Linux LANPC Mozilla XP ISDN

Laptop Mozilla Win7 LANLaptop IE XP WiFi

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 70 / 88

Page 86: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Los covering arrays son muy útiles para representar casos deprueba de interacción

Representan una buena alternativa frente a las pruebasexhaustivas

En nuestro ejemplo el CA(9; 2, 4, 3) contiene 9 casos de pruebacontra 34 = 81 que serían necesarios en una prueba exhaustiva

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 71 / 88

Page 87: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Algunos estudios realizados [Kuhn et al., 2004, Kuhn et al., 2008]han demostrado que el uso de covering arrays permiten reducir elnúmero de casos de prueba y maximizar la posibilidad dedetectar defectos

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 72 / 88

Page 88: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

El problema de construcción de covering arrays (CAC) consisteen determinar el tamaño óptimo (N) de un covering array dadossus valores t, k y v

Es equivalente al problema de maximizar el grado k dados losvalores N, t y v

En general determinar el tamaño óptimo de un covering array esun problema NP-complete [Lei and Tai, 1998]

Además es un problema altamente combinatorio, veamos por qué

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 73 / 88

Page 89: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoria, CAs

Sea A una solución potencial en el espacio de búsqueda A , i.e.,un covering array CA(N; t, k, v)

Entonces A puede ser representada como un arreglo N × k sobrev símbolos

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 0

1 0 1 1

CA(9; 3, 4, 2)N = 9t = 3k = 4v = 2

El tamaño del espacio de búsqueda A está dado por laexpresión: |A | = vNk (e.g., 29∗4 = 68, 719, 476, 736)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 74 / 88

Page 90: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Tan solo evaluar si una solución potencial A es un covering arrayrequiere verificar cuantas t-tuplas no están cubiertas:

F (A) =

(kt

)vt −

(kt)−1∑j=0

|ϑj|

donde ϑj es un conjunto que contiene la unión de las N t-tuplasen el j-ésimo subconjunto de t columnas tomadas de k (unsubarreglo N × t)

Complejidad computacional O(N(k

t

)) = O( Nk!

t!(k−t)!)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 75 / 88

Page 91: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

A pesar de estas circunstancias, diferentes enfoques de soluciónhan sido reportados en la literatura

Algoritmos exactos:EXACT (Exhaustive search) [Yan and Zhang, 2008]

Branch & Bound [Bracho-Rios et al., 2009]

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 76 / 88

Page 92: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaCovering Arrays

Algoritmos aproximados:Métodos recursivos [Sloane, 1993]

Métodos algebraicos [Chateauneuf and Kreher, 2002]

Métodos greedy [Cohen et al., 1997]

MetaheurísticasTabu Search [Nurmela, 2004]

Simulated Annealing [Torres-Jimenez and Rodriguez-Tello, 2012]

Genetic Algorithms [Stardom, 2001]

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 77 / 88

Page 93: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaMixed level covering arrays

En la practica, los módulos del producto que se desean probar nosiempre tienen el mismo número de valores (v) para todos susparámetros

Por lo que los covering arrays no pueden ser empleados paraconstruir casos de prueba

Para superar esta limitación se emplean otros objetoscombinatorios conocidos como mixed level covering arrays(MCAs)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 78 / 88

Page 94: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaMixed level covering arrays

Un mixed level covering array MCA(N; t, k, (v1, v2, · · · , vk)) es unarreglo N × k sobre v símbolos (v =

∑ki=1 vi), donde cada

columna i (1 ≤ i ≤ k) de este arreglo contiene solamenteelementos de un conjunto Si, con |Si| = vi.

Este arreglo tiene la propiedad de que las filas de cadasubarreglo N × t cubre las t-tuplas de valores de las t columnas almenos una vez

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 79 / 88

Page 95: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaMixed level covering arrays

Suponga que tenemos un algoritmo (Simulated Annealing) quetiene k = 5 parámetros cuyos valores se describen en la siguientetabla y que deseamos probar todas las interacciones entre t = 4parámetros

IS α ti N CL

Greedy 0.99 6.0 SPR 15(n + k)Random 0.85 (k + n)(1.0/3.3) TBR 23(n + k)

- - - - 40(n + k)

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 80 / 88

Page 96: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaMixed level covering arrays

Podríamos construir el mixed level covering array más pequeño:MCA(24; 4, 5, (2, 2, 2, 2, 3))

1 0 1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 11 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 11 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 1 0 0 00 0 0 1 1 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 1 0 11 2 1 1 1 0 0 0 2 1 0 0 2 2 2 0 2 1 1 1 2 0 0 2

Y ejecutar sólo 24 casos de prueba en vez de (24)3 = 48 en unaprueba exhaustiva

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 81 / 88

Page 97: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Pruebas de interacción combinatoria

Pruebas de interacción combinatoriaMixed level covering arrays

Tanto los CA como los MCA tiene otras aplicaciones prácticas[Chateauneuf and Kreher, 2002]:

Desarrollo de fármacosCompresión de datosEstudio de la regulación de expresión génicaAutenticación, etc.

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 82 / 88

Page 98: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja negraPruebas de interacción combinatoriaConclusiones

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 83 / 88

Page 99: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

Conclusiones

Las pruebas de hardware/software son una parte importante peromuy costosa del proceso de desarrollo (entre 30 y 50 % del costototal del desarrollo)

Sin embargo, los costos de las fallas en un producto en operaciónpueden llegar a ser mucho mayores (catastróficos)

Realizar pruebas exhaustivas al HW/SW es impráctico y nofactible por que el número de casos de prueba creceexponencialmente

Una buena alternativa es el uso de pruebas de interacción lascuales emplean objetos combinatorios (CAs, MCAs)

Este tipo de pruebas ofrecen la ventaja de permitir maximizar elnúmero de errores detectados, reduciendo al mínimo el númerode casos de prueba empleados

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 84 / 88

Page 100: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

Pruebas de interacción combinatoria para elaseguramiento de la calidad del hardware y

software

Dr. Eduardo A. RODRÍGUEZ TELLO

[email protected]

7 de noviembre de 2019

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 85 / 88

Page 101: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

Referencias I

Bracho-Rios, J., Torres-Jimenez, J., and Rodriguez-Tello, E. (2009).A new backtracking algorithm for constructing binary covering arrays of variable strength.Lecture Notes in Artificial Intelligence, 5845:397–407.

Burnstein, I. (2003).Practical Software Testing.Springer, New York, USA.

Chateauneuf, M. A. and Kreher, D. L. (2002).On the state of strength-three covering arrays.Journal of Combinatorial Design, 10(4):217–238.

Cohen, D. M., Dalal, S. R., Fredman, M. L., and Patton, G. C. (1997).The AETG system: An approach to testing based on combinatorial design.IEEE Transactions on Software Engineering, 23:437–444.

Cohen, D. M., Dalal, S. R., Parelius, J., and Patton, G. C. (1996).The combinatorial design approach to automatic test generation.IEEE Software, 13(5):83–88.

Grindal, M., Offutt, J., and Andler, S. (2005).Combination testing strategies: a survey.Software Testing, Verification, and Reliability, 15(3):167–199.

Hartman, A. (2005).Software and hardware testing using combinatorial covering suites.In Graph Theory, Combinatorics and Algorithms, chapter 10, pages 237–266. Springer-Verlag.

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 86 / 88

Page 102: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

Referencias II

Kuhn, D. R., Lei, Y., and Kacker, R. N. (2008).Practical combinatorial testing: Beyond pairwise.IT Professional, 10(3):19–23.

Kuhn, D. R., Wallace, D. R., and Gallo, A. M. (2004).Software fault interactions and implications for software testing.IEEE Transactions on Software Engineering, 30(6):418–421.

Lei, Y. and Tai, K. C. (1998).In-parameter-order: A test generation strategy for pairwise testing.In Proceedings of the 3rd IEEE International Symposium on High-Assurance Systems Engineering, pages 254–261. IEEEComputer Society.

Myers, G. J. (1979).The art of software testing.John Wiley & Sons, first edition.

Myers, G. J. (2004).The art of software testing.Wiley, second edition.

Nurmela, K. J. (2004).Upper bounds for covering arrays by tabu search.Discrete Applied Mathematics, 138(1-2):143–152.

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 87 / 88

Page 103: Pruebas de interacción combinatoria para el aseguramiento ...ertello/swe/swTesting-ITSMisantla… · Pruebas de interacción combinatoria para el aseguramiento de la calidad del

Pruebas de software utilizando un enfoque combinatorio Conclusiones

Referencias III

Sloane, N. J. A. (1993).Covering arrays and intersecting codes.Journal of Combinatorial Designs, 1(1):51–63.

Stardom, J. (2001).Metaheuristics and the search for covering and packing arrays.Master’s thesis, Simon Fraser University, Burnaby, Canada.

Torres-Jimenez, J. and Rodriguez-Tello, E. (2012).New bounds for binary covering arrays using simulated annealing.Information Sciences, 185(1):137–152.

Yan, J. and Zhang, J. (2008).A backtracking search tool for constructing combinatorial test suites.Journal of Systems and Software, 81(10):1681–1693.

Dr. Eduardo RODRÍGUEZ T. Pruebas de interacción combinatoria 7 de noviembre de 2019 88 / 88