miércoles, 12 de julio de 2017

Pruebas de humo o smoke test

Las pruebas de humo, también conocidas como “smoke test”, permiten evaluar en un período relativamente corto la operatividad de un sistema o componente, con el objetivo de asegurar que las funciones importantes de un programa se ejecutan sin inconvenientes.
A través de este conjunto de pruebas, puede verificarse si ciertos caminos de la aplicación funcionan correctamente. Para ello, normalmente se elige un grupo de funcionalidades significativas de la aplicación sin detenerse a verificar íntegramente a todas, asegurándonos de que el comportamiento sea el esperado. 
En caso de que las pruebas no hayan corrido satisfactoriamente, procederemos a reportar los defectos encontrados y el área de Desarrollo los arreglará, dándonos una nueva versión sobre la que nuevamente ejecutaremos el smoke test. Repetiremos este procedimiento hasta que la misma se encuentre estable y lista para comenzar con la ejecución del plan de pruebas diseñado previamente.

A continuación, un ejemplo de smoke test

Supongamos que una universidad utiliza una aplicación que administra todos los registros de sus estudiantes y la misma cuenta con quince módulos, de los cuales cuatro componentes son los más importantes: la página de inicio de sesión, la adición de detalles de los estudiantes, su actualización y, por último, la eliminación de la misma. Como parte de las pruebas de humo vamos a probar la página de inicio de sesión con una entrada válida, después de la conexión se pondrá a prueba la adición, actualización y borrado de registros. Si los cuatro componentes críticos funcionan bien, entonces la construcción es lo suficientemente estable como para proceder con la prueba detallada. 

Principales ventajas de las pruebas de humo:
  • Ayudan a detectar los errores en las primeras etapas de la prueba. 
  • Permiten verificar que los problemas corregidos en la versión anterior NO estén impactando en las principales funcionalidades de la aplicación.
  • Se requiere un número muy limitado de casos de prueba para llevarla adelante. 
  • Las pruebas de humo pueden llevarse a cabo en poco tiempo.

Aún así, estos tests presentan algunas pocas desventajas que vale la pena mencionar:   
  • No realiza una prueba detallada de la aplicación.
  • Al ser una prueba no exhaustiva, no seremos capaces de encontrar todos los otros problemas críticos en la aplicación.

En conclusión, el uso del smoke test contribuye a validar la estabilidad de la entrega y nos permite detectar errores en las funcionalidades críticas de forma temprana. De esta manera si los resultados no son los esperados entonces no vale la pena realizar un esfuerzo mayor ejecutando pruebas más complejas. 
Además, el tiempo invertido para la realización de esta prueba tiene un impacto mínimo en la planificación del ciclo de vida de pruebas.

Autor:
Germán Gustavo Molina
Analista de Testing