pruebas de software utilizando un enfoque combinatorioertello/svam/s07-swe-test.pdf · 8 personas...

71
Pruebas de software utilizando un enfoque combinatorio Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 25 de marzo del 2012 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 1 / 65

Upload: others

Post on 25-Apr-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoquecombinatorio

Dr. Eduardo A. RODRÍGUEZ TELLO

CINVESTAV-Tamaulipas

25 de marzo del 2012

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 1 / 65

Page 2: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 2 / 65

Page 3: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 3 / 65

Page 4: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

En un proyecto de desarrollo de software los errores (bugs eninglés) puede presentarse en cualquiera de las etapas del ciclo devida del software

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

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 4 / 65

Page 5: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Por lo tanto es muy probable que el código final contenga erroresde requerimientos y diseño, adicionales a los introducidos en lacodificación

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 5 / 65

Page 6: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Las pruebas de software son una parte importante pero muycostosa del proceso de desarrollo de software

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

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

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 6 / 65

Page 7: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 software de calculo de trayectorias y activación delmisil 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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 7 / 65

Page 8: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 8 / 65

Page 9: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 9 / 65

Page 10: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

IntroducciónAlgunos de los peores errores de la historia

El lanzamiento comercial y la producción del Airbus A380 seretrasa más un año (2006)

Diferencias entre versiones de las herramientas CAD (ComputerAided Design) usadas en las fábricas de Hamburgo y Toulouseprovocaron un problema en el cableado (530km de cables)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 10 / 65

Page 11: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

IntroducciónAlgunos de los peores errores de la historia

Se colapsa el aeropuerto de Los Angeles (2007)

Más de 17 mil personas se quedaron en tierra por un problema desoftware que provocó conflictos en una tarjeta de red que bloqueótoda la red informática

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 11 / 65

Page 12: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Introducción

Introducción

Como pueden observar las pruebas de software tienen un rol muyimportante en el aseguramiento de la calidad ya que permitendetectar los errores introducidos en las fases previas del proyecto

Durante este taller analizaremos a detalles algunas de lasestrategias y técnicas más importantes para efectuar las pruebasde software

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 12 / 65

Page 13: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 13 / 65

Page 14: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Conceptos básicos

Conceptos básicosDefiniciones

Error, se refiere a la diferencia entre la salida actual de unsoftware y la correcta. También puede ser una acción queintroduce en el software un defecto o falla

Defecto, es una condición que causa que un software falle alrealizar una función requerida (sinónimo de bug)

Falla, es la incapacidad de un software para realizar una funciónrequerida de acuerdo con sus especificaciones (son producidaspor defectos)

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

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 14 / 65

Page 15: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 15 / 65

Page 16: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 software desarrollado

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

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 16 / 65

Page 17: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 17 / 65

Page 18: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 18 / 65

Page 19: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 19 / 65

Page 20: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 20 / 65

Page 21: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 21 / 65

Page 22: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 22 / 65

Page 23: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 23 / 65

Page 24: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas unitarias

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 24 / 65

Page 25: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 25 / 65

Page 26: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 26 / 65

Page 27: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 27 / 65

Page 28: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 28 / 65

Page 29: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 29 / 65

Page 30: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 30 / 65

Page 31: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 30 / 65

Page 32: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 31 / 65

Page 33: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 31 / 65

Page 34: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 31 / 65

Page 35: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 32 / 65

Page 36: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 33 / 65

Page 37: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 33 / 65

Page 38: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Niveles de pruebas

Pruebas de integración, ascendente

El grupo es probado

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 33 / 65

Page 39: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 33 / 65

Page 40: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 34 / 65

Page 41: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 35 / 65

Page 42: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónProceso de depuración

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 36 / 65

Page 43: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Depuración

DepuraciónEsfuerzo de depuración

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 37 / 65

Page 44: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 38 / 65

Page 45: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 39 / 65

Page 46: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 (o estructurales)

De caja negra (o funcionales)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 40 / 65

Page 47: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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

Métodos de prueba, de caja blanca

Verifican la correctaimplementación de lasunidades internas, lasestructuras y sus relaciones

Hacen énfasis en la reducciónde errores internos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 41 / 65

Page 48: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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

Métodos de prueba, de caja negra

Verifican el correcto manejode funciones externasprovistas o soportadas por elsoftware

Verifican que elcomportamiento observado seapegue a las especificacionesdel producto y a lasexpectativas del usuario

Los casos de prueba seconstruyen a partir de lasespecificaciones del sistema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 42 / 65

Page 49: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

1 Pruebas de software utilizando un enfoque combinatorioIntroducciónConceptos básicosNiveles de pruebasDepuraciónMétodos de pruebaPruebas de caja blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 43 / 65

Page 50: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Pruebas de caja blanca

Los métodos de caja blanca o estructurales permiten derivarcasos de prueba que

Garanticen que todas las rutas independientes dentro del módulose ejecuten al menos una vez

Ejecuten los lados verdadero y falso de todas las decisiones lógicas

Ejecuten todos los ciclos dentro y en sus límites operacionales

Ejerciten las estructuras de datos internos para asegurar su validez

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 44 / 65

Page 51: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

¿Por qué?

Los errores lógicos y suposiciones incorrectas son inversamenteproporcionales a la probabilidad de una ruta de ejecución

A menudo se cree que una ruta no es probable que se ejecute; dehecho, la realidad es a menudo contra intuitiva

Los errores tipográficos son aleatorios; es probable que las rutasno probadas contengan algunos errores de este tipo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 45 / 65

Page 52: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de ruta básica

Cálculo de la complejidad ciclomáticaV (G) = R = 4V (G) = E − V + 2 = 11− 9 + 2 = 4

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 46 / 65

Page 53: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de ruta básica

Los módulos en este rango de complejidad ciclomática son máspropensos a tener fallas

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 47 / 65

Page 54: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de ruta básica

Se derivan las rutasindependientes (V (G) = 4)

1, 11

1, 2, 3, 4, 5, 10, 1, 11

1, 2, 3, 6, 8, 9, 10, 1, 11

1, 2, 3, 6, 7, 9, 10, 1, 11

Se derivan casos de pruebapara ejercitar cada ruta

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 48 / 65

Page 55: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de ruta básica, Ejercicio

Dado el código delalgoritmo deordenamiento deburbuja, dibuje el grafode flujo, calcule lacomplejidad ciclomáticay derive las rutasindependientes

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 49 / 65

Page 56: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de la estructura de control

Prueba de condición, un método de diseño de casos de pruebaque ejercita las condiciones lógicas contenidas en un módulo

Prueba de flujo de datos, selecciona rutas de prueba del módulode acuerdo con la localización de las definiciones y utilización delas variables del programa

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 50 / 65

Page 57: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de la estructura de controlPrueba de ciclos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 51 / 65

Page 58: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de la estructura de controlPrueba de ciclos simples

Condiciones mínimas para probar ciclos simples1 Saltar el ciclo completamente

2 Sólo pasar una sola vez a través del ciclo

3 Pasar dos veces a través del ciclo

4 Pasar m veces a través del ciclo (m < n)

5 Pasar (n − 1),n y (n + 1) veces a través del ciclo

Donde n es el número máximo de pasadas permitidas a travésdel ciclo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 52 / 65

Page 59: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja blanca

Prueba de la estructura de controlPrueba de ciclos anidados

Condiciones mínimas para probar ciclos anidados1 Iniciar en el ciclo más interno. Asignar a todos los ciclos sus

valores de iteración mínimos

2 Probar para este ciclo los valores (min+1), típico, (max −1) y max

3 Se pasa al siguiente ciclo más externo y se fijan sus valores deiteración como en el paso 2, manteniendo los otros ciclos en susvalores típicos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 53 / 65

Page 60: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 blancaPruebas de caja negra

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 54 / 65

Page 61: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negra

Los métodos de caja negra o funcionales permiten derivar casosde prueba que buscan encontrar los siguientes tipos de errores:

Funciones incorrectas o faltantes

Errores de interfaz

Errores en estructuras de datos o en acceso a BD externas

Errores de comportamiento o desempeño

Errores de inicialización o término

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 55 / 65

Page 62: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 MemoryPC IE Windows LAN 1GB

Laptop 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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 56 / 65

Page 63: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

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 impractico 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 = 1000000 casos de prueba

Si se ejecuta y evalua un caso de prueba por segundotardariamos más de 11 días

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 57 / 65

Page 64: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraPartición equivalente

Por lo tanto se han propuesto otros criterios para seleccionarcasos de prueba

Uno de ellos es la partición equivalente [Myers, 1979]

Ésta divide en subconjuntos los valores de los parámetros delsistema (o módulo) al asumir que todos los elementos en elmismo subconjunto resultan en un comportamiento similar

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 58 / 65

Page 65: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraEstrategias combinatorias, pruebas de interacción

Otra alternativa razonable son las estrategias de combinación (ver[Grindal et al., 2005])

Son métodos de selección de casos de prueba que identificanparámetros de entrada individuales y los combinan basados enalguna estrategia combinatoria

Un ejemplo de estas estrategias son las pruebas de interacciónintroducidas por Cohen et al. [Cohen et al., 1996]

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 59 / 65

Page 66: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraEstrategias combinatorias, pruebas de interacción

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 Covering arrays (CAs) son objetos combinatorios usados pararepresentar esos casos de prueba de intercció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. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 60 / 65

Page 67: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraCovering arrays

Un covering array, CA(N; t , k , v), de tamaño N, fuerza t , grado k ,y orden 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

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)} (1)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 61 / 65

Page 68: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraCovering arrays

CA(10;3,5,2)

1 1 0 1 11 0 0 1 00 0 0 1 11 0 1 1 11 0 0 0 10 0 1 0 01 1 1 0 00 1 0 0 00 1 1 0 10 1 1 1 0

(2)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 62 / 65

Page 69: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de caja negraCovering arrays

Hardware Browser OS Connection MemoryPC IE Windows LAN 1GB

Laptop Mozilla Linux ISDN 2GB

Test Hardware Browser OS Connection Memory1 Laptop Mozilla Windows ISDN 2GB2 Laptop IE Windows ISDN 1GB3 PC IE Windows ISDN 2GB4 Laptop IE Linux ISDN 2GB5 Laptop IE Windows LAN 2GB6 PC IE Linux LAN 1GB7 Laptop Mozilla Linux LAN 1GB8 PC Mozilla Windows LAN 1GB9 PC Mozilla Linux LAN 2GB

10 PC Mozilla Linux ISDN 1GB

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 63 / 65

Page 70: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Pruebas de software utilizando un enfoquecombinatorio

Dr. Eduardo A. RODRÍGUEZ TELLO

http://www.tamps.cinvestav.mx/[email protected]

25 de marzo del 2012

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 64 / 65

Page 71: Pruebas de software utilizando un enfoque combinatorioertello/svam/s07-SWE-test.pdf · 8 personas murieron y 20 tuvieron problemas de salud graves. Los médicos responsables del hecho

Pruebas de software utilizando un enfoque combinatorio Pruebas de caja negra

Referencias I

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

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.

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.

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.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Pruebas de software combinatorias 25 de marzo del 2012 65 / 65