Complejidad ciclomática

La complejidad ciclomática de una sección de código es la medida cuantitativa del número de caminos linealmente independientes en ella. Es una métrica de software utilizada para indicar la complejidad de un programa. Se calcula utilizando el gráfico de flujo de control del programa. Los Nodes en el gráfico indican el grupo más pequeño de comandos de un programa, y ​​un borde dirigido conecta los dos Nodes, es decir, si el segundo comando podría seguir inmediatamente al primero. 

Por ejemplo, si el código fuente no contiene una declaración de flujo de control, entonces su complejidad ciclomática será 1 y el código fuente contiene una sola ruta. De manera similar, si el código fuente contiene una condición if , entonces la complejidad ciclomática será 2 porque habrá dos caminos, uno para verdadero y otro para falso. 

Matemáticamente, para un programa estructurado, el grafo dirigido dentro del flujo de control es la arista que une dos bloques básicos del programa ya que el control puede pasar del primero al segundo. 
Entonces, la complejidad ciclomática M se definiría como, 

METRO = E – N + 2P 

donde, 
E = el número de aristas en el gráfico de flujo de control 
N = el número de Nodes en el gráfico de flujo de control 
P = el número de componentes conectados 
 

Los pasos que se deben seguir para el cálculo de la complejidad ciclomática y el diseño de casos de prueba son: 
 

  • Construcción de grafo con Nodes y aristas a partir de código.
  • Identificación de caminos independientes.
  • Cálculo de la Complejidad Ciclomática
  • Diseño de Casos de Prueba

Dejemos una sección de código como tal: 
 

A = 10
   IF B > C THEN
      A = B
   ELSE
      A = C
   ENDIF
Print A
Print B
Print C

Gráfico de flujo de control del código anterior

cyclomatic-complexity

La complejidad ciclomática calculada para el código anterior será del gráfico de flujo de control. El gráfico muestra siete formas (Nodes), siete líneas (bordes), por lo que la complejidad ciclomática es 7-7+2 = 2. 

Uso de la Complejidad Ciclomática: 
 

  • Determinar las ejecuciones de rutas independientes demostró ser muy útil para desarrolladores y probadores.
  • Puede asegurarse de que cada ruta haya sido probada al menos una vez.
  • Así ayuda a centrarse más en los caminos descubiertos.
  • La cobertura del código se puede mejorar.
  • Se puede evaluar el riesgo asociado con el programa.
  • Estas métricas que se utilizan anteriormente en el programa ayudan a reducir los riesgos.

Ventajas de la Complejidad Ciclomática: .

  • Se puede usar como una métrica de calidad, brinda una complejidad relativa de varios diseños.
  • Es capaz de calcular más rápido que las métricas de Halstead.
  • Se utiliza para medir el esfuerzo mínimo y las mejores áreas de concentración para la prueba.
  • Es capaz de guiar el proceso de prueba.
  • Es facil de aplicar.

Desventajas de la Complejidad Ciclomática:

  • Es la medida de la complejidad de control de los programas y no los datos la complejidad de los datos.
  • En esto, las estructuras condicionales anidadas son más difíciles de entender que las estructuras no anidadas.
  • En el caso de comparaciones simples y estructuras de decisión, puede dar una cifra engañosa.

Referencia: https://en.wikipedia.org/wiki/Cyclomatic_complexity 

Publicación traducida automáticamente

Artículo escrito por akash1295 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *