Saltar al contenido

Calcular con un diagrama de flujo (ejemplo)

Para comprender la complejidad del ciclismo, primero comprenda:

¿Qué es el software métrico?

La medición es solo una indicación cuantitativa del tamaño / dimensión / capacidad de una característica de producto / proceso. Las métricas de software se definen como una medida cuantitativa de las características de un sistema de software en términos de costo, calidad, tamaño y cronograma.

Muestra

Measure - No. of Errors
Metrics - No. of Errors found per person

En este tutorial, aprenderá:

Complejidad cíclica en las pruebas de software

Complejidad cíclica en las pruebas de software es una métrica de prueba que se utiliza para medir la complejidad de un programa de software. Es una medida cuantitativa de rutas independientes en el código fuente del programa de software. La complejidad cíclica se puede calcular utilizando gráficos de flujo controlados o para funciones, módulos, métodos o clases dentro de un programa de software.

Un sendero independiente se define como un sendero con al menos un borde que no ha sido cruzado previamente en ningún otro sendero.

Esta métrica fue desarrollada por Thomas J. McCabe en 1976 y se basa en una representación de flujo controlado en el programa. Los flujos de control muestran un programa como un gráfico que consta de nodos y márgenes.

En el gráfico, los nodos representan tareas de procesamiento y los bordes representan un flujo controlado entre los nodos.

Nota del diagrama de flujo para el programa:

La notación de gráfico de flujo para un programa define una cantidad de nodos conectados por los bordes. A continuación se muestran los diagramas de flujo para declaraciones como, ¿Quién más ?, y la secuencia de flujo normal.

Cómo calcular la complejidad del ciclismo

Representación matemática:

Matemáticamente, está organizado por caminos independientes a través del diagrama gráfico. La complejidad del código del programa se puede definir mediante la fórmula:

V(G) = E - N + 2

Dónde,

E – Número de aristas

N – Número de nodos

V (G) = P + 1

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

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;
i=i+1;

end do;

Habrá un diagrama de flujo para este programa

Computación matemática,

Propiedades de la complejidad cíclica:

Las propiedades de la complejidad cíclica son las siguientes:

  1. V (G) es el número máximo de caminos independientes en el gráfico
  2. V (G)> = 1
  3. G tendrá una ruta si V (G) = 1
  4. Minimiza la complejidad a 10

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

La prueba Foundation Path es una de las técnicas de caja blanca y garantiza la ejecución de al menos una declaración durante la prueba. Comprueba todas las rutas lineales independientes a través del programa, un casos de prueba significan números, deberán ser iguales a la complejidad cíclica del programa.

Esta métrica es útil para propiedades de complejidad cíclica (M) –

  1. El número de casos de prueba para lograr la cobertura de sucursales puede ser M (límite superior)
  2. M puede ser el número de trayectorias 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

La complejidad cíclica de este programa será 8-7 + 2 = 3.

Dado que la complejidad es 3 para calcular, se requieren tres casos de prueba para obtener la cobertura de ruta completa para la muestra anterior.

Pasos a seguir:

Se deben seguir los siguientes pasos para calcular la complejidad cíclica y el diseño del caso de prueba.

Paso 1 – Construir un gráfico con nodos y bordes a partir del código.

Paso 2 – Identificar caminos independientes

Paso 3 – Cálculo de la complejidad del ciclo

Paso 4 – Diseño de casos de prueba

Una vez hecho el conjunto básico, se deben escribir TEST CASES para ejecutar todas las rutas.

Más información sobre V (G):

La complejidad cíclica se puede calcular manualmente si el programa es pequeño. Es necesario utilizar herramientas de automatización si el programa es muy complejo, ya que implica más gráficos de flujo. Según el número de complejidad, el equipo puede sacar conclusiones sobre las medidas necesarias para realizar una medición.

La siguiente tabla ofrece una descripción general de la complejidad correspondiente y el significado del número v (G):

Número de complejidad Significado
1-10 Código bien estructurado y escrito

Alta testabilidad

Menor costo y esfuerzo

10-20 Código complejo

Adaptabilidad media

El costo y el esfuerzo son medianos

20-40 Código muy complejo

Baja probabilidad

El costo y el esfuerzo son altos

> 40 No se puede probar en absoluto

Muy alto costo y esfuerzo

Herramientas para calcular la complejidad del ciclismo:

Hay muchas herramientas disponibles para determinar la complejidad de la aplicación. Se utilizan varias herramientas de cálculo de complejidad para tecnologías específicas. La complejidad se puede encontrar por el número de puntos de decisión en un programa. Sin embargo, los puntos de decisión son si, para todos, aceptan declaraciones de casos en el código fuente.

Hay ejemplos de herramientas

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

Usos de la complejidad del ciclismo:

La complejidad ciclista es de gran ayuda

Conclusión:

La complejidad del ciclo es una métrica de software que es útil para estructuras o Prueba de caja blanca. Se utiliza principalmente para evaluar la complejidad del programa. Cuantos más puntos de decisión, mayor será la complejidad del programa. Si el programa tiene un alto número de complejidad, entonces existe una alta probabilidad de error con más tiempo para el mantenimiento y la resolución de problemas.

Entradas relacionadas

Deja una respuesta

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