sábado, 18 de diciembre de 2010

Principales tipos de Testing de Software


Los testing de software son una manera de garantir una mayor calidad en un software. Con eso existen muchas maneras de se testear un programa, o sea, existen testing de más bajo nível y testing de más alto nível, los cuales podemos clasificar en testing de caja blanca (white-box testing) y testing de caja negra (black-box testing), respectivamente.


Los testing de caja branca son realizados directamente en el código y normalmente son hechos por el programador del software, un ejemplo de este tipo de testing son los testing de unidad (unit testing). Sin embargo, los testing de caja negra son hechos de manera funcional, donde el tester 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 estos tipos de testing son hechos por un equipo específica de testers, los cuales utilizan la especificación de requisitos del cliente para crear un plan de casos de prueba.

Los testing de caja negra más comunes son el testing funcional y el testing de aceptación, que es semejante al testing funcional, la principal diferencia es que este testing es ejecutado directamente por el cliente, lo cual decide si acepta o no el programa. Hay también los testing mesclados, que pueden ser tanto de caja blanca cuanto de caja negra, estos testing son los testing de regresión, de integración y de cobertura.

En la imagen abajo hay la clasificación de algunos tipos de testing de software.
Los testing de regresión deben ser realizados 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 todo el plan de caso de prueba creado para el testing funcional específico para aquellas funcionalidades alteradas.

Hay también un testing muy importante que es el testing de cobertura. Este testing tiene el objetivo de verificar si el plan de testing ejecutado, sea un testing de unidad o un plan de testing funcional, está cubriendo 100% del código del programa desarrollado. Hay herramientas que apoyan en la ejecución de estos testing, 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 testing 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

No hay comentarios.:

Publicar un comentario