Sie sind auf Seite 1von 5

TRABAJO DE CONTROL DE CALIDAD

Fecha: 15/05/2016
Ejercicios de Caja Blanca
1. Considere el siguiente segmento de cdigo que busca un
elemento en un arreglo (table), asuma que la comparacin de
igualdad se representa con =
y la asignacin de valores con :=
y un arreglo se indexa en base al formato arreglo(i) (i.e se accede
al i-simo elemento de arreglo).
found: = false; counter:=1;
while (not found) and (counter < number_of_items) loop
if table(counter) = desired_element then
found : = true;
end if;
counter := counter +1;
end loop;
if found then
write(the desired element exists in the table);
else
write (the desired element does not exists in the table);
end if;

Suponiendo la correcta definicin e inicializacin de variables, este


cdigo an tiene un error trivial y comn.
a) Cual ese error?

El error se describe en el primer elemento a comparar ya que el arreglo no


lo toma en cuenta por empezar siempre desde 1, se toma al inicio del
arreglo como cero para iniciarlo.
table (i)

foun
d

desired_elem
ent

count
er

n_of_item write/Resultado
s

table (0)
=3

false

el arreglo no
compara desde el
valor inicial en 0
por lo que no lo

encuentra
table (1)
=2

false

the desired element


does not exists in
the table

table (2)
=5

false

no ingresa por la
condicin

b) Suponga el cdigo se prueba con


- un arreglo vaco (i.e., number_of_items = 0);

table (i)

found

desired_element

numb_of_ite
ms

write

empty

false

the desired
element does
not exists in
the table

No entra al bucle ya que el valor del contador es mayor al nmero de


tems del arreglo

- un arreglo con tres elementos donde el segundo elemento


es el elemento buscado

table (i)

foun
d

desired_elem
ent

count
er

n_of_ite
ms

write/Resultado

table (0) =
3

false

the desired
element does not
exists in the
table

table (1) =
2

false

the desired
element does not
exists in the
table

table (2) =

true

the desired

element exists in
the table

Estas dos pruebas descubren el error? Si , no? por qu?


las dos pruebas anteriores no describen el error, solo la segunda prueba
permite indicarlo
Porque ?
El ejercicio uno no permite realizar comparaciones porque el arreglo no
posee ningn elemento que nos permita evaluar.
El segundo nos permite evaluar con 3 elementos y probar lo mencionado
anteriormente en el arreglo, viendo cmo descarta el primer elemento al
iniciar desde 1 el count.
2. Realiza un grafo de control de flujo, calcula la complejidad
ciclomtica y disea el conjunto de pruebas de caja blanca del
siguiente algoritmo:

Grafo de control de flujo

calcular la complejidad ciclomtica


CC = #Arcos #Nodos + 2
=9-8+2
=3
CC = #NodosPredicado + 1
= 2 +1

=3
Conjunto de pruebas de caja blanca
while (i < x) do begin
-

Tcnica de tabla de verdad

TABLA DE VERDAD

VALORES

I<x

>= X

<I

<X

>I

if a(i) > 50 then


-

tcnica de dominio

DIRECTRIZ

a(i)

valor menor

< 50

valor igual

= 50

valor mayor

> 50

Tabla de Casos

ID

a[i]

Resultado

ok

end of
nonsense

end of
nonsense

49

ok

50

ok

51

array is
over the
limit

Das könnte Ihnen auch gefallen