Complejidad ciclomática

Me encantan los daily meetings con el equipo técnico, porque siempre aprendes algo nuevo sobre tecnología. Siempre sale alguna palabreja nueva, me gusta apuntarlas e investigar. Ésta en concreto, complejidad ciclomática, me pareció muy cool. Está relacionada con los test unitarios y es una métrica que se utiliza para cuantificar la complejidad del programa que estamos desarrollando.

La idea de esta métrica NO es contar los bucles (for, while, do…) en el código de un programa, SINÓ la de definir el número de caminos independientes dentro de un fragmento de código y determina la cota superior del número de pruebas que se deben realizar para asegurar que se ejecuta cada sentencia al menos una vez. Cuando ésta es alta, se hace muy difícil probar, entender y modificar cualquier pieza de software. De aquí que esta métrica se utilice mucho en los Análisis de riesgo de cambio durante la fase de mantenimiento. La complejidad del código tiende a incrementarse a medida que el código se modifica. Así, si se calcula antes y después de tocar código, podemos ver si la modificación altera mucho la complejidad.

Una de las herramienta más usadas para medir la Complejidad ciclomática es SonarQube y se puede configurar definiendo unos límites, para evaluar si el código se va complicando a medida que vamos avanzando en el desarrollo.