Porcentaje de líneas de código cubiertos por los tests.
Imagen de: http://www.cafeaulait.org/slides/albany/codecoverage/Measuring_JUnit_Code_Coverage.html
Mide la complejidad de un método en base al número de posibles caminos de código que hay dentro del método. Intenta ser una medida, por lo tanto, del mínimo número de tests necesarios para cubrir todos los posibles caminos.
https://dx42.github.io/gmetrics/metrics/CyclomaticComplexityMetric
Se considera una medida del "riesgo" que tiene una función de introducir bugs ante cambios en la misma.
Imagen de: http://www.cafeaulait.org/slides/albany/codecoverage/Measuring_JUnit_Code_Coverage.html
Mide lo complejo que es de entender un método.
https://www.sonarsource.com/resources/white-papers/cognitive-complexity.html
El índice CRAP se calcula en base a la complejidad ciclomática y a la cobertura de código. Está diseñado para analizar y predecir la cantidad de esfuerzo, dolor y tiempo requerido para mantener un trozo de código.
Aquel código que no sea muy complejo y esté bien cubierto por los tests, tendrá un índice CRAP bajo. El CRAP se puede reducir, por lo tanto, escribiendo tests y refactorizando el código para reducir la complejidad
Un método con un índice CRAP de más de 30 se considera CRAPpy (es decir, inaceptable, ofensivo, etc.).
https://dx42.github.io/gmetrics/metrics/CrapMetric
- Importancia de los nombres de los tests. Debe comunicar la especificación o caso de uso concreto que está probando.
- Importancia de que cada tests se dedique a una úncia especificación