Estrategias de Testing
Enfoques y niveles de testing para validar que el software funciona correctamente, desde unit tests hasta tests end-to-end y testing en producción.
seed#testing#unit-tests#integration#e2e#tdd#quality
¿Qué es?
Las estrategias de testing definen qué tipos de tests escribir, cuántos, y cómo organizarlos para maximizar la confianza en el código con el menor costo de mantenimiento.
Pirámide de testing
/\ E2E (pocos, lentos, frágiles)
/ \
/----\ Integration (algunos)
/ \
/--------\ Unit (muchos, rápidos, estables)
Tipos de tests
| Tipo | Qué prueba | Velocidad | Fragilidad |
|---|---|---|---|
| Unit | Función/clase aislada | Muy rápido | Baja |
| Integration | Componentes juntos | Medio | Media |
| E2E | Flujo completo de usuario | Lento | Alta |
| Contract | APIs entre servicios | Rápido | Baja |
Enfoques
| Enfoque | Mecanismo | Cuándo usar |
|---|---|---|
| TDD | Escribir test antes del código | Lógica de negocio, algoritmos |
| BDD | Tests como especificaciones de comportamiento | Requisitos de usuario, aceptación |
| Property-based | Generar inputs aleatorios, verificar invariantes | Parsers, serialización, edge cases |
| Snapshot | Comparar output con versión guardada | UI components, respuestas de API |
Testing en producción
- Feature flags para rollout gradual
- Canary deployments
- Observabilidad para detectar problemas
¿Por qué importa?
Una estrategia de testing efectiva equilibra velocidad, cobertura y confianza. Demasiados tests unitarios sin integración dan falsa seguridad. Demasiados tests e2e son lentos y frágiles. La pirámide de testing proporciona el framework para encontrar el balance correcto.
Referencias
- Testing Trophy — Kent C. Dodds.
- The Practical Test Pyramid — Ham Vocke, 2018. Guía práctica de la pirámide de testing.
- Testing Library — Testing Library, 2024. Herramientas de testing centradas en el usuario.