Beruflich Dokumente
Kultur Dokumente
2 Mtodos combinatorios
Las pruebas pueden aplicarse de muchas maneras, es decir, existen diferentes
formas de preparar casos de prueba. En este captulo se presentan dos formas de
prueba muy fciles de utilizar, an cuando no siempre resultan suficientes: la
prueba de particiones (o de dominios) y la de valores a la frontera. Ambas
descansan sobre el modelo combinatorio y muchas veces se usan conjuntamente.
Son de utilidad especialmente en pruebas de unidad, aunque tambin resultan
tiles en algunas pruebas a nivel de sistema.
Funcin 1
ENTRADAS
Funcin 2
Clasificador
SALIDAS
Funcin 3
beta <=0
beta >0
alfa <=0
beta/alfa
-alfa
alfa >0
-beta
alfa/beta
El software del ejemplo puede pensarse como una caja negra con dos entradas;
al llegar datos, se analiza cul de los cuatro casos le corresponde y segn eso se
produce la salida.
Por su naturaleza, este modelo se puede aplicar usando la informacin de los
requerimientos del usuario, cuando son detallados, o las especificaciones que se
establecen en el documento de diseo. Para poderse aplicar se requiere que:
a) todas las variables de entrada sean independientes entre s, es decir, se
pueden dar en cualquier orden y se les puede considerar simultneas
b) puedan identificarse las diferentes funciones o comportamientos (es
decir, tipos diferentes de salidas)
c) puedan asociarse un grupo de valores de las entradas con cada
comportamiento
Una vez establecido este modelo, la suposicin principal dice que basta elegir
representantes de cada clase para probar el software, es decir, en vez de un gran
nmero de combinaciones que podran ser infinitas (como se vio en el captulo
anterior), bastar con un nmero relativamente pequeo de casos de prueba.
A veces se construye este modelo comenzando por las salidas, tanto las
deseadas como las no deseadas. A partir de ah, se razona hacia atrs para
determinar qu entradas produciran cada salida.
Existen varios mtodos correspondientes a este modelo, de los cuales hay tres
destacados:
a) particiones equivalentes o dominios
b) valores a la frontera
c) tablas de decisin, llamado tambin grafo causa-efecto
En las siguientes secciones se tratarn los dos primeros.
La presencia de defectos a veces invalida las suposiciones de este modelo,
hacindolo insuficiente. En general se recomienda complementarlo con pruebas
de tipo estructural.
F ( x) =
( x + 5) Si
x > 4
Si x < 2 . . . . . . . . . . . . . .(1)
0 en otro caso
3x
a) los valores positivos, para los cuales la funcin regresa el logaritmo del
nmero recibido
b) los enteros negativos o cero, para los cuales se recibe un mensaje de
error
Para la funcin F(x) del ejemplo anterior (Ecuacin 1) se tendrn tres clases de
equivalencia correspondientes a los tres casos:
a) (-, -2)
(valores menores a 2)
b) [-2, 4]
(valores entre 2 y 4, inclusive)
c) (4, +)
(valores mayores a 4)
2.2.1 Casos de prueba
Para el caso de una variable, el mtodo de dominios propone que se construya un
caso de prueba por cada clase de equivalencia, lo cual se considera suficiente.
Para mayor seguridad, se acostumbra combinar con el mtodo de valores a la
frontera, que se presenta en la siguiente seccin, as como algn mtodo
estructural (caja blanca, a tratar en el Captulo 3).
Continuando con los ejemplos anteriores, se prepararan casos de prueba como
los siguientes:
Para el caso de la longitud de una cuerda:
Entrada
G
Este es un ejemplo largo
Salida esperada
0
1
24
Salidas esperadas
-1536000
-27.783
0
0
0
2.08
4.02
Contrasea
1K809vX
8n662zW
V456JhP
72wW55X
B87hG34
Salidas esperadas
Aceptada
Contrasea
equivocada
Nombre
desconocido
Contrasea
equivocada
Nombre
desconocido
dominio
{1, ... ,12}
Da
Ao
[1900, 2199]
subdominios
(- , 0), {2}, {4, 6, 9, 11}, {1, 3,
5, 7, 8, 10, 12} (12, +)
(- , 0), {1, 2, ... , m} (m, +),
m= 28, 29, 30 31 segn el
caso
(- , 1899], {a | a [1900,
2199] y a bisiesto} {a | a
[1900, 2199] y a no es
bisiesto}, [2200, +)
2. Casos de prueba
Entradas
Salidas esperadas
mes ao
da mes ao
-2
1803 Datos fuera de
intervalo
-9
-3
1956 Datos fuera de
intervalo
-11
4
2002 Datos fuera de
intervalo
15
6
1650 Datos fuera de
intervalo
da
-10
15
1
12
28
29
2
2
2
2
28
29
1
17
30
31
2
2
4
4
4
4
1
20
30
31
8
8
8
8
2.2.6 Ejemplo con estructura de datos global: bsqueda binaria en una lista
En muchos problemas se tiene una lista de datos que se usa para identificar
valores. El programa, o fragmento de l, lee un valor, lo busca en la lista,
almacenada en un arreglo en las posiciones cero a n - 1 y regresa la posicin que
ocupa, si lo encontr; de otro modo regresa un menos uno. Para la bsqueda se
supone que la lista est ordenada y se emplea el mtodo de bsqueda binaria.
Suponga que la lista est en el arreglo Lista con los valores de abajo y la
variable de entrada es llave.
Lista:
-12
-5
17
39
78
90
107
200
202
299
Los valores de la lista constituyen el dominio de inters y todos los dems valores
enteros deben dar error. Entonces, algunos casos de prueba sern:
Entrada
-9
39
299
600
Salida esperada
-1
5
11
-1
cantidad
2000
500
-100
100
salida
-2
500
-1
-2
saldo (despus)
1000
500
1000
0
binaria vuelve borrosa la frontera, lo cual influir sobre los posibles errores. En
cambio, para nmeros enteros y conjuntos discretos no hay mucho problema,
eligindose el valor anterior o siguiente del valor a la frontera.
A veces la definicin de la frontera no es clara. Por ejemplo, cuando se maneja
un conjunto de cuerdas alfanumricas, a veces la frontera se refiere al nmero de
caracteres, que no debe ser cero ni exceder un valor que indica la capacidad de
un atributo o el lmite que maneja un sistema.
Ejemplos
En la seccin 2.2.1 se mostr un ejemplo con logaritmos en el cual haba dos
subdominios: el de nmeros enteros mayores a cero (donde s est definido el
logaritmo) y el de los nmeros enteros menores o iguales a cero (donde no est
definido y debe mostrarse un defecto. As pues, la frontera est en cero y los
casos de prueba recomendables seran:
Entrada
-1
0
1
Salida esperada
Error
Error
0
En la misma seccin se present la funcin F(x), con x real, que tiene tres
subdominios:
a) (-, -2)
b) [-2, 4]
c) (4, +)
Aqu se tienen dos fronteras: -2 y 4, as que los casos de prueba seran:
Entrada
-2.001
-2.0
-1.999
3.999
4.0
4.001
Salida esperada
-24.036
0
0
0
0
2.080
(actualizado al 15/11/2006)
10