Saltar al contenido principal

Reglas mínimas de testing backend

Objetivo

Este documento define reglas mínimas de testing para backend, estableciendo expectativas claras sobre qué tipos de pruebas deben existir y qué riesgos deben cubrirse.

El objetivo no es cobertura absoluta, sino:

  • Reducir regresiones
  • Detectar errores temprano
  • Proteger decisiones críticas
  • Hacer del testing una práctica natural

Un backend sin tests confía en la suerte.

El rol real del testing

El testing no existe para:

  • Complacer métricas
  • Satisfacer herramientas
  • Dar falsa seguridad

Existe para reducir incertidumbre.

Cada test responde implícitamente: ¿Qué error estoy tratando de evitar?

Niveles mínimos de testing

1. Tests unitarios

Protegen:

  • Lógica de negocio
  • Reglas del dominio
  • Casos límite

Deben ser:

  • Rápidos
  • Deterministas
  • Aislados

Si la lógica no se puede testear, probablemente está mal diseñada.

2. Tests de integración

Protegen:

  • Integración con base de datos
  • Configuración real
  • Contratos internos

Son más lentos, pero descubren errores reales.

3. Tests de contrato

Protegen:

  • APIs públicas
  • Expectativas de consumidores
  • Cambios incompatibles

Aquí se valida que el contrato prometido siga cumpliéndose.

Cobertura como consecuencia, no como objetivo

Una cobertura alta no garantiza calidad. Una cobertura baja en puntos críticos sí es un riesgo.

Lo importante es:

  • Qué se prueba
  • Por qué se prueba
  • Qué riesgo se cubre

Antipatrones comunes

  • Tests frágiles
  • Tests que replican implementación
  • Falta total de tests en lógica crítica
  • Confiar solo en tests manuales

Un sistema sin tests obliga a desplegar con miedo.

Cierre conceptual

El testing backend es una red de seguridad, no una jaula.

Cuando está bien diseñado:

  • Permite cambiar sin miedo
  • Detecta errores temprano
  • Protege la estabilidad del sistema

Un backend profesional no pregunta si necesita tests. Pregunta qué riesgos necesita cubrir.