Historia de la pregunta:
La cobertura de pruebas automáticas (test coverage) es una de las principales métricas de calidad de las pruebas. Las estrategias de cobertura surgieron en los inicios del desarrollo de la automatización, cuando el número de pruebas comenzó a crecer rápidamente y se volvió imposible rastrear manualmente los escenarios no cubiertos. Desde entonces, los enfoques han evolucionado desde intuitivos hasta analíticos estrictos, incluyendo el uso de trazabilidad de requisitos, herramientas de cobertura de código y control de la técnica de la pirámide de pruebas.
Problema:
Solución:
Características clave:
¿Puede un alto porcentaje de cobertura de código garantizar completamente la calidad del producto?
No, no se puede. Un alto porcentaje de cobertura de código (por ejemplo, 95%) a menudo significa que solo se han "cubierto" ciertas partes del código con pruebas, pero esto no garantiza la verificación de la corrección de la lógica de negocio o de los escenarios de uso.
¿Debería buscarse un 100% de cobertura de código siempre?
No. Buscar la cobertura del 100% aumenta el costo de mantenimiento, y a veces se requiere escribir pruebas para partes insignificantes o inalcanzables. Es mejor priorizar en base al riesgo y beneficio.
¿Es suficiente usar solo pruebas unitarias para garantizar una cobertura confiable?
No. Las pruebas unitarias no cubren los escenarios de integración y la interacción de componentes. Necesitas combinar diferentes tipos de pruebas de acuerdo con la pirámide de pruebas.
El equipo implementó un pipeline con un 90% de cobertura obligatoria de pruebas para cada pull request. Como resultado, comenzaron a aparecer pruebas "vacías" que cubrían líneas, pero no escenarios. Los errores en la lógica de negocio quedaron sin detectar.
Ventajas:
Desventajas:
El equipo estableció una estrategia de cobertura utilizando una matriz de trazabilidad y pruebas basadas en riesgos: la funcionalidad más crítica está cubierta por E2E, y la menos importante, por pruebas unitarias. Una vez al mes se realiza una auditoría de la cobertura basada en escenarios.
Ventajas:
Desventajas: