Que Es el Sanity Testing?

El sanity testing es una actividad de testing estrecha y enfocada, realizada despues de un cambio especifico — tipicamente un bug fix o actualizacion menor — para verificar que el cambio funciona correctamente y no ha roto funcionalidad relacionada de manera obvia. A diferencia del smoke testing, que ampliamente verifica si todo el build es estable, el sanity testing se enfoca en un area especifica.

Piensa en la diferencia asi: Smoke testing es un doctor verificando tus signos vitales (pulso, presion, temperatura) para ver si estas generalmente sano. Sanity testing es el doctor verificando si la medicacion especifica que receto ayer esta funcionando.

Despues de que un desarrollador corrige un bug en el calculo de pagos, el sanity testing verifica:

  1. El bug especifico esta corregido (el escenario reportado ahora funciona)
  2. Funcionalidad relacionada sigue funcionando (otros calculos no afectados)
  3. El area alrededor del fix es estable (el flujo de checkout completa)

El sanity testing NO verifica toda la aplicacion. No revisa login, busqueda ni features no relacionados.

Comparacion Completa: Smoke vs Sanity vs Regresion

CaracteristicaSmokeSanityRegresion
PropositoBuild estable?Fix especifico funciona?Algo mas se rompio?
AlcanceAmplio, superficialEstrecho, profundoAmplio, profundo
CuandoDespues de cada buildDespues de fix/cambioAntes del release
Duracion10-15 minutos15-30 minutosHoras a dias
AutomatizacionUsualmente automatizadoUsualmente manualMix
QuienQA o CI/CDIngeniero QAEquipo QA
AnalogiaChequeo generalVerificar si la medicina funcionaEscaneo corporal completo

Cuando Usar Sanity Testing

Despues de un Bug Fix

Bug reportado: “El calculo de descuento muestra 12% en vez de 10% para ordenes sobre $100.” El desarrollador lo corrige. Antes de regresion completa:

  1. Verificar el escenario exacto del bug ahora muestra 10%
  2. Probar escenarios de descuento relacionados
  3. Verificar que el calculo total de orden no se rompio

Despues de una Actualizacion Menor

El equipo solicita: “Agregar boton ‘Limpiar Todo’ al centro de notificaciones.”

  1. Verificar que el boton aparece
  2. Verificar que al hacer click limpia todas las notificaciones
  3. Verificar que descartar notificaciones individuales sigue funcionando
  4. Verificar que el contador se actualiza

Despues de un Cambio de Configuracion

DevOps actualiza el pool de conexiones de BD de 10 a 50:

  1. Verificar que la app conecta a la BD
  2. Ejecutar operaciones intensivas en BD
  3. Verificar que no hay errores de timeout

Cuando NO Usar Sanity Testing

  • Como reemplazo de regresion. Es un chequeo rapido, no verificacion comprehensiva.
  • Para releases de features mayores. Cambios significativos necesitan testing de sistema y regresion.
  • Cuando el alcance del cambio no es claro. Si no sabes que afecta, haz testing mas amplio.

Como Realizar Sanity Testing

  1. Leer la descripcion del cambio — Que se cambio y por que?
  2. Reproducir el problema original (si fue bug fix) — Confirmar el fix
  3. Probar funcionalidad relacionada — 3-5 escenarios cercanos
  4. Buscar efectos secundarios obvios — UI correcta? Features cercanos funcionan?
  5. Tomar decision rapida — Proceder con testing mas profundo o devolver al desarrollador?

La Mentalidad del Sanity Testing

Requiere juicio experimentado. A diferencia de scripts de test, el sanity testing depende del conocimiento del tester para:

  • Identificar que es “funcionalidad relacionada”
  • Reconocer cuando algo “se ve mal” sin caso de prueba formal
  • Saber cuando parar versus escalar

Ejercicio: Decide Smoke, Sanity o Regresion

Para cada escenario, determina que tipo de testing es mas apropiado:

  1. Un nuevo build se desplego al ambiente QA esta manana
  2. Un desarrollador corrigio un bug donde “Exportar a CSV” descargaba archivo vacio
  3. El equipo prepara un release a produccion la proxima semana
  4. DevOps migro la app a un nuevo servidor
  5. Un desarrollador cambio el algoritmo de ordenamiento de busqueda
  6. La pagina de login se rediseno con nuevo branding, funcionalidad sin cambios
  7. Se aplico un parche de seguridad critico al modulo de autenticacion
  8. El build nocturno se completo a las 3 AM
PistaPreguntate: Estoy verificando si todo el build funciona (smoke), si un fix especifico funciona (sanity), o si todo sigue funcionando antes de un release (regresion)?
Solucion
  1. Smoke Testing — Nuevo build en QA. Verificar que el build es estable antes de que alguien empiece a probar.

  2. Sanity Testing — Bug especifico corregido. Verificar el fix exacto, probar escenarios de exportacion relacionados, verificar otros formatos.

  3. Regression Testing — Testing pre-release requiere verificacion comprehensiva de que funcionalidad existente no esta rota.

  4. Smoke Testing — Migracion de servidor cambia infraestructura, no codigo. Verificar que la app funciona en el nuevo servidor.

  5. Sanity Testing — Algoritmo especifico cambiado. Verificar que resultados siguen siendo precisos, probar varias consultas.

  6. Sanity + Regresion Dirigida — Rediseno UI sin cambio funcional. Sanity de que login funciona con nuevo diseno. Luego regresion dirigida del flujo de login.

  7. Sanity seguido de Regresion — Parches de seguridad son alto riesgo. Primero sanity de que autenticacion funciona. Luego regresion completa del modulo.

  8. Smoke Testing — Builds nocturnos deben activar smoke tests automatizados. Si pasan, el build esta listo para el equipo QA por la manana.

Flujo de Trabajo del Sanity Testing

graph TD CHANGE[Cambio Desplegado] --> SMOKE{Smoke Test
Paso?} SMOKE -->|No| REJECT[Rechazar Build] SMOKE -->|Si| SANITY[Sanity Testing
Verificar cambio] SANITY -->|Fix funciona| REGRESSION[Proceder a Regresion] SANITY -->|Fix no funciona| RETURN[Devolver al Desarrollador] SANITY -->|Nuevos issues| TRIAGE[Evaluar:
Bloquear o continuar?]

Tips Profesionales

Tip 1: Sanity es sobre confianza, no cobertura. No buscas cada problema posible. Construyes confianza suficiente de que el fix es razonable.

Tip 2: Documenta resultados. Aunque es informal, documenta que verificaste. Cuando el bug reaparezca en produccion, necesitas saber que se verifico.

Tip 3: Limita el tiempo. 15-30 minutos maximo. Si no puedes verificar en ese tiempo, el fix es mas complejo de lo esperado.

Conclusiones Clave

  • Sanity testing es verificacion estrecha y enfocada de un cambio especifico
  • Difiere del smoke (estabilidad amplia) y regresion (verificacion comprehensiva)
  • Realizado manualmente por QA experimentados usando juicio y conocimiento del sistema
  • Apropiado despues de bug fixes, actualizaciones menores y cambios de configuracion
  • No reemplaza regresion — es un chequeo rapido antes de testing mas profundo
  • Limitar a 15-30 minutos y documentar resultados