La prueba consiste en la ejecución de un programa con el objetivo de encontrar errores. El programa o parte de él, se va a ejecutar bajo unas condiciones previamente especificadas, para una vez observados los resultados, estos sean registrados y evaluados.
Según el IEEE, un caso de prueba es un conjunto de entradas, condiciones de ejecución y resultados esperados, desarrollados para un objetivo particular, como, por ejemplo, ejercitar un camino concreto de un programa o verificar el cumplimiento de un determinado requisito, incluyendo toda la documentación asociada.
Dada la complejidad de las aplicaciones informáticas, que se desarrollan en la actualidad, es prácticamente imposible, probar todas la combinaciones que se pueden dar dentro de un programa o entre un programa y las aplicaciones que pueden interactuar con él. Por este motivo, en el diseño de los casos de prueba, siempre es necesario asegurar que con ellos se obtiene un nivel aceptable de probabilidad de que se detectarán los errores existentes.
Las pruebas deben buscar un compromiso entre la cantidad de recursos que se consumirán en el proceso de prueba, y la probabilidad obtenida de que se detecten los errores existentes.
Existen varios procedimientos para el diseño de los casos de prueba:
- Enfoque funcional o de caja negra. En este tipo de prueba, nos centramos en que el programa, o parte del programa que estamos probando, recibe un entrada de forma adecuada y se produce una salida correcta, así como que la integridad de la información externa se mantiene. La prueba no verifica el proceso, solo los resultados. Este enfoque se centra en la funciones, entradas y salidas. Se aplican los valores límite y las clases de equivalencia..
- Enfoque estructural o caja blanca. En este tipo de pruebas, debemos centrar en la implementación interna del programa. En esta prueba, se deberían de probar todos los caminos que puede seguir la ejecución del programa.
- Enfoque aleatorio. A partir de modelos obtenidos estadísticamente, se elaboran casos de prueba que prueben las entradas del programa. . Para ello se utilizan generadores automáticos de casos de prueba.