El objetivo de las pruebas es la detección de defectos en el software (descubrir un error es el éxito de una prueba)

Mito: un defecto implica que somos malos profesionales y que debemos sentirnos culpables todo el mundo comete errores.

El descubrimiento de un defecto significa un éxito para la mejora de la calidad

El enfoque estructural o de caja blanca. Se centra en la estructura interna del programa (analiza los caminos de ejecución).

Mediante las pruebas de caja banca se pueden obtener pruebas que: Garanticen que se ejercita por lo menos una vez todos los caminos independientes de cada modulo.

Ejerciten todas las decisiones lógicas en sus vertientes verdadera y falsa.

Ejecuten todos los bucles en sus limites y con sus limites operacionales.

Ejerciten las estructuras internas de datos para asegurar su validez.

El enfoque funcional o de caja negra. Se centra en obtener conjuntos

de condiciones de entrada que ejercen completamente todos los requisitos funcionales de un programa.

La prueba de caja negra intenta encontrar errores de la siguientes categorías:

Funciones Incorrectas o ausentes.

Errores de Interfaz.

Errores en estructuras de datos o acceso a base de datos externas.

Errores de rendimiento .

Errores de inicialización y de terminación.

El enfoque aleatorio consiste en utilizar modelos (en muchas ocasiones estadísticos) que representen las posibles entradas al programa para crear a partir de ellos los casos de prueba.

Cobertura de sentencias. Se trata de generar los casos de prueba necesarios para que cada sentencia o instrucción del programa se ejecute al menos una vez.

Cobertura de decisiones. Consiste en escribir casos suficientes para que cada decisión tenga, por lo menos una vez, un resultado verdadero y, al menos una vez, uno falso. (Incluye a la cobertura de sentencias)

Cobertura de condiciones. Se trata de diseñar tantos casos como sea necesario para que cada condición de cada decisión adopte el valor verdadero al menos una vez y el falso al menos una vez. (No incluye cobertura de condiciones)

Criterio de decisión/condición. Consiste en exigir el criterio de cobertura decondiciones obligando a que se cumpla también el criterio de decisiones.

Criterio de condición múltiple. En el caso de que se considere que la evaluación de las condiciones de cada decisión no se realiza de forma simultánea, se puede considerar que cada decisión multicondicional se descompone en varias condiciones unicondicionales. Ejemplo en la siguiente diapositiva.

Criterio de cobertura de caminos. Se recorren todos los caminos (impracticable)