Sie sind auf Seite 1von 29

Tcnicas de Pruebas

Ejemplos prcticos

Contenidos
n

Particin de Equivalencias y
Anlisis de Valores Lmite
Prueba Estructural

Particin de equivalencias y
Anlisis de valores lmite
Input test data

Inputs causing
anomalous
behaviour

System

Output test results

Oe

Outputs which reveal


the presence of
defects

Particin de equivalencias y
Anlisis de valores lmite
n
n

De caja negra
Los datos de entrada y de salida de un
programa normalmente pertenecen a
diferentes clases
Cada clase es un conjunto de valores en
donde el programa se comporta de
manera similar para cada elemento de
dicho conjunto --> Particin equivalente
Los casos de pruebas deberan ser
elegidos desde cada particin
Los datos de prueba se deben tomar en
los lmites de cada particin y en algn
valor no lmite

Particin de equivalencias y
Anlisis de valores lmite
Pasos:
1.

2.

Para cada entrada y cada


salida, determinar las clases de
equivalencias
Para cada clase de
equivalencia, seleccionar los
valores que se encuentran en
los lmites de las mismas y uno
no en el lmite
Ej.: clase (0..100)
probar 1, 0, 1, 50, 99, 100 y 101

3.

Ejecutar la prueba

Particin de equivalencias y
Anlisis de valores lmite
Reglas prcticas. Si la entrada es un
u Rango
F Una

clase vlida (valores en el


rango)
F Dos clases invlidas (valores
inferiores y superiores al rango)
u Miembro
F Una

de un conjunto

clase vlida (el conjunto)


F Una invlida (el complemento)

Particin de equivalencias y
Anlisis de valores lmite
Reglas prcticas. Si la entrada es un
u Valor

especfico

F Una

vlida (el valor especfico)


F Dos invlidas (valores menores y
mayores al valor especfico)

Particin de equivalencias y
Anlisis de valores lmite
Reglas prcticas. Si la entrada es un
u Valor numrico
F Una

clase vlida
F Dos clases invlidas
u Valor

booleano

F Una

clase vlida
F Una clase invlida

Particin de equivalencias y
Anlisis de valores lmite
Reglas prcticas. Si la entrada es un
u Valor tipo string
F Valor:

Una clase vlida


Una clase invlida
F Longitud:

Una clase vlida


Dos clases invlidas
u Valor

tipo char

F Una

clase vlida
F Una clase invlida

Particin de equivalencias y
Anlisis de valores lmite
Reglas prcticas. Si la entrada es un
u Valor tipo array
F Valor:

Depende del tipo de variable que


almacene el array
F Longitud

Una clase vlida


Dos clases invlidas

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Funcin de cluclo del seno de un ngulo
entero entre 0 y 360.
Precisin de salida: 3 decimales.
u Entrada:

nmero entero
u Salida: nmero real
1.

2.

Si entrada >= 0 y <= 360, se debe


devolver el resultado
Si la entrada < 0 o >360, se debe
mostrar el mensaje Error

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Entrada variable numrica
n

Clase vlida: 0 <= entrada <= 360


u Probar: 0, 1, 180, 359 y 360
Clase invlida 1: entrada < 0
u Probar: -1
Clase invlida 2: entrada > 360
u Probar: 361

Salida variable numrica


n

Clase vlida: -1 <= salida <= 1


u Probar: -1, -0.999, 0, 0.999, 1
Clase invlida 1: entrada < -1
u Probar: -1.001
Clase invlida 2: entrada > 1
u Probar: 1.001

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Entrada 1
V
V
V
V
V
I
I
-

Salida
Resultado
Res.Esperado obtenido

0
1
180
359
360
-1
361
270
272
0
88
90
-

V
V
V
V
V
I

0,000
0,017
0,000
-0,017
0,000
"Error"
"Error"
-1,000
-0,999
0,000
0,999
1,000
-1,001
"Error"

- I

1,001
"Error"

Resultado de la Prueba

Pas /
Fall

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Entrada 1
V
V
V
V
V
I
I
-

Salida
Resultado
Res.Esperado obtenido

0
1
180
359
360
-1
361
270
272
0
88
90
-

V
V
V
V
V
I

0,000
0,017
0,000
-0,017
0,000
"Error"
"Error"
-1,000
-0,999
0,000
0,999
1,000
-1,001
"Error"

- I

1,001
"Error"

Resultado de la Prueba

Pas /
Fall

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Entrada 1
V
V
V
V
V
I
I
-

0
1
180
359
360
-1
361
270
272
88
90
-

Salida
Resultado
Res.Esperado obtenido
0,000
0,017
0,000
-0,017
0,000
"Error"
"Error"
V
-1,000
V
-0,999
V
0,999
V
1,000
I
-1,001
"Error"
I
1,001
"Error"

Resultado de la Prueba

Pas /
Fall

Particin de equivalencias y
Anlisis de valores lmite. Ejemplo
Entrada 1
V
V
V
V
V
I
I
-

0
1
180
359
360
-1
361
270
272
88
90

Salida
Resultado
Pas /
Res.Esperado obtenido
Fall
0,000
0,000
Pas
0,017
0,017
Pas
0,000
0,000
Pas
-0,017
-0,017
Pas
0,000
0,000
Pas
"Error"
"Error"
Pas
"Error"
"Error"
Pas
V
-1,000
-1,000
Pas
V
-0,999
-0,999
Pas
V
0,999
0,999
Pas
V
1,000
1,000
Pas

Resultado de la Prueba

Pas

Prueba Estructural
n
n

De caja blanca
Se derivan casos de pruebas a
partir de la estructura del programa
Se deben ejercitar todas las
instrucciones del programa
Utiliza la medida de complejidad
ciclomtica para identificar la
cantidad de casos de pruebas

Prueba Estructural
n

Pasos:
1.
2.

3.

4.
5.

Examinar el mdulo de software


a probar
Derivar el grafo de flujo de
control y calcular la complejidad
ciclomtica
Seleccionar un conjunto de
caminos bsicos a probar
(mtodo de lnea base)
Determinar los datos de entrada
que van a ejercitar cada camino
Ejecutar la prueba

Prueba Estructural. Ejemplo. Paso 1


1
2
3
4

N0

5
6
7
8

N1
N2
N3
N4

9
10

N5
N6

11
12

N7
N8

main()
{
FILE *cfPtr;
struct clientData client;
if ((cfPtr = fOpen("credit.dat", "r")) == NULL)
printf("File could not be opened. \n");
else {
printf(%-6s%-25s%10s\n", "Acct", "Name", "Balance");
while (!eof(cfPtr)) {
fread(&client, sizeof(struct clientData), 1, cfPtr);
if (client.balance > 0)
printf("%-6d%-25s%10,2f\n",
client.acctNum, client.Name, client.balance);

13 N9
14 N10

15 N11

fclose(cfPtr);

16 N12

Prueba Estructural. Ejemplo. Paso 2


1
2
3
4

N0

5
6
7
8

N1
N2
N3
N4

N0

main()
{
FILE *cfPtr;
struct clientData client;

N1

N3

if ((cfPtr = fOpen("credit.dat", "r")) == NULL)


printf("File could not be opened. \n");
else {
printf(%-6s%-25s%10s\n", "Acct", "Name", "Balance");

N2

N4

N5

9
10

N5
N6

11
12

N7
N8

while (!eof(cfPtr)) {
fread(&client, sizeof(struct clientData), 1, cfPtr);
if (client.balance > 0)
printf("%-6d%-25s%10,2f\n",
client.acctNum, client.Name, client.balance);

13 N9
14 N10

15 N11

fclose(cfPtr);

16 N12

N6

N7
N8

}
N9

N10

}
N11

N12

Prueba Estructural. Ejemplo. Paso 2


1
2
3
4

N0

5
6
7
8

N1
N2
N3

main()
{
FILE *cfPtr;
struct clientData client;

N0

if ((cfPtr = fOpen("credit.dat", "r")) == NULL)


printf("File could not be opened. \n");
N3
else {
printf(%-6s%-25s%10s\n", "Acct", "Name", "Balance");

N1

N2

N5

9
10

N5

11
12

N7
N8

while (!eof(cfPtr)) {
fread(&client, sizeof(struct clientData), 1, cfPtr);
N7

if (client.balance > 0)
printf("%-6d%-25s%10,2f\n",
N9
client.acctNum, client.Name, client.balance);

13 N9
14 N10

15

fclose(cfPtr);

16 N12

N10

N12

N8

Prueba Estructural. Ejemplo. Paso 2


N0

N1

N3

N2

N5

N7
N8
N9

N10

N12

V(G) = 4

Prueba Estructural. Ejemplo. Paso 3


N0

N1

FALSE

TRUE

N3

N5

N2

FALSE

TRUE
N7

FALSE

TRUE
N8

V(G) = 4

N9

N10

N12

4 caminos
a probar

Prueba Estructural. Ejemplo. Paso 3


Camino 1 (baseline):

N0

N0, N1, N3, N5, N7, N8, N9, N5, N10, N12
N1

FALSE
N3

N5

N2

FALSE

TRUE
N7

5(N1): if ((cfPtr = fOpen("credit.dat", "r"))


== NULL) FALSE
9(N5): while (!eof(cfPtr)) TRUE
11(N7): if (client.balance > 0) TRUE

TRUE
N8

9(N5): while (!eof(cfPtr)) FALSE

N9

Probar con:
N10

N12

credit.dat
1 Gmez, Javier

100

Prueba Estructural. Ejemplo. Paso 3


Camino 2:

N0

N0, N1, N2, N10, N12


N1

TRUE
N3

N2

5(N1): if ((cfPtr = fOpen("credit.dat", "r"))


== NULL) TRUE

N5

N7
N8
N9

Probar con:
N10

N12

Archivo inexistente

Prueba Estructural. Ejemplo. Paso 3


Camino 3:

N0

N0, N1, N3, N5, N10, N12


N1

FALSE
N3

N5

N2

FALSE

5(N1): if ((cfPtr = fOpen("credit.dat", "r"))


== NULL) FALSE
9(N5): while (!eof(cfPtr)) FALSE

N7
N8
N9

Probar con:
N10

N12

credit.dat

Prueba Estructural. Ejemplo. Paso 3


Camino 4:

N0

N0, N1, N3, N5, N7, N9, N5, N10, N12


N1

FALSE
N3

N5

N2

FALSE

TRUE

5(N1): if ((cfPtr = fOpen("credit.dat", "r"))


== NULL) FALSE
9(N5): while (!eof(cfPtr)) TRUE
11(N7): if (client.balance > 0) FALSE

N7

FALSE

N8

9(N5): while (!eof(cfPtr)) FALSE

N9

Probar con:
N10

N12

credit.dat
2 Morales, Sergio

-200

Prueba Estructural. Ejemplo. Paso 4

Camino Entrada (Archivo)


1 1|Gmez, Javier|100
2 Archivo inexistente
3 Archivo sin datos
4 2|Morales, Sergio|-200

Resultado Esperado
"Acct Name
Balance"
Balance"
"
1 Gmez, Javier
100"
"File could not be opened."
"Acct Name
Balance"
Balance"
"Acct Name
Balance"
Balance"

Prueba Estructural. Ejemplo. Paso 5

Camino
1
2
3
4

Pas /
Resultado Obtenido
Fall
"Acct Name
Balance" Pas
"
1 Gmez, Javier
100"
Pas
"File could not be opened."
"Acct Name
Balance" Pas
"Acct Name
Balance" Pas

Resultado de la prueba

Pas

Das könnte Ihnen auch gefallen