Principales tipos de Pruebas de Software


Las pruebas de software son una manera de garantir una mayor calidad en un software. Con eso existen muchas maneras de se probar un software, o sea, existen pruebas de más bajo nivel y pruebas de más alto nivel, los cuales podemos clasificar en prueba de caja blanca (white-box testing) y prueba de caja negra (black-box testing), respectivamente.


Las pruebas de caja branca son realizadas directamente en el código y normalmente son hechos por el programador del software, un ejemplo de este tipo de prueba es la prueba de unidad (unit testing). Sin embargo, las pruebas de caja negra son hechos de manera funcional, donde el probador no tiene contacto directo con el código del programa, así lo programa es tenido como una caja negra donde al pasar valores de entrada para esta caja y ella retorna valores de salida. Muchas veces estes tipos de pruebas son hechos por un equipo específica de probadores, los cuales utilizan la especificación de requisitos del cliente para crear un plan de casos de prueba.

Las pruebas de caja negra más comunes son la prueba funcional y la prueba de aceptación, que son semejantes, la principal diferencia es que la segunda prueba es ejecutada directamente por el cliente, lo cual decide si acepta o no el programa. Hay también las pueblas mezcladas, que pueden ser tanto caja blanca como caja negra, estas pruebas son de regresión, de integración y de cobertura.

En la imagen abajo hay la clasificación de algunos tipos de pruebas de software.
Las pruebas de regresión deben ser realizadas siempre que tener alteraciones considerables en el programa, pues en cada alteración el programador puede inserir errores en el programa que antes no existían. Así, es necesario re-ejecutar nuevamente los principales casos de prueba del plan de prueba creado para aquellas funcionalidades alteradas.

Hay también una prueba muy importante que es la prueba de cobertura. Esta prueba tiene el objetivo de verificar si el plan de prueba ejecutado, sea una prueba de unidad o un plan de prueba funcional, está cubriendo 100% del código del programa desarrollado. Hay herramientas que apoyan en la ejecución de estas pruebas, como por ejemplo, un plugin para Eclipse IDE, el Emma Coverage, disponible para Junit.

Con el entendimiento más profundo acerca de cada tipo de prueba es posible obtener maneras más prácticas hacer pruebas en un programa y así garantir una mayor calidad del software.

Referencia:

WILLIAMS, M., SUCCI, G. e MARCHESI, L. Traditional and Agile Software Engineering. Ch 8 - Black Box Testing. Ed. Addison-Wesley, 2003