3 min lectura • Guide 602 of 877
Mejores Prácticas de Estrategia de Test
Una estrategia de test sólida detecta bugs temprano, habilita refactoring confiado, y previene que regresiones lleguen a producción. La pirámide de testing—tests unitarios en la base, integración en el medio, E2E arriba—provee el balance correcto de velocidad y cobertura. GitScrum ayuda a equipos a trackear tareas de testing junto con trabajo de desarrollo, asegurando que calidad se construya en el proceso, no se agregue al final.
Tipos de Test
| Tipo | Velocidad | Alcance | Cantidad |
|---|---|---|---|
| Unitario | Rápido | Función/clase única | Muchos |
| Integración | Medio | Conexiones de componentes | Algunos |
| E2E | Lento | Flows completos de usuario | Pocos |
| Contrato | Rápido | Boundaries de API | Según necesidad |
| Performance | Lento | Carga/stress | Caminos clave |
Pirámide de Testing
ESTRUCTURA DE PIRÁMIDE DE TEST
FORMA DE PIRÁMIDE:
┌─────────────────────────────────────────────────┐
│ │
│ ┌─────────┐ │
│ │ E2E │ Pocos, lentos, críticos│
│ ┌──┴─────────┴──┐ │
│ │ Integración │ Algunos, moderados │
│ ┌──┴───────────────┴──┐ │
│ │ Unitarios │ Muchos, rápidos │
│ └─────────────────────┘ │
│ │
│ Buen balance: │
│ ├── 70% tests unitarios │
│ ├── 20% tests de integración │
│ └── 10% tests E2E │
└─────────────────────────────────────────────────┘
ANTI-PATRÓN - CONO DE HELADO:
┌─────────────────────────────────────────────────┐
│ ┌─────────────────────┐ │
│ │ Testing manual │ │
│ └───────┬─────────────┘ │
│ ┌────┴────┐ │
│ │ E2E │ Demasiados E2E │
│ └────┬────┘ │
│ ┌─────┴─────┐ │
│ │Integración│ │
│ └─────┬─────┘ │
│ ┌───┴───┐ │
│ │Unitario│ Muy pocos unitarios │
│ └───────┘ │
│ │
│ Problemas: CI lento, tests flaky, feedback largo│
└─────────────────────────────────────────────────┘
Testing Unitario
ESTRATEGIA DE TEST UNITARIO
QUÉ TESTEAR CON UNITARIOS:
┌─────────────────────────────────────────────────┐
│ Alta prioridad: │
│ ├── Lógica de negocio │
│ ├── Cálculos y transformaciones │
│ ├── Validación de entrada │
│ ├── Manejo de errores │
│ └── Edge cases │
│ │
│ Baja prioridad: │
│ ├── Getters/setters simples │
│ ├── Código generado │
│ └── Pass-through simple │
└─────────────────────────────────────────────────┘