ejercicios tecnicas diseño pruebass
DESCRIPTION
ejerccTRANSCRIPT
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:
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
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
X > Y && X>Z
Z > Y
Ingresar X, Y, Z
Si No
Max “X”
Max “Z” Max “y”
Si No
Inicio
Max
Fin
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
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
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
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
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”
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.
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?
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
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.