Pruebas de Caja Blanca: Fase de Pruebas Software

Las pruebas de caja blanca se aprovechan del conocimiento que se tiene sobre el código y su estructura para el diseño y elaboración de casos de prueba. Es por esto que también se las llama pruebas estructurales.

Pruebas de caja blanca
Pruebas de Caja Blanca (Arunseochiefs, CC BY-SA 4.0, via Wikimedia Commons)

Lo que se pretende con estas pruebas, más que ver que los requerimientos se cumplen, es que el código está preparado para funcionar en las posibles situaciones que se puedan presentar, basándose en la inspección detallada dicho código. De esta forma tu software estará preparado para responder a circunstancias susceptibles de provocar errores.

Dicho de otro modo, estas pruebas tratan de buscar errores haciendo que se ejecuten todos y cada uno de los posibles flujos de ejecución de un programa, cerciorándose de que el programa es capaz de responder/recuperarse ante cualquier situación y por supuesto devuelve los valores de salida adecuados.

Te muestro a continuación las principales técnicas para realizar pruebas de Caja Blanca.

Pruebas del camino básico

Este enfoque pretende que cada sentencia de código se ejecute al menos una vez, asegurándonos que todas las condiciones sean probadas tanto para su valor verdadero como falso. Para ello se obtiene una medida de la complejidad lógica del diseño procedimental (complejidad ciclomática) y se usa como guía a la hora de definir un conjunto de caminos de ejecución. Esta medida además representa un límite superior para el número de casos de prueba que se deben ejecutar para asegurar que se ejecuta cada camino del programa.

Para poder ejecutar esta técnica se hace necesario el uso de grafos de flujo que permitan representar el flujo de control del programa.

Representación de estructuras de control en grafos de flujo
(Waeswaes, CC BY-SA 3.0, via Wikimedia Commons)

Pruebas de cobertura

Las pruebas de cobertura tratan de ‘cubrir’ la ejecución completa del código a distintos niveles:

  • Sentencia: requiere que se ejecute cada sentencia al menos una vez.
  • Decisión: establece que es necesario escribir un número suficiente de casos de prueba como para que cada condición evalúe por lo menos un resultado verdadero y uno falso.
  • Condición: obliga a que cada condición lógica evalúe todos los resultados posibles, para evitar que se ignore la evaluación de ciertos valores en decisiones que usan múltiples condiciones.
  • Cobertura múltiple: se prueban todas las posibles combinaciones de valores condicionales.

Pruebas de bucles

Se centran exclusivamente en la validez de las estructuras repetitivas construidas, diferenciando entre construcciones de bucles:

  • Simples
  • Anidados
  • Concatenados
  • No estructurados

Para realizar estas pruebas se aplican conjuntos de pruebas que permitan:

  • Pasar por alto el bucle
  • Ejecutarlo una sola vez
  • Pasar dos veces por el bucle
  • Ejecutar m pasos, donde m es menor que el número máximo de pasos permitidos.
  • Iterar n-1, n y n+1 veces por el bucle