Code Herramienta de cobertura: Pruebas de sentencias, bifurcaciones y decisiones
โก Resumen inteligente
Code La cobertura es una medida de caja blanca que informa el grado en que el cรณdigo fuente ha sido ejercitado por un conjunto de pruebas,ping Los equipos localizan sentencias, ramificaciones, condiciones y rutas no probadas que pueden contener defectos ocultos.

ยฟQuรฉ es Code ยฟCobertura?
Code cobertura es una medida que describe el grado en que se ha probado el cรณdigo fuente de un programa. Es una forma de pruebas de caja blanca Este mรฉtodo identifica las รกreas de un programa que no han sido probadas por un conjunto de casos de prueba. Ademรกs, ayuda a crear casos de prueba adicionales para aumentar la cobertura y determinar una medida cuantitativa de la cobertura del cรณdigo.
En la mayorรญa de los casos, un sistema de cobertura de cรณdigo recopila informaciรณn sobre el programa en ejecuciรณn. Luego, combina esa informaciรณn con la del cรณdigo fuente para generar un informe sobre la cobertura de cรณdigo del conjunto de pruebas.
Por quรฉ usar Code ยฟPruebas de cobertura?
Estas son algunas de las razones principales para utilizar la cobertura de cรณdigo:
- Ayuda a medir la eficiencia de la implementaciรณn de las pruebas.
- Ofrece una mediciรณn cuantitativa de las pruebas.
- Define el grado en que se ha probado el cรณdigo fuente.
Code Mรฉtodos de cobertura
Los siguientes son los principales mรฉtodos de cobertura de cรณdigo:
- Cobertura de estados de cuenta
- Cobertura de decisiones
- Cobertura de sucursales
- TogglCobertura
- Cobertura MEV
Cobertura de estados de cuenta
Cobertura de estados de cuenta Es una tรฉcnica de prueba de caja blanca en la que todas las instrucciones ejecutables del cรณdigo fuente se ejecutan al menos una vez. Se utiliza para calcular el nรบmero de instrucciones ejecutadas en el cรณdigo fuente. El objetivo principal de la cobertura de instrucciones es abarcar todas las rutas, lรญneas e instrucciones posibles del cรณdigo fuente.
La cobertura de sentencias se utiliza para derivar escenarios basados โโen la estructura del cรณdigo que se estรก probando.
En las pruebas de caja blanca, el evaluador se concentra en cรณmo funciona el software. En otras palabras, se centra en el funcionamiento interno del cรณdigo fuente, especรญficamente en los diagramas de flujo o grรกficos de control.
Generalmente en cualquier software, si miras el cรณdigo fuente, habrรก una amplia variedad de elementos como operadores, funciones, bucles, etc.ping, manejadores de excepciones, etc. Segรบn la entrada del programa, algunas instrucciones de cรณdigo podrรญan no ejecutarse. El objetivo de la cobertura de instrucciones es cubrir todas las rutas, lรญneas e instrucciones posibles en el cรณdigo.
Entendamos esto con un ejemplo de cรณmo calcular la cobertura de sentencias. Aquรญ tomaremos dos escenarios diferentes para verificar el porcentaje de cobertura de sentencias para cada uno.
Fuente Code:
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
Escenario 1: Si A = 3, B = 9
Las instrucciones marcadas en amarillo son las que se ejecutan segรบn el escenario. Nรบmero de instrucciones ejecutadas = 5, Nรบmero total de instrucciones = 7, por lo que la cobertura de instrucciones = 5/7 = 71%.
Escenario 2: Si A = -3, B = -9
Las instrucciones marcadas en amarillo son las que se ejecutan segรบn el escenario. Nรบmero de instrucciones ejecutadas = 6, Nรบmero total de instrucciones = 7, por lo que la cobertura de instrucciones = 6/7 = 85%.
En general, como se puede observar, todas las afirmaciones estรกn cubiertas por ambos escenarios. Por lo tanto, podemos concluir que la cobertura global de las afirmaciones es del 100 %.
ยฟQuรฉ cubre la Cobertura del Estado de Cuenta?
- Declaraciones no utilizadas
- Muertos Code
- Ramas no utilizadas
- Declaraciones faltantes
Pruebas de cobertura de decisiones
Cobertura de decisiones Es una tรฉcnica de prueba de caja blanca que informa los resultados verdaderos o falsos de cada expresiรณn booleana en el cรณdigo fuente. El objetivo de las pruebas de cobertura de decisiones es cubrir y validar todo el cรณdigo fuente accesible, verificando que cada rama de cada posible punto de decisiรณn se ejecute al menos una vez.
En este tipo de cobertura, las expresiones pueden volverse complejas, lo que dificulta alcanzar una cobertura del 100 %. Por ello, se utilizan diversos mรฉtodos para informar sobre esta mรฉtrica. Estos mรฉtodos priorizan las combinaciones mรกs crรญticas. Si bien es similar a la cobertura de ramas, ofrece mayor sensibilidad al flujo de control.
Ejemplo de cobertura de decisiones
Considere el siguiente cรณdigo:
Demo(int a) { If (a > 5) a = a * 3 Print (a) }
Escenario 1: El valor de a es 2. El resultado โNoโ de la decisiรณn Si (a>5) estรก marcado, entonces la Cobertura de Decisiรณn = 50%.
Escenario 2: El valor de a es 6. El resultado โSรญโ de la decisiรณn Si (a>5) estรก marcado, por lo que la Cobertura de la Decisiรณn = 50%.
| Caso de prueba | Valor de A | Resultado | Cobertura de decisiones |
|---|---|---|---|
| 1 | 2 | 2 | 50% |
| 2 | 6 | 18 | 50% |
Pruebas de cobertura de sucursales
Cobertura de sucursales Es un mรฉtodo de prueba de caja blanca en el que se prueba cada resultado de un mรณdulo de cรณdigo (sentencia o bucle). El objetivo de la cobertura de ramas es asegurar que cada condiciรณn de decisiรณn de cada rama se ejecute al menos una vez. Ayuda a medir fracciones de segmentos de cรณdigo independientes y a encontrar secciones que no tienen ramas.
Por ejemplo, si los resultados son binarios, es necesario probar los resultados Verdaderos y Falso.
La fรณrmula para calcular la cobertura de sucursales:
Ejemplo de cobertura de sucursales
Para aprender sobre la cobertura de ramas, considere el mismo ejemplo utilizado anteriormente. La cobertura de ramas tambiรฉn considerarรก la rama incondicional.
| Caso de prueba | Valor de A | Resultado | Cobertura de decisiones | Cobertura de sucursales |
|---|---|---|---|---|
| 1 | 2 | 2 | 50% | 33% |
| 2 | 6 | 18 | 50% | 67% |
Ventajas de la cobertura de Sucursales:
- Permite validar todas las ramas del cรณdigo.
- Ayuda a garantizar que ninguna bifurcaciรณn provoque ninguna anomalรญa en el funcionamiento del programa.
- Elimina los problemas que surgen debido a las pruebas de cobertura de sentencias.
- Permite encontrar รกreas que no han sido analizadas mediante otros mรฉtodos de prueba.
- Permite obtener una medida cuantitativa de la cobertura del cรณdigo.
- La cobertura de ramas ignora las ramas dentro de las expresiones booleanas.
Prueba de cobertura de condiciรณn
Cobertura de condiciรณnLa cobertura de expresiones es un mรฉtodo de prueba que se utiliza para evaluar las variables o subexpresiones en una instrucciรณn condicional. Su objetivo es verificar los resultados individuales de cada condiciรณn lรณgica. La cobertura de condiciones ofrece mayor sensibilidad al flujo de control que la cobertura de decisiones. En este mรฉtodo, solo se consideran expresiones con operandos lรณgicos.
Por ejemplo, si una expresiรณn incluye operaciones booleanas como AND, OR o XOR, esto indica el total de posibilidades. La cobertura de condiciones no garantiza una cobertura completa de decisiones.
La fรณrmula para calcular la Cobertura de Condiciรณn:
Para una expresiรณn con dos operandos, hay cuatro combinaciones posibles: TT, FF, TF y FT. Considere la entrada X=3, Y=4 (x b) FALSO, lo que da una cobertura de condiciรณn de 1/4 = 25%.
Cobertura de mรกquina de estados finitos
La cobertura mediante mรกquinas de estados finitos es, sin duda, el mรฉtodo de cobertura de cรณdigo mรกs complejo. Esto se debe a que se basa en el comportamiento del diseรฑo. En este mรฉtodo, es necesario observar cuรกntas veces se visitan o transitan estados especรญficos. Tambiรฉn se verifica cuรกntas secuencias se incluyen en una mรกquina de estados finitos.
ยฟQuรฉ tipo de Code Cobertura para elegir
Esta es sin duda la respuesta mรกs difรญcil de dar. Para seleccionar un mรฉtodo de cobertura, el evaluador debe comprobar si:
- El cรณdigo que se estรก probando tiene uno o varios defectos no detectados,
- costo de la posible sanciรณn,
- costo de la reputaciรณn perdida,
- costo de las ventas perdidas, y asรญ sucesivamente.
Cuanto mayor sea la probabilidad de que los defectos causen costosas fallas de producciรณn, mรกs severo serรก el nivel de cobertura que deberรก elegir.
Code Cobertura vs. Cobertura funcional
| Code Global | Cobertura funcional |
|---|---|
| Indica quรฉ tan bien se ha probado el cรณdigo fuente en su banco de pruebas. | Mide quรฉ tan bien se ha cubierto la funcionalidad del diseรฑo en su banco de pruebas. |
| Nunca utiliza una especificaciรณn de diseรฑo. | Utiliza una especificaciรณn de diseรฑo. |
| Realizado por desarrolladores. | Realizado por los evaluadores. |
Code Herramientas de cobertura
Aquรญ tienes una lista de herramientas importantes para la cobertura de cรณdigo:
| Nombre de la herramienta | Mareas Ideales para Lecciones |
|---|---|
| Cobertura | Una herramienta de cรณdigo abierto para medir la cobertura de cรณdigo. Mide la cobertura de las pruebas instrumentando una base de cรณdigo y analizando quรฉ lรญneas de cรณdigo se ejecutan y cuรกles no cuando se ejecuta el conjunto de pruebas. |
| Trรฉbol | Trรฉbol (OpenClover) tambiรฉn reduce el tiempo de prueba al ejecutar รบnicamente las pruebas que cubren el cรณdigo de la aplicaciรณn modificado desde la compilaciรณn anterior. |
| DevPartner | DevPartner permite a los desarrolladores analizar Java cรณdigo para la calidad y complejidad del cรณdigo. |
| Emma | EMMA admite la cobertura de clases, mรฉtodos, lรญneas y bloques bรกsicos, agregada a nivel de archivo fuente, clase y mรฉtodo. |
| Kalistick | Kalistick es una aplicaciรณn de terceros que analiza el cรณdigo desde diferentes perspectivas. |
| CoView y CoAnt | Una herramienta de cobertura de cรณdigo para mรฉtricas, creaciรณn de objetos simulados, comprobaciรณn del cรณdigo, cobertura de rutas y ramas, y mucho mรกs. |
| Diana para C++ | BullseyeCoverage es una herramienta de cobertura de cรณdigo para C++ y C. |
| Sonar | Sonar es una herramienta de cobertura de cรณdigo abierta que te ayuda a gestionar la calidad del cรณdigo. |
Ventajas y desventajas de usar Code Global
| Ventajas | Desventajas |
|---|---|
| Resulta รบtil para evaluar una medida cuantitativa de la cobertura del cรณdigo. | Incluso cuando una caracterรญstica especรญfica no estรก implementada en el diseรฑo, la cobertura de cรณdigo sigue mostrando una cobertura del 100%. |
| Permite crear casos de prueba adicionales para aumentar la cobertura. | No es posible determinar si se probaron todos los valores posibles de una caracterรญstica utilizando la cobertura de cรณdigo. |
| Permite encontrar las รกreas de un programa que no han sido probadas por un conjunto de casos de prueba. | Code La cobertura no indica cuรกnto ni con quรฉ eficacia has cubierto tu lรณgica. |






