Tipos de Cobertura
Code Coverage
Mide que lineas, branches y funciones del codigo fuente se ejecutan por tests automatizados.
Metricas: Line coverage, branch coverage, function coverage, statement coverage.
Requirements Coverage
Mide que requisitos de negocio tienen test cases correspondientes.
Herramientas de Code Coverage
| Herramienta | Lenguajes | Integracion |
|---|---|---|
| Istanbul/nyc | JavaScript/TypeScript | Jest, Mocha, Vitest |
| JaCoCo | Java | Maven, Gradle |
| coverage.py | Python | pytest |
| SonarQube | Multi-lenguaje | CI/CD dashboards |
Leyendo Reportes de Cobertura
Archivo | % Stmts | % Branch | % Funcs | % Lines |
------------------------|---------|----------|---------|---------|
src/auth/login.js | 95.2 | 88.0 | 100.0 | 95.0 |
src/payment/checkout.js | 45.0 | 30.0 | 50.0 | 44.2 |
login.jsal 95% esta bien testeadocheckout.jsal 45% esta criticamente sub-testeado para un modulo de pagos
Estableciendo Targets
| Area de Codigo | Target Sugerido | Razon |
|---|---|---|
| Pagos/financiero | 90%+ | Alto riesgo de negocio |
| Autenticacion/seguridad | 90%+ | Critico de seguridad |
| Logica de negocio core | 80%+ | Funcionalidad principal |
| Utilidades | 70%+ | Codigo compartido |
La Trampa del Coverage
No perseguir 100% ciegamente. Problemas: tests sin sentido que ejecutan sin verificar, testing de codigo trivial, ignorar otros tipos de testing.
Enfoque correcto: Foco en caminos criticos, logica de negocio y areas de riesgo.
Coverage en CI/CD
Configura quality gates para hacer cumplir minimos de cobertura. Rastrea tendencias — coverage nunca debe disminuir despues de un PR merge.
Ejercicio: Analiza un Reporte de Cobertura
Dado un reporte para e-commerce con payment/process al 42%, payment/refund al 15%, cart/checkout al 38%, identifica riesgos y recomienda acciones.
Solucion
Riesgos Criticos: payment/process y payment/refund sub-testeados — riesgo financiero directo. cart/checkout es el camino de ingresos.
Recomendaciones:
- Inmediato: Subir payment/process a 85%+ y refund a 80%+
- Este sprint: Subir cart/checkout a 80%+, enfocarse en branch coverage
- Proximo sprint: Subir cart/coupon branch de 60% a 75%+
- Quality gate: Nuevo codigo en pagos y checkout requiere 85%+
Puntos Clave
- Code coverage mide ejecucion; requirements coverage mide mapeo de requisitos
- Branch coverage es mas valioso que line coverage
- Enfocar targets en riesgo: modulos de pago y seguridad necesitan 90%+
- No perseguir 100% — enfocarse en assertions significativas
- Usar quality gates en CI/CD para prevenir regresion
- Reportes de cobertura identifican brechas — son herramientas diagnosticas