1 - IMPORTANTE - Pruebas de Caja Blanca PDF
1 - IMPORTANTE - Pruebas de Caja Blanca PDF
1 - IMPORTANTE - Pruebas de Caja Blanca PDF
1.- Introduccin 3
2.- Pruebas
Grfico de flujo 4
Complejidad ciclomtica 7
o 1er camino 10
o 2 camino 11
o 3er camino 12
o 4 camino 13
o 5 camino 14
o 6 camino 15
o 1era expresin 19
o 2 expresin
Tabla 1 20
Tabla 2 21
Tabla 3 22
Tabla 4 23
o 3er expresin 24
3.- Conclusiones 27
2
1.- Introduccin
1. Que se ejecute por lo menos una vez cada instruccin del programa.
2. Garantizar que todas las condiciones se comprueban como
verdaderas y falsas.
3. Que se ejecuten los bucles, probando el caso general y los casos
extremos.
3
2.- Pruebas
Grfico de flujo
4
El grfico de flujo se obtiene a partir de observar el cdigo y
asignarle a cada sentencia el nmero del nodo que le corresponde, como
se observa en la siguiente tabla:
DECLARACIN DE TIPOS
Type i is INTEGER;
INICIALIZACIN DE VARIABLES
CDIGO DE LA FUNCIN
total.entrada<100 Nodo 3
{ total.entrada++; Nodo 4
Else null;
End if;
i++; Nodo 8
end do}
if total.valido>0 Nodo 9
End if;
5
Como podemos ver, la declaracin de tipos no supone una accin a
contemplar en el grafo, pero s lo es la inicializacin, ya que es una
asignacin de valores. Tambin contemplamos las sentencias de control y
por ltimo, el final de la funcin, ya que el programa no debera acabar en
dos nodos, que seran los 10 y 11, sino en un doceavo nodo, que suponga
el retorno de la funcin.
6
Complejidad ciclomtica
CC(G) = 6, porque existen las regiones R1, R2, R3, R4, R5 y R6.
7
2. CC(G) = Aristas Vrtices + 2. En este caso tenemos 16 aristas, que
son las lneas que unen los nodos, y 12 vrtices, que son los
distintos nodos. Haciendo el clculo obtenemos que la complejidad
ciclomtica de nuestro grafo quedara como:
8
Descripcin de los distintos caminos bsicos
1. Nodos: 1, 2, 9, 10, 12
2. Nodos: 1, 2, 9, 11, 12
3. Nodos: 1, 2, 3, 9, 10, 12
4. Nodos: 1, 2, 3, 4, 5, 8, 2,...
5. Nodos: 1, 2, 3, 4, 5, 6, 8, 2,
6. Nodos: 1, 2, 3, 4, 5, 6, 7, 8, 2,
9
1. Primer camino: El primer camino nunca se podr ejecutar porque, para
que no se cumpla la condicin del nodo nmero 2, se debe estar
observando en la primera iteracin una posicin que no pertenece al
array, por lo que en la condicin del nodo 9, el total.vlido ser 0, y no
mayor que 0, por lo que dicha condicin no se acepta y es imposible
acceder al nodo 10.
if total.valido>0 Nodo 9
...
10
2. Segundo camino: El segundo camino se puede reproducir, ya que, para
que no se cumpla la condicin del nodo nmero 2, se debe estar
observando un valor no perteneciente al array, y el total.vlido es 0, ya
que se inicializ en el nodo nmero 1, con lo que no se accede al bucle
sino que se comprueba la condicin del nodo 9. Dado que el valor de la
variable total.vlido no se ha modificado y es 0, se accede al nodo nmero
11, asignando a la variable media el valor -999.
if total.valido>0 Nodo 9
...
Total.vlido = 0
11
3. Tercer camino: El tercer camino no se ejecutar nunca, ya que, para que
se cumpla la condicin del nodo nmero 2, se debe estar observando el
primer valor del array, y el nmero total de datos de entrada para la
primera iteracin es 0, ya que la variable total.entrada se inicializ a 0 en
el nodo nmero 1, con lo que debera entrar al bucle, es decir, al nodo 4,
pero salta al nodo nmero 10, lo que es imposible para ser la primera
iteracin.
total.entrada<100 Nodo 3
if total.valido>0 Nodo 9
...
12
4. Cuarto camino: El cuarto camino se puede ejecutar, ya que, para que se
cumpla la condicin del nodo nmero 2, se debe estar observando el
primer valor del array, y la condicin del nodo nmero 3 tambin se
cumple, ya que la variable total.entrada se inicializ en el nodo nmero 1
y no ha cambiado su valor, con lo que se entra en el bucle y se incrementa
el valor de la variable total.entrada en el nodo nmero 4, con lo que se
quedara con valor numrico total.entrada = 1. El siguiente paso para que
se siguiese el flujo esperado es que el valor observado del array fuera
menor que el mnimo estipulado, lo cual no se puede permitir, como
expresa la condicin del nodo nmero 5, con lo que el programa decidira
ignorarlo, incrementando en el nodo nmero 8 el valor de la variable i,
que hace de iterador, y continuando con el bucle.
total.entrada<100 Nodo 3
{ total.entrada++; Nodo 4
i++; Nodo 8
Suma = 0
13
5. Quinto camino: El quinto camino se puede ejecutar, ya que para que se
cumpla la condicin del nodo nmero 2, se debe estar observando el
primer valor del array, y la condicin del nodo nmero 3 tambin se
cumple, ya que la variable total.entrada se inicializ en el nodo nmero 1
y no ha cambiado su valor, con lo que se entra en el bucle y se incrementa
el valor de la variable total.entrada en el nodo nmero 4, con lo que se
quedara con valor numrico total.entrada = 1. El siguiente paso para que
se siguiese el flujo esperado es que el valor observado del array fuera
mayor que el mnimo estipulado, lo cual es lo deseable, como expresa la
condicin del nodo nmero 5, pero tambin mayor que el valor mximo,
lo cual no se debe permitir, como expresa claramente el nodo nmero 6,
con lo que el programa decidira ignorarlo, incrementando en el nodo
nmero 8 el valor de la variable i, que hace de iterador y continuando con
el bucle.
total.entrada<100 Nodo 3
{ total.entrada++; Nodo 4
...
i++; Nodo 8
14
6. Sexto camino: Por ltimo, el sexto camino se puede ejecutar, ya
que, para que se cumpla la condicin del nodo nmero 2, se debe estar
observando el primer valor del array, y la condicin del nodo nmero 3
tambin se cumple, ya que la variable total.entrada se inicializ en el nodo
nmero 1 y no ha cambiado su valor, con lo que se entra en el bucle y se
incrementa el valor de la variable total.entrada en el nodo nmero 4, con
lo que se quedara con valor numrico total.entrada = 1. El siguiente paso
para que se siguiese el flujo esperado es que el valor observado del array
estuviera entre los valores mnimos y mximos permitidos, lo cual es
deseable, como expresan los nodos nmeros 5 y 6. A continuacin se
accedera al nodo nmero 7, donde se actualizaran algunas variables, y a
continuacin al 8, incrementando el valor de la variable i, que hace de
iterador, y continuando con el bucle.
total.entrada<100 Nodo 3
{ total.entrada++; Nodo 4
i++; Nodo 8
15
Por tanto concluimos con la siguiente tabla, donde se muestra el
resumen de lo que se ha dicho hasta ahora: los caminos, los parmetros
de entrada necesarios para su ejecucin y sus correspondientes grafos.
Suma = 0
16
Camino 1 Camino 2 Camino 3
17
2.2.- Prueba de condicin
18
1. Para la expresin VALOR[i] <>999 and total.entrada<100, hay una
nica posible tabla:
19
2. Para la expresin VALOR[i]>=mnimo and valor<=mximo, hay
cuatro posibles opciones reflejadas en las cuatro siguientes tablas. Para
ello hemos supuesto un valor mnimo y mximo de prueba.
Tabla 1:
20
Tabla 2:
VV =0 y =100 0 0 Continuar
21
Tabla 3:
22
Tabla 4:
23
3. Para la expresin total.vlido>0, hay una nica posible tabla:
24
2.3.- Prueba de bucles
25
Iteraciones Valor[i] Total.entrada Resultado
* = si existiera.
26
3.- Conclusiones
27