Definición: Conjunto minimo de pruebas que verifican que las funcionalidades criticas de una aplicacion funcionan correctamente tras un despliegue, antes de ejecutar la suite completa.
— Fuente: NERVICO, Consultoría de Desarrollo de Producto
Que es el smoke testing
El smoke testing es un conjunto reducido de pruebas de alto nivel que se ejecutan inmediatamente despues de un despliegue o build para verificar que las funcionalidades mas criticas del sistema funcionan correctamente. Su nombre proviene de la electronica, donde al encender un dispositivo nuevo se comprueba primero que “no echa humo”. No buscan cobertura exhaustiva, sino confirmar rapidamente que el sistema esta operativo a nivel basico.
Como funciona
Las pruebas de smoke se disenan para cubrir los flujos criticos de la aplicacion con el minimo numero de tests posible. Tipicamente incluyen verificaciones como: la aplicacion arranca correctamente, la pagina principal se carga, la autenticacion funciona, las APIs principales responden y la conexion a base de datos esta operativa. Se ejecutan automaticamente como primer paso del pipeline de CI/CD tras el despliegue, y su fallo bloquea inmediatamente el avance del release o activa un rollback automatico.
Casos de uso principales
- Validacion rapida post-despliegue para confirmar que el build no tiene defectos criticos antes de continuar con testing mas profundo
- Gate automatico en pipelines de CI/CD que previene la promocion de builds defectuosos a entornos superiores
- Verificacion de integridad basica tras migraciones de infraestructura o actualizaciones de dependencias
- Monitorizacion periodica de salud del sistema ejecutando smoke tests como checks de disponibilidad
Ventajas y consideraciones
Los smoke tests proporcionan feedback inmediato sobre el estado basico del sistema, tipicamente en menos de dos minutos. Al ser rapidos y enfocados, no retrasan el pipeline significativamente y detectan los fallos mas graves de forma temprana. La principal consideracion es mantenerlos verdaderamente minimos: si el conjunto crece demasiado, pierde su ventaja de velocidad. Deben complementarse con suites de pruebas mas exhaustivas que se ejecutan en fases posteriores del pipeline.