Estrategias de Pruebas de Software: Caja Negra vs. Caja Blanca
Clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 3,55 KB
Prueba de Caja Negra (Funcional)
Se aplica a las pruebas de alto nivel (desde el punto de vista del usuario) y se aplica en las fases más tardías de la prueba.
- El comportamiento del módulo se determina en función de sus entradas y salidas.
- Los casos de prueba parten de la especificación del programa o módulo y estos deben ayudar a encontrar:
- Funciones incorrectas o ausentes
- Errores en interfaz
- Errores en acceso a base de datos
- Errores de desempeño
- Errores de inicialización y finalización
- La estrategia de prueba está basada en escenarios o uso del sistema y los pasos a seguir son:
- Se especifica el caso de uso
- Se especifican distintos valores para las distintas variables de los casos de uso a través de:
- Partición equivalente
- Análisis de valores límites
- Se generan n casos de prueba por caso de uso.
Partición Equivalente
Un conjunto de pruebas forman una clase de equivalencia si:
- Todos los casos prueban lo mismo
- Si uno encuentra un defecto, el otro también
- Si uno no encuentra un defecto, el otro tampoco.
Para un programa que acepta cualquier número entre 1 y 99, las clases de equivalencia son:
- Valido = número entre 1 y 99
- Inválido = no número
- número < 1
- número > 99
Análisis de Valores Límite
Similar a Partición Equivalente pero considerando los límites.
Reglas: Si una condición de entrada es:
- Número de valores, probar el máximo y mínimo, y los valores justo por encima del máximo y por debajo del mínimo.
- Aplicar estas reglas para condiciones de salida y estructuras de datos.
Prueba de Caja Blanca (Estructural)
Se aplica a las pruebas de bajo nivel del software y en las primeras fases de la prueba. Estas pruebas analizan la estructura lógica interna de la aplicación con el fin de demostrar que los componentes internos de la aplicación se comportan adecuadamente.
Buscan asegurar la cobertura y que se ejecuten: todos los caminos, todas las alternativas (true y false), todos los loops, todas las estructuras internas de datos.
Dos técnicas
- Prueba del camino básico: Busca definir un conjunto básico de caminos de ejecución utilizando una métrica para definir este conjunto y utilizando una notación de grafos para llegar a la métrica. Se deben:
- Dibujar el correspondiente grafo de flujo
- Determinar la complejidad ciclomática del grafo
- Determinar el conjunto de caminos básicos
- Preparar casos de prueba
- Pruebas de estructuras de control
Complejidad Ciclomática (CC)
Define el número de Caminos Independientes del conjunto básico de un programa.
- CI = tiene que poseer al menos una arista no recorrida en otro camino
- Proporciona el límite superior de pruebas a realizar, este nos asegura que se han recorrido todos los caminos al menos una vez.
Ejemplos de Test
@Test
public void testGetYSetRespuestaEsTrue() {
PreguntaVF aPreguntaVF = new PreguntaVF();
aPreguntaVF.setRespuestaEsTrue(true);
assertEquals(true, aPreguntaVF.getRespuestaEsTrue());
}
@Test
public void testRestaPositivos() {
Calculadora aCalculadora = new Calculadora();
int resultado = aCalculadora.restar(5, 3);
assertEquals(2, resultado);
}