Acerca de esta herramienta
Hay tres cifras distintas que se llaman «cobertura», y responden a preguntas diferentes. La cobertura de requisitos pregunta si cada requisito tiene una prueba. La cobertura de ejecución pregunta cuánto de lo planificado se ejecutó y pasó realmente. La cobertura de código pregunta qué código se ejecutó mientras corrían los tests automatizados. Esta calculadora maneja las tres y muestra cada fórmula. Para la cobertura de código, introduce los cuatro porcentajes de tu informe de Istanbul, Vitest, Jest, JaCoCo o coverage.py y un umbral: marca qué métricas no superan el corte y señala patrones, como una cobertura de ramas muy por debajo de la de líneas, que suele indicar que los caminos de error y las ramas else no están probados. También explica lo que la cobertura no puede decirte.
Cómo usarla
- Elige la calculadora: cobertura de requisitos, de ejecución o de código.
- Introduce los recuentos o porcentajes; los resultados se actualizan mientras escribes.
- Para la cobertura de código, define el umbral que aplica tu CI y lee las conclusiones.
- Copia el resumen para un informe de estado.
Preguntas frecuentes: Calculadora de cobertura de pruebas
¿Es el 100 % de cobertura de código un buen objetivo?
Pocas veces. Los últimos puntos porcentuales suelen ser código defensivo costoso de alcanzar, y un 100 % de cobertura sigue sin demostrar que las assertions tengan sentido. Muchos equipos fijan el corte en el 70–90 % y revisan el código no cubierto en las pull requests.
¿Por qué la cobertura de ramas es más baja que la de líneas?
Una línea con un if cuenta como cubierta cuando se ejecuta una vez, pero la cobertura de ramas necesita los resultados verdadero y falso. Una gran diferencia significa que muchas condiciones solo se prueban en un sentido, a menudo el camino feliz.
¿Cómo sé si mis tests comprueban algo de verdad?
El mutation testing (por ejemplo Stryker para JavaScript o PIT para Java) modifica ligeramente tu código y comprueba si algún test falla. Los mutantes que sobreviven muestran código que se ejecuta durante las pruebas pero que no se verifica realmente.