Com ciclomáticoplexidad en pruebas de software (ejemplo)

¿Qué es la comunicación ciclomática de McCabe?plex¿Qué?

Com ciclomáticoplexidad en pruebas de software es una métrica de prueba utilizada para medir la complexidad de un programa de software. Es una medida cuantitativa de rutas independientes en el código fuente de un programa de software. Com ciclomáticoplexLa ciudad se puede calcular utilizando gráficos de flujo de control o con respecto a funciones, módulos, métodos o clases dentro de un programa de software.

La ruta independiente se define como una ruta que tiene al menos un borde que no ha sido atravesado antes en ninguna otra ruta.

Esta métrica fue desarrollada por Thomas J. McCabe en 1976 y se basa en una representación del flujo de control del programa. El flujo de control representa un programa como un gráfico que consta de nodos y aristas.

En el gráfico, los nodos representan tareas de procesamiento, mientras que los bordes representan el flujo de control entre los nodos.

Com ciclomáticoplexidad en pruebas de software

Notación de gráfico de flujo para un programa:

La notación de gráfico de flujo para un programa define varios nodos conectados a través de los bordes. A continuación se muestran diagramas de flujo para declaraciones como if-else, While, Until y la secuencia normal de flujo.

Notación de gráfico de flujo para un programa.

Cómo calcular el Com ciclomáticoplexdad

Representación matemática:

Matemáticamente, es un conjunto de caminos independientes a través del diagrama gráfico. El código complexLa calidad del programa se puede definir usando la fórmula –

V(G) = E - N + 2

Dónde,

E – Número de aristas

N – Número de nodos

V (G) = P + 1

Donde P = Número de nodos predicados (nodo que contiene condición)

Ejemplo

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

El gráfico de flujo para este programa será

Com ciclomáticoplexGráfico de flujo de ciudad para este programa.

Calcular matemáticamente,

  • V(G) = 9 – 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (Los nodos de condición son 1,2, 3 y XNUMX nodos)
  • Conjunto básico: un conjunto de posibles rutas de ejecución de un programa.
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Propiedades de Cyclomatic complexidad:

Following son las propiedades de Cyclomatic complexidad:

  1. V (G) es el número máximo de caminos independientes en el gráfico.
  2. V (G) >=1
  3. G tendrá un camino si V (G) = 1
  4. Minimizar complexidad a 10

¿Cómo es útil esta métrica para las pruebas de software?

La prueba de Basis Path es una de White box técnica y garantiza ejecutar al menos una declaración durante la prueba. Comprueba cada ruta linealmente independiente a través del programa, que significa número de casos de prueba, será equivalente a la com ciclomáticaplexidad del programa.

Esta métrica es útil debido a las propiedades de Cyclomatic com.plexidad (M) –

  1. M puede ser el número de casos de prueba para lograr la cobertura de sucursales (límite superior)
  2. M puede ser el número de caminos a través de los gráficos. (Límite inferior)

Considere este ejemplo:

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

Com ciclomáticoplexLa calidad para este programa será 8-7+2=3.

como complexity se ha calculado como 3, se necesitan tres casos de prueba para completar la cobertura de ruta para el ejemplo anterior.

Pasos a seguir:

El following Se deben seguir los pasos para calcular Cyclomatic com.plexDiseño de datos y casos de prueba.

Paso 1 – Construcción de grafo con nodos y aristas a partir del código.

Paso 2 – Identificación de caminos independientes

Paso 3 – Com ciclomáticoplexCálculo de idad

Paso 4 – Diseño de Casos de Prueba

Una vez formado el conjunto básico, CASOS DE PRUEBA debe escribirse para ejecutar todas las rutas.

Más sobre V (G):

Com ciclomáticoplexLa velocidad se puede calcular manualmente si el programa es pequeño. Es necesario utilizar herramientas automatizadas si el programa es muy complex ya que esto implica más diagramas de flujo. Basado en complexnúmero de ciudad, el equipo puede concluir sobre las acciones que deben tomarse para medir.

Following La tabla ofrece una descripción general de la com.plexNúmero de entidad y significado correspondiente de v (G):

¿CómoplexNúmero de ciudad Sentido
1-10 Código estructurado y bien escrito.

Alta capacidad de prueba

El costo y el esfuerzo son menores

10-20 ¿Cómoplex Código

Capacidad de prueba media

El costo y el esfuerzo son medios.

20-40 muy complex Código

Baja capacidad de prueba

El costo y el esfuerzo son altos

> 40 Nada comprobable

Costo y esfuerzo muy altos

Herramientas para comunicación ciclomáticaplexCálculo de la ciudad:

Hay muchas herramientas disponibles para determinar la complexidad de la aplicación. algunos complexLas herramientas de cálculo de la calidad se utilizan para tecnologías específicas. ComplexLa entidad se puede encontrar por el número de puntos de decisión en un programa. Los puntos de decisión son declaraciones if, for, for-each, while, do, catch, case en un código fuente.

Ejemplos de herramientas son

  • OCLint – Analizador de código estático para C y lenguajes relacionados.
  • Complemento Reflector: métricas de código para ensamblados .NET
  • GMetrics – Encuentra métricas en Java aplicaciones relacionadas

Usos del Com ciclomáticoplexidad:

Com ciclomáticoplexity puede resultar muy útil en

  • Ayuda a los desarrolladores y evaluadores a determinar ejecuciones de rutas independientes
  • Los desarrolladores pueden asegurar que todas las rutas han sido probadas al menos una vez.
  • Nos ayuda a centrarnos más en los caminos descubiertos.
  • Mejorar la cobertura del código en Ingeniería de Software
  • Evaluar el riesgo asociado con la aplicación o programa.
  • El uso de estas métricas al principio del ciclo reduce el riesgo del programa.

Conclusión:

Com ciclomáticoplexLa idad es una métrica de software útil para estructuras estructuradas o Blanco Box Pruebas . Se utiliza principalmente para evaluar complexidad de un programa. Si hay más puntos de decisión, entonces complexLa calidad del programa es mayor. Si el programa tiene alta complexnúmero de ciudad, entonces la probabilidad de error es alta con un mayor tiempo para el mantenimiento y la resolución de problemas.