Directriz: Prueba de unidad
La prueba de unidades es una prueba detallada de la estructura interna de un módulo de software. En esta directriz se discuten los enfoques de caja blanca y de caja negra para la prueba de unidades.
Relaciones
Descripción principal

Introducción

Las pruebas de unidades se implementan contra los elementos más pequeños que se pueden probar (unidades) del software, e implica probar la estructura interna como por ejemplo los flujos lógicos y de datos, y los comportamientos de función y observables de la unidad. Las pruebas de diseño y de implementación que se centran en la estructura interna de una unidad se basan en el conocimiento de la implementación de la unidad (enfoque de caja blanca). El diseño y la implementación de pruebas para verificar los comportamientos observables de una unidad y sus funciones no se basan en el conocimiento de la implementación y por lo tanto se conocen como enfoque de caja negra.  

Ambos enfoques se utilizan para diseñar e implementar diferentes tipos de pruebas (consulte el apartado Técnica: Tipo de pruebas) necesarios para probar las unidades satisfactoriamente y completamente. 

Consulte también el apartado Técnica: Guión de prueba para obtener información adicional sobre derivar guiones de prueba para las pruebas de unidad.

Enfoque de prueba de caja blanca

Un enfoque de prueba de caja blanca debe adoptarse para verificar la estructura interna de una unidad. Teóricamente, debe probar todas las vías de acceso a través del código, pero esto sólo es posible en unidades muy simples. Como mínimo, debe ejercer todas las vías de acceso decisión a decisión (vía de acceso DD) por lo menos una vez porque entonces ejecuta todas las sentencias una vez. Una decisión suele ser una sentencia if, y una vía de acceso DD es una vía de acceso entre dos decisiones.

Para alcanzar este nivel de cobertura de la prueba, se recomienda que escoja los datos de prueba para que todas las decisiones se evalúen de todos los modos posibles. 

Utilice herramientas de cobertura de código para identificar el código que no se ha ejercido en las pruebas de caja blanca. Las pruebas de fiabilidad deben efectuarse simultáneamente con las pruebas de caja blanca.

Consulte el apartado Técnica: Guión de prueba para obtener información adicional 

Enfoque de prueba de caja negra

El objetivo de una prueba de caja negra es verificar la función y el comportamiento observable especificado de la unidad sin conocer cómo implementa la unidad la función y el comportamiento. Las pruebas de caja negra se centran y se basan en la entrada y la salida de la unidad.

Derivar las pruebas de la unidad basándose en el enfoque de caja negra, utiliza los argumentos de entrada y de salida de las operaciones de la unidad, y/o el estado de salida para su evaluación. Por ejemplo, la operación puede incluir un algoritmo (que requiere dos valores como entrada y devolución de una tercera como salida), o iniciar el cambio en el estado de un objeto o de un componente, como añadir o suprimir un registro de base de datos.   Deben probarse totalmente. Para probar una operación, debe derivar suficientes guiones de prueba para verificar lo siguiente:

  • la operación ha devuelto un valor apropiado para cada valor válido utilizado como entrada
  • la operación ha devuelto un valor apropiado para cada valor no válido utilizado como entrada
  • un estado de salida apropiado ocurre para cada estado de entrada válido
  • un estado de salida apropiado ocurre para cada estado de entrada no válido

Utilice herramientas de cobertura de código para identificar el código que no se ha ejercido en las pruebas de caja blanca. Las pruebas de fiabilidad deben efectuarse simultáneamente con las pruebas de caja negra.

Consulte el apartado Técnica: Guión de prueba para obtener información adicional