Ejercicios Tecnicas Diseño Pruebass

15
CAPITULO: TÉCNICAS DE DISEÑO DE PRUEBAS Complejidad Ciclomática de McCabe V(G) Métrica que mide la complejidad estática de un programa basada en su grafo de flujo de control. Mide los caminos linealmente independientes, como índice de testabilidad y mantenibilidad. V(G) = e – n + 2p Número de aristas: e Número de nodos: n Inspeccionadas: p (normalmente 1) NOTA: Valores hasta 10 aceptables. Para valores superiores el código debe ser reconstruido Ejemplo: El grafo tiene: 1 parte independientes p = 1 14 nodos n = 14 19 aristas e = 19 V(g) = 7

description

ejercc

Transcript of Ejercicios Tecnicas Diseño Pruebass

Page 1: Ejercicios Tecnicas Diseño Pruebass

CAPITULO: TÉCNICAS DE DISEÑO DE PRUEBAS

Complejidad Ciclomática de McCabe V(G)

Métrica que mide la complejidad estática de un programa basada en su grafo de flujo de control. Mide los caminos linealmente independientes, como índice de testabilidad y mantenibilidad.

V(G) = e – n + 2p

Número de aristas: e Número de nodos: n Inspeccionadas: p (normalmente 1)

NOTA: Valores hasta 10 aceptables. Para valores superiores el código debe ser reconstruido

Ejemplo:

El grafo tiene:

1 parte independientes p = 1

14 nodos n = 14

19 aristas e = 19

V(g) = 7

Ejercicio1: Dado el siguiente fragmento de programa en java:

Page 2: Ejercicios Tecnicas Diseño Pruebass

Import java.ioPublic class Maximo{Public static void main (String args[]) throws IOException{

bufferedReader entrada = new BufferedReader (newInputStreamReader(System.in)):

Int x,y,z,max;System.out.print(“Introduce x,y,z”);X=Integer.parseint (entrada.readLine());y=Integer.parseint (entrada.readLine());z=Integer.parseint (entrada.readLine());

if(x>y&&x>z)max=x;

elseif(z>y)

max=z;else

max=y;system.out.println(“El maximo es ”+max);}

}

SE PIDE

a) Calcular la complejidad ciclomática de McCabe V(G)

Para calcular la complejidad ciclomática de McCabe, lo primero que tenemos que hacer es dibujar el grado de flujo. Para esto seguimos pasos:

1. Señalamos en el código los pasos para dibujar el grafo de flujo

Page 3: Ejercicios Tecnicas Diseño Pruebass

Import java.ioPublic class Maximo{Public static void main (String args[]) throws IOException{

bufferedReader entrada = new BufferedReader (newInputStreamReader(System.in)):Int x,y,z,max;System.out.print(“Introduce x,y,z”);X=Integer.parseint (entrada.readLine());y=Integer.parseint (entrada.readLine());z=Integer.parseint (entrada.readLine());

if(x>y && x>z)max=x;

elseif(z > y)

max=z;else

max=y;

system.out.println(“El maximo es ”+max);}

}

2

3

Page 4: Ejercicios Tecnicas Diseño Pruebass

X > Y && X>Z

Z > Y

Ingresar X, Y, Z

Si No

Max “X”

Max “Z” Max “y”

Si No

Inicio

Max

Fin

Page 5: Ejercicios Tecnicas Diseño Pruebass

2. Dibujamos el grafo de flujo calculamos la complejidad ciclomática y determinamos

los caminos independientes:

Calculamos la complejidad ciclomática de McCabe:

V(G) = e – n + 2=

1) 1, 2, 3, 4, 82) 1, 2, 5, 7, 83) 1, 2, 3, 5, 6, 84) 1, 2, 5, 6, 8

Por lo tanto identifiquemos los caminos independientes mirando el grafo de flujo:

1) 1, 2, 3, 4, 82) 1, 2, 3, 5, 6, 83) 1, 2, 5, 7, 8

1

5

7

3

2

64

8

True

True

False

False

False

True

Page 6: Ejercicios Tecnicas Diseño Pruebass

b. Definir conjuntos de pruebas mínimo para alcanzar los siguientes criterios de cobertura:

COBERTURA DE SENTENCIAS (instrucción)Se trata de ejecutar con los casos de prueba cada sentencia a instrucción al menos una vez. Seleccionar los caminos a ejecutar:

Camina Característica Caso de PruebaX Y Z

Camino 1 X > Y , X > Z 10 3 3Camino 2 Y < X < Z 5 2 10Camino 3 X < Y , Z < Y 5 10 5

COBERTURA DE DECISIONESEscribimos los casos suficientes para cada condición tenga al menos un resultado verdadero y otro falso. Se ejecutan 3 caminos para cubrir todas las aristas

COBERTURA DE CONDICIONESSe trata de escribir los casos suficientes para que cada condición de cada decisión adopte el valor verdadero y el falso al menos una vez.

Se ejecta el camino 1,2,3 para tener los 3 resultados de las condiciones, no consideramos el camino 4 porque el camino 3 ya lo esta ejecutando.

X=1,Y=2,Z=3 Max=Z

Camino 4

X=3,y=2,Z=1 Max=X

Camino 1

X=2,Y=3,Z=1 MAX=Y

Camino 2

X=2,Y=1,Z=3 Max=Z

Camino 3

Page 7: Ejercicios Tecnicas Diseño Pruebass

Ejercicio 2: Dado el siguiente fragmento de programa en java:

If(a>1) and (b>5) and (c<2) thenX=x+1:

ElseX=x-1;

¿Qué criterios de cobertura satisfacen los siguientes casos de prueba {a=0,b=11,c=1}, {a=4,b=4,c=4}, {a=2,b=6,c=0}? Explicar cada uno de ellos.

Calculamos el grafo de flujo y la complejidad ciclomática, de la misma manera que en el ejercicio anterior. De esta manera veremos con más facilidad cuales son los pasos que se ejecutan con los casos de prueba que nos dan.

1. Señalamos en el fragmento de código de nodos:

a > 1 and b > 5 and C

Si No

X = x + 1 X = x - 1

Inicio

Page 8: Ejercicios Tecnicas Diseño Pruebass

2. Dibujamos el grafo de flujo

3. Calculamos la complejidad ciclomaticaV(G)=

COBERTURA DE SENTENCIASSe trata de ejecutar con los casos de prueba cada sentencia a instrucción al menos una vez.

Fin

1

2 5

3

4

a > 1

b > 5

C < 2

a < 1

c > 2

b < 5

6

Como me dan una parte del código se le agrega el nodo 6 para indicar que el código contiúa

Page 9: Ejercicios Tecnicas Diseño Pruebass

Camino 1 -> 1 - 5 - 6Camino 2 -> 1 - 2 - 5 - 6Camino 3 -> 1 – 2 – 3 – 5 - 6Camino 4 -> 1 – 2 – 3 – 4 - 6

Con el caso de prueba (a=0,b=11b,c=1) ejecutamos el primer camino independienteCon el caso de prueba (a=4,b=4,c=4) ejecutamos el primer camino independienteCon el caso de prueba (a=2,b=6,c=0) ejecutamos el primer camino independiente

COBERTURA DE DECISIONES:Escribimos los casos suficientes para cada condición tenga al menos un resultado verdadero y otro falso.

Cobertura de condiciones:Se trata de escribir los casos suficientes para que cada condición de cada decisión adopte el valor verdadero y el falso al menos una vez.

{a=0,b=11,c=1} Se avalúa el valor falso de la letra “a”{a=4,b=4,c=4} Se avalúa el valor falso de la letra “b”{a=2,b=6,c=0} No Se avalúa el valor falso de la letra “c”

Page 10: Ejercicios Tecnicas Diseño Pruebass

Ejercicio 3: Dado el mismo fragmento de código del ejercicio de anterior con dos clausulas OR, calcular el numero mínimo de casos de prueba que es necesario para que se cumpla la cobertura de condiciones.

1. Señalemos en el código los nodos

2. Dibujamos el grafo de flujo. en este caso al tratarse de clausulas OR en vez de AND el

dibujo cambia notablemente:

1

2 4

3

5

a < 1

b < 5

C > 2

a > 1

c < 2

b > 5

6

X=x-1

X=x+1

Como me dan una parte del código se le agrega el nodo 6 para indicar que el código continúa.

Page 11: Ejercicios Tecnicas Diseño Pruebass

3. Calculamos las complejidad ciclomaticaV(G)=8-6+2=4 caminos independientes

Camino 1 -> 1-4-6

Camino 1 -> 1-2-4-6

Camino 1 -> 1-2-3-4-6

Camino 1 -> 1-2-3-4-5-6

Ejercicio 4: Teniendo en cuenta el siguiente fragmento de código, ¿Cuántas pruebas se requieren para cubrir el 100% cobertura decisión?

if width > length thenbiggest_dimension = widthif height > width then

biggest_dimension = heightend_if

elsebiggest_dimension = lengthif height > length then

biggest_dimension = heightend_if

end_if

A. 3  B. 4  C. 2  D. 1 

Ejercicio 5: Un termómetro mide la temperatura en grados solamente. Si la temperatura cae por debajo de 18 grados, la calefacción está apagada.  Se vuelve a encender cuando la temperatura alcanza 21 grados. ¿Cuáles son los mejores valores en grados para cubrir todas las particiones de equivalencia?

Page 12: Ejercicios Tecnicas Diseño Pruebass

A. 15, 19 y 25. B. 17, 18 y 19.C. 18, 20 y 22.  D. 16, 26 y 32. 

Para equivalencia debo evaluar que los números se encuentren en los tres limites X<1818<x<21x>21Respuesta: “A”¿Cuáles son los mejores valores en grados para cubrir todas las particiones de limites?

Respuesta: 20 y 21.

Ejercicio 6:Teniendo en cuenta la tabla siguiente decisión: ¿Cuál de los siguientes casos de prueba y resultados esperados son válidos? 

A. 23 años en el seguro de la clase A, Premium es 70 y el exceso es 500. (Falso)B. 51 años en el seguro de la clase C, Premium es 100 y el exceso es 00. (Falso)C. 31 años en el seguro de la clase B, Premium es 70 y el exceso es 500. (Verdadero)D. 43 años en el seguro de la clase C, Premium es 100 y el exceso es 000. (Falso)

Ejercicio 7:

Apagado Encendido18 21

Page 13: Ejercicios Tecnicas Diseño Pruebass

Un mayorista vende cartuchos de impresora. La cantidad mínima de pedido es de 5. Hay descuento del 20% de los pedidos de 100 o más cartuchos. Se le ha pedido preparar casos de prueba utilizando distintos valores para las órdenes de cartuchos¿Cuál de los siguientes grupos contienen tres entradas de prueba que se generarían con Análisis de Valor Límite?

A. 5, 6, 20  B. 4, 5, 80 C. 4, 5, 99  D. 1, 20, 100.