3 min lectura • Guide 350 of 877
Estrategias de Automatización de Tests
Buena automatización de tests detecta bugs antes que los usuarios. Mala automatización es lenta, flaky, y se ignora. La meta es construir automatización en la que los equipos confían y mantienen. Esta guía cubre approaches prácticos para automatización de tests.
Pirámide de Testing
| Nivel | Velocidad | Costo | Cobertura |
|---|---|---|---|
| Unitario | Rápido | Bajo | Muchos |
| Integración | Medio | Medio | Algunos |
| E2E | Lento | Alto | Pocos |
Tipos de Tests
PIRÁMIDE DE TESTING
═══════════════════
▲
/E\ Tests E2E
/2E \ (pocos, lentos)
/─────\
/ \
/ Integra-\ Tests de Integración
/ ción \ (algunos, medio)
/─────────────\
/ \
/ Tests Unitarios\ Tests Unitarios
/ \ (muchos, rápidos)
/─────────────────────\
TESTS UNITARIOS:
─────────────────────────────────────
Propósito:
├── Prueban funciones/clases individuales
├── Aislados de dependencias
├── Ejecución rápida
├── Muchos tests
├── Fundación de automatización
└── Mayoría de tests
Características:
├── Corren en milisegundos
├── Sin dependencias externas
├── Sin base de datos, sin red
├── Mock de llamadas externas
├── Corren frecuentemente
└── Responsabilidad del developer
TESTS DE INTEGRACIÓN:
─────────────────────────────────────
Propósito:
├── Prueban interacciones de componentes
├── Base de datos real (instancia de test)
├── Llamadas API reales (a env de test)
├── Verifican que integraciones funcionan
└── Cobertura media
Manejo de Tests Flaky
TESTS FLAKY
═══════════
QUÉ HACER:
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. IDENTIFICAR: │
│ • Monitorear tests que fallan intermitentemente │
│ • Trackear historial de fallas │
│ │
│ 2. CUARENTENAR: │
│ • Mover a suite separada temporalmente │
│ • No bloquear CI mientras investigas │
│ │
│ 3. INVESTIGAR: │
│ • Problemas de timing/race conditions │
│ • Dependencias de orden de tests │
│ • State leaking entre tests │
│ │
│ 4. ARREGLAR O ELIMINAR: │
│ • Arreglar root cause │
│ • O eliminar si no vale la pena │
│ │
│ ❌ NUNCA: Ignorar tests flaky │
│ ❌ NUNCA: Re-run automático como "fix" │
│ │
└─────────────────────────────────────────────────────────────┘