Saltar al contenido

Lección de cubierta de código: rama, declaración, decisión, FSM

¿Cuál es la portada del Código?

Una cobertura de código es una medida que describe hasta qué punto se ha probado el código fuente del programa. Es un tipo de prueba de caja blanca que detecta áreas de programa que no realizan un conjunto de casos de prueba. También crea varios casos de prueba para aumentar la cobertura y determinar la medición cuantitativa de la cobertura del código.

En la mayoría de los casos, el sistema de cobertura de códigos recopila información sobre el programa actual. Esto también se combina con la información del código fuente para generar un informe bajo la cubierta del código del conjunto de pruebas.

En este tutorial, aprenderá:

¿Por qué utilizar Code Cover?

A continuación, se incluyen algunas razones clave para utilizar la cobertura de código:

Métodos de cobertura de código

Los siguientes son los principales métodos de cobertura de código

Cubierta de declaración es una técnica de prueba de caja blanca en la que todas las declaraciones ejecutables en el código fuente se ejecutan al menos una vez. Se utiliza para calcular el número de declaraciones en el código fuente completo. El propósito principal de la cobertura de declaraciones es rastrear todas las rutas, líneas y declaraciones posibles en el código fuente.

La cobertura de la declaración se utiliza para derivar un caso basado en la estructura del código que se está probando.

I Prueba de caja blanca, el probador se centra en cómo funciona el software. Es decir, el probador se centrará en el funcionamiento interno del código fuente en gráficos de flujo controlados o diagramas de flujo.

Generalmente en cualquier software, si nos fijamos en el código fuente, habrá una amplia gama de elementos como operadores, funciones, doblado, manejadores excepcionales, etc. Según la entrada en el programa, es posible que no se ejecuten algunas sentencias de código. El propósito de la cubierta de la Declaración es cubrir todas las rutas, líneas y declaraciones posibles en el código.

Entendemos esto con un ejemplo, cómo calcular la cobertura del estado de cuenta.

Caso para calcular la cobertura del estado de cuenta para el código fuente dado. Estamos tomando dos casos diferentes aquí para verificar el porcentaje de cobertura del estado de cuenta para cada caso.

Código fuente:


Prints (int a, int b) {                       ------------  Printsum is a function 
    int result = a+ b; 
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
    }                                        -----------   End of the source code 

Caso 1:

Si A = 3, B = 9

Las declaraciones marcadas según la historia son las declaraciones marcadas en amarillo.

Número de declaraciones ejecutadas = 5, Número total de declaraciones = 7

Cobertura de la declaración: 5/7 = 71%

De manera similar veremos el caso 2,

Caso 2:

Si A = -3, B = -9

Las declaraciones marcadas según la historia son las declaraciones marcadas en amarillo.

Número de sentencias de ejecución = 6

Número total de declaraciones = 7

Cobertura de la declaración: 6/7 = 85%

Pero en general, si ve, todas las declaraciones están cubiertas por 2Dakota del Norte casos tomados en cuenta. Entonces podemos concluir que la cobertura general de declaraciones es del 100%.

¿Qué cubre la cubierta de declaración?

  1. Declaraciones no utilizadas
  2. Código muerto
  3. Ramas no utilizadas
  4. Declaraciones faltantes

Cobertura de decisiones Es una técnica de prueba de caja blanca que informa resultados verdaderos o falsos de cada expresión booleana del código fuente. El propósito de la prueba de cobertura de decisiones es cubrir y validar todo el código fuente accesible comprobando y asegurando que cada rama de cada punto de decisión potencial se ejecute al menos una vez.

En esta portada, las expresiones a veces son complicadas. Por tanto, es muy difícil conseguir una cobertura del 100%. Es por eso que existen muchos métodos diferentes para informar esta métrica. Todos estos métodos se centran en cubrir las combinaciones más importantes. Es muy similar a la cobertura de decisiones, pero ofrece una mayor sensibilidad al control de flujo.

Ejemplo de cobertura de decisiones

Considere el siguiente código:


Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }

Caso 1:

El valor de 2 es

Se ejecutará el código resaltado en amarillo. Este es el resultado “No” de la decisión si se marca (a> 5).

Cobertura de decisiones = 50%

Caso 2:

El valor es 6

Se ejecutará el código resaltado en amarillo. Este es el resultado “Sí” de la decisión si se marca (a> 5).

Cobertura de decisiones = 50%

Caso de pruebaValor A.ProducciónCobertura de decisiones
12250%
261850%

Cubierta de rama es un método de prueba de caja blanca en el que se prueban todos los resultados de un módulo de código (declaración o bucle). El propósito de la cobertura de sucursales es garantizar que todas las condiciones de decisión de cada sucursal se ejecuten al menos una vez. Ayuda a medir fracciones de partes independientes de código e identificar secciones que no tienen ramas.

Por ejemplo, si los resultados son binarios, debe probar los resultados de Verdadero y Falso.

Fórmula para calcular la cobertura de sucursales:

Ejemplo de cubierta de rama

Para conocer la cobertura de sucursales, consideremos el mismo ejemplo que usamos anteriormente.

Considere el siguiente código


Demo(int a) {                       
     If (a> 5)
    	a=a*3
     Print (a)
    }                                       

Branch Cover también considerará una rama incondicional

Caso de pruebaValor A.ProducciónCobertura de decisionesCubierta de rama
12250%33%
261850%67%

Beneficios de la cobertura de sucursales:

Las pruebas de cobertura de sucursales tienen las siguientes ventajas:

  • Te permite validar todas las ramas en el código.
  • Ayuda a garantizar que ninguna rama dé lugar a anomalías en el funcionamiento del programa.
  • El método de cobertura de sucursales elimina los problemas que ocurren debido a las pruebas de cobertura de declaraciones.
  • Le permite encontrar aquellas áreas que no han sido probadas por otros métodos de prueba.
  • Le permite obtener una medición cuantitativa de la cobertura del código.
  • La cobertura de la rama ignora las ramas dentro de las expresiones booleanas

Cobertura condicional o cobertura de expresión es un método de prueba utilizado para probar y evaluar las variables o sub-expresiones en la declaración condicional. El propósito de la cobertura de condiciones es verificar los resultados individuales para cada condición lógica. La cobertura de condiciones proporciona una mayor sensibilidad al flujo de control que la cobertura de decisiones. En esta portada, solo se consideran expresiones con óperas lógicas.

Por ejemplo, si una expresión tiene operaciones booleanas como AND, OR, XOR, lo que indica todas las posibilidades.

La cobertura de afecciones no garantiza la cobertura total de las decisiones.

Fórmula de cobertura de citas:

Ejemplo:

Para la expresión anterior, tenemos 4 combinaciones posibles

Considere la siguiente entrada

X = 3

Y = 4

(X

CIERTO

La cobertura de la condición es ¼ = 25%

A = 3

B = 4

(a> b)

FALSO

Cubierta de máquina de estado terminada

La cobertura limitada de máquinas de estado es sin duda el tipo más complejo de cobertura de código. Esto se debe a que actúa sobre el comportamiento del diseño. En este modo de cobertura, debe observar cuántos estados específicos de tiempo se visitan y cuáles se transfieren. También comprueba cuántas secuencias se incluyen en una máquina de estado limitada.

Qué tipo de código de cobertura elegir

Sin duda, esta es la respuesta más difícil de dar. Para seleccionar un método de recubrimiento, el probador debe verificar que el

Cuanto mayor sea la probabilidad de que costosas fallas de producción resulten en defectos, más estricto será el nivel de cobertura que debe elegir.

Cobertura de código frente a cobertura funcional

Cobertura de códigoCobertura funcional
La cubierta del código le dice qué tan bien su banco de pruebas realizó el código fuente.La cobertura funcional mide qué tan bien su banco de pruebas ha cubierto la funcionalidad del diseño.
Nunca use una especificación de diseñoUtilice la especificación de diseño
Hecho por desarrolladoresHecho por probadores

Herramientas de cubierta de código

Aquí hay una lista de herramientas importantes para la cobertura del código:

Nombre de la herramientaSuelte
CoberturaEs una herramienta de cobertura de código fuente abierto. Mide la cobertura de la prueba ingresando un código y analizando las líneas de código que están en funcionamiento y no se ejecutan cuando se ejecuta la suite de pruebas.
TrébolClover reduce el tiempo de prueba simplemente ejecutando las pruebas que cubren el código de la aplicación modificado con respecto a la compilación anterior.
DevPartnerDevPartner permite a los desarrolladores analizar el código Java para determinar la calidad y complejidad del código.
EmmaEMMA admite la cobertura de clase, método, línea y bloque base, archivo fuente agregado, niveles de clase y método.
KalistickKalistick es una aplicación de terceros que analiza los códigos con diferentes perspectivas.
CoView y CoAntEl software de codificación es una herramienta de codificación de código para métricas, pseudo-creación de objetos, competencia de código, cobertura de ruta y rama, etc.
Bullseye hacer C ++BulseyeCoverage es una herramienta de cobertura de código para C ++ y C.
SonarSonar es una herramienta de codificación de código abierto que le ayuda a gestionar la calidad del código.

Beneficios de usar la cobertura de código

Las desventajas de usar la cobertura de código

Resumen

Deja una respuesta

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