Pruebas de ruta y pruebas de ruta base en software con ejemplos

⚡ Resumen inteligente

Las pruebas de ruta base son una técnica de caja blanca que deriva casos de prueba a partir de las rutas lógicas a través de un programa, utilizando un gráfico de flujo de control y la complejidad ciclomática para encontrar el conjunto mínimo de rutas independientes.

  • 🗺️ Idea principal: Los casos de prueba provienen de la estructura del código, no del documento de requisitos.
  • 🔢 Cuatro pasos: Dibuja el grafo de flujo de control, calcula la complejidad ciclomática, deriva el conjunto base y escribe una prueba por cada ruta.
  • 📐 Número de casos de prueba: El número de caminos independientes es igual a la complejidad ciclomática, lo que proporciona un objetivo.
  • 🔄 Método híbrido: Combina pruebas de ramificación y pruebas de ruta para lograr la máxima cobertura con el mínimo de pruebas.
  • Garantía de cobertura: La ejecución del conjunto base ejecuta cada instrucción del módulo al menos una vez.
  • ⚠️ Límite conocido: No puede encontrar requisitos faltantes, porque solo prueba el código que ya existe.

Pruebas de ruta Pruebas de ruta básicas

¿Qué es la prueba de ruta en las pruebas de software?

La prueba de ruta es un método de prueba estructural que implica el uso del código fuente de un programa para encontrar todas las rutas ejecutables posibles. Ayuda a determinar todas las fallas que se encuentran dentro de un fragmento de código. Este método está diseñado para ejecutar todas las rutas o las seleccionadas a través de un programa de computadora.

Cualquier programa no trivial contiene múltiples rutas de ejecución posibles. Probarlas todas es difícil y requiere mucho tiempo, y la mayoría se superponen. Las pruebas de rutas base reducen esa redundancia al identificar el conjunto mínimo de rutas que aún ejecutan cada instrucción y cada bifurcación al menos una vez.

Pruebas de ruta básica en ingeniería de software

Prueba de ruta básica en ingeniería de software es una Blanco Box Pruebas Método en el que se definen casos de prueba en función de flujos o rutas lógicas que se pueden tomar a través del programa. El objetivo de las pruebas de rutas básicas es definir la cantidad de rutas independientes, de modo que la cantidad de casos de prueba necesarios se pueda definir explícitamente para maximizar la cobertura de la prueba.

In Ingeniería de softwareLa prueba de ruta básica implica la ejecución de todos los bloques posibles en un programa y logra la máxima cobertura de ruta con el menor número de casos de prueba. Es un método híbrido de pruebas de rama y métodos de prueba de ruta.

Un ejemplo sencillo hace que la idea sea más concreta.

Pruebas de ruta básica en ingeniería de software

El diagrama de flujo anterior contiene sentencias condicionales, por lo que el control puede llegar a la salida por más de una ruta. Se necesitan tres rutas independientes para cubrirlo:

  • 1 ruta: 1,2,3,5,6, 7
  • 2 ruta: 1,2,4,5,6, 7
  • 3 ruta: 1, 6, 7

Cómo dibujar un diagrama de flujo de control

Cada paso de las pruebas de la ruta base depende del gráfico de flujo de control, por lo que conviene ser preciso en cuanto a cómo se construye.

  • Nodo: Una secuencia de instrucciones que siempre se ejecutan juntas, representada como un círculo. Una secuencia de instrucciones sin bifurcación se reduce a un único nodo.
  • Edge: Una transferencia de control de un nodo al siguiente, representada por una flecha. Las aristas son la única vía de transferencia de control.
  • Nodo predicado: Un nodo que contiene una condición, con dos o más aristas que salen de él. Estos factores determinan el recuento de complejidad.
  • Provincia: un área delimitada por aristas y nodos. El número de regiones más uno también es igual a la complejidad ciclomática.

Consideremos un módulo corto con dos decisiones:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

El grafo tiene 6 nodos y 6 aristas, lo que da V(G) = 6 – 6 + 2 = 2 según la fórmula de las aristas. El conteo de predicados da la misma respuesta más rápidamente: 2 decisiones más 1 equivalen a 3 caminos independientes a través de las dos ramas tomadas en conjunto. Utilice la forma que le resulte más fiable y compárela con la otra.

Dos reglas que previenen la mayoría de los errores. Primero, una condición compuesta como si (x > 0 && y > 0) Se consideran dos nodos de predicado, no uno, porque el cortocircuito genera una segunda decisión. En segundo lugar, un bucle aporta un nodo de predicado independientemente del número de iteraciones.

Pasos para la prueba de rutas básicas

Los pasos básicos involucrados en las pruebas de ruta básica incluyen

  • Dibujar un gráfico de control (para determinar diferentes rutas del programa)
  • Calcular Complejidad ciclomática (métricas para determinar el número de caminos independientes)
  • Encuentre un conjunto básico de caminos
  • Generar Casos de prueba para ejercitar cada camino

Ventajas y limitaciones de las pruebas de ruta base

Ventajas de las pruebas de ruta base

  • Ayuda a reducir las pruebas redundantes.
  • Centra la atención en la lógica del programa.
  • Sustituye la selección arbitraria de casos de prueba por una base analítica.
  • Los casos de prueba que ejercitan el conjunto de bases ejecutarán cada declaración en un programa al menos una vez.

Limitaciones de las pruebas de ruta base

  • No puede encontrar el código que falta. Un requisito que nunca se implementó no tiene ruta definida, por lo que no se generará ninguna prueba para él. Las pruebas de ruta base deben combinarse con las pruebas basadas en requisitos.
  • El número de rutas aumenta rápidamente. Los bucles anidados y las condiciones compuestas aumentan rápidamente la complejidad, y un módulo con V(G) superior a 20 se vuelve poco práctico de cubrir de esta manera.
  • La cobertura no es sinónimo de exactitud. Ejecutar una ruta demuestra que el código se ejecuta, no que produce la respuesta correcta. Cada prueba aún necesita una aserción significativa.
  • Rutas dependientes de los datos. Algunos caminos solo son accesibles con combinaciones de datos de entrada específicas que pueden ser difíciles o imposibles de construir.

Preguntas Frecuentes

Las pruebas de ruta buscan ejecutar todas las rutas posibles, lo cual resulta poco práctico en cualquier módulo que contenga bucles. Las pruebas de ruta básicas ejecutan únicamente las rutas independientes, un conjunto mucho menor que, sin embargo, abarca todas las instrucciones y bifurcaciones.

Exactamente la complejidad ciclomática del módulo. Si V(G) es 4, entonces existen 4 rutas independientes y se necesitan 4 casos de prueba para una cobertura completa de las ramas.

No. Solo se prueba el código que ya existe, por lo que un requisito que nunca se implementó no genera ninguna ruta ni prueba fallida. Ambas técnicas son complementarias.

Las herramientas de IA generan valores de entrada que llegan a ramas específicas, que es la parte manual más lenta del trabajo. También señalan rutas inaccesibles que indican código muerto.

Sí. Las herramientas de análisis estático llevan años generando diagramas de flujo de control y cifras de complejidad, y ahora las herramientas con asistencia de IA añaden sugerencias de entrada para las pruebas en cada ruta independiente.

Resumir este post con: