Ejercicios de pruebas de software
Enviado por nahnhax • 17 de Junio de 2019 • Práctica o problema • 2.013 Palabras (9 Páginas) • 785 Visitas
Ejercicios de Pruebas de Software
Ejercicio1 : Dado el siguiente fragmento de programa en java:
Import java.io.*;
Public class Maximo
{
public static void main (String args[]) throws IOException
{
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
Int x,y,z,max;
System.out.println(“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;
else
if (z>y)
max = z;
else
max = y;
System.out.println (“El máximo es ”+ max);
}
}
Se pide
- 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 grafo de flujo. Para esto seguiremos los siguientes pasos:
- Señalamos en el código los pasos para dibujar el grafo de flujo
Import java.io.*;
Public class Maximo
{
public static void main (String args[]) throws IOException
{[pic 1]
BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
Int x,y,z,max;
System.out.println(“Introduce x,y,z: ”);
x = Integer.parseInt (entrada.readLine()); [pic 2]
y = Integer.parseInt (entrada.readLine());
z = Integer.parseInt (entrada.readLine());
[pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10]
if (x>y && x>z)[pic 11][pic 12]
max = x;[pic 13]
else[pic 14][pic 15]
if (z>y)[pic 16][pic 17][pic 18]
max = z;[pic 19][pic 20][pic 21]
else[pic 22]
max = y;[pic 23][pic 24]
System.out.println (“El máximo es ”+ max);[pic 25]
}
}
- Dibujamos el grafo de flujo , calculamos la complejidad ciclomática y determinamos los caminos independientes:
- [pic 26]
[pic 27]
[pic 28]
[pic 29]
[pic 30]
[pic 31][pic 32]
Calculamos la complejidad ciclomática de McCabe : [pic 33][pic 34]
V(G) = a – n + 2 = 10 – 8 + 2 = 4
V(G) = r = 4
V(G) = c + 1 = 3 + 1 = 4
Por lo tanto tendremos cuatro caminos independientes, que mirando el grafo de flujo deducimos serán los siguientes:
- Camino 1 🡺 1 - 2 – 3 – 4 – 8
- Camino 2 🡺 1 – 2 – 3 – 5 – 6 –8
- Camino 3 🡺 1 – 2 – 5 – 6 – 8
- Camino 4 🡺 1 – 2 – 5 – 7 - 8
- Definir conjuntos de pruebas mínimo para alcanzar los siguientes criterios de cobertura:
- Cobertura de sentencias
Se trata de ejecutar con los casos de prueba cada sentencia e instrucción al menos una vez.
En este caso con ejecutar los caminos 1, 2 y 4 nos vale:
Camino | Características | Caso de Prueba | ||
x | y | z | ||
Camino 1 | x > y , x > z | 10 | 3 | 3 |
Camino 2 | y < x < z | 5 | 2 | 10 |
Camino 4 | x < y , z < y | 5 | 10 | 5 |
- Caso de prueba 1 (Camino 1 ). Ejecutaremos un caso en el que x>y y x>z, como por ejemplo x = 10, y = 3 y z = 3.
- Caso de prueba 2(Camino 2).Ejecutamos un caso en el que y
- Caso de prueba 3 (Camino 4). Ejecutamos un caso en el que x
- Cobertura de decisiones
Escribimos los casos suficientes para que cada condición tenga al menos una resultado verdadero y otro falso. Utilizando los mismos caminos y casos de prueba que en la cobertura de sentencias cubriremos también en este caso la cobertura de decisiones:
Camino | Características | Caso de Prueba | ||
x | y | z | ||
Camino 1 | x > y , x > z | 10 | 3 | 3 |
Camino 2 | y < x < z | 5 | 2 | 10 |
Camino 4 | x < y , z < y | 5 | 10 | 5 |
- 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. Los casos de prueba en este caso serán los mismos que en la cobertura de decisiones.
...