Gestin de Pruebas
Pruebas
de
aceptacin
Pruebas
unitarias:
JUnit
Ing. de Sistemas - Lic. Ivan Fernandez Daza
ndice
Pruebas:
qu
es
probar?
Cmo
hacer
pruebas
con
JUnit
Enfoque
de
las
pruebas
caja
negra
|
caja
blanca
cobertura
Algunas Palabras
informales
Pruebas
fallos
desarrollo
pruebas
falla
pasa
pruebas
de
aceptacin
falla
pasa
Obje:vo
El
obje6vo
nico
de
las
pruebas
es
encontrar
errores
en
el
cdigo
antes
de
que
aparezcan
en
ejecucin
Probar es provocar
Aforismos
Probar
es
buscar
fallos
Cuantos
ms
fallos
se
encuentran
en
una
unidad,
ms
fallos
6ene
cuando
se
iden6ca
un
bicho
malo
hay
que
machacarlo
Enfoque
psicolgico
El
que
desarrolla
quiere
comprobar
que
el
programa
funciona
con
todo
lo
que
se
le
ocurre
que
debe
ir
El
que
prueba
intenta
que
el
programa
falle
con
todo
lo
que
se
le
ocurre
que
puede
fallar
Caso
de
prueba
Debe
denir
un
obje6vo:
qu
error
buscamos?
unos
datos
de
prueba
unos
resultados
esperados
un
procedimiento
de
ejecucin
un
criterio
para
saber
si
la
prueba
PASA
la
prueba
FALLA
la
prueba
no
es
CONCLUYENTE
/** javadoc
java
JUnit
Plan
de
pruebas
batera
de
casos
denir
grupos
de
pruebas
(macro-obje6vos)
denir
casos
de
pruebas
(micro-obje6vos)
ndice
Pruebas:
qu
es
probar?
Cmo
hacer
pruebas
con
JUnit
Enfoque
de
las
pruebas
caja
negra
|
caja
blanca
cobertura
Algunas Palabras
10
JUnit
h9p://downloads.sourceforge.net/junit/junit-4.5.jar
cheros
de
pruebas
import
junit.framework.TestCase;
public
class
Test_NOMBRE_DEL_GRUPO
extends
TestCase
{
public
void
test_NOMBRE_DE_LA_PRUEBA_1
()
{
//
planteamiento
del
escenario
assertEquals(valor_esperado,
valor_obtenido);
}
public
void
test_NOMBRE_DE_LA_PRUEBA_n
()
{
//
planteamiento
del
escenario
assertEquals(valor_esperado,
valor_obtenido);
}
}
12
Reglas
extendsTestCase
Mtodos
de
prueba
Pruebas
individuales
fallos
singularizados
Si
falla
alguno
las
pruebas
encadenadas
no
avanzan
18
Excepciones
El
cdigo
puede
lanzar
excepciones
falla
si
...
lanza
excepciones
no
previstas
no
lanza
excepciones
previstas
19
ndice
Pruebas:
qu
es
probar?
Cmo
hacer
pruebas
con
JUnit
Enfoque
de
las
pruebas
caja
negra
|
caja
blanca
cobertura
Algunas Palabras
23
Enfoques
De
caja
negra
cuando
conocemos
lo
que
6ene
que
hacer
el
cdigo
ejercitamos
todo
lo
que
6ene
que
hacer
pruebas
funcionales
De
caja
blanca
cuando
conocemos
el
cdigo
fuente
forzamos
la
ejecucin
de
todo
el
cdigo
pruebas
estructurales
24
caja negra
Casos de prueba
25
caja negra
Datos de prueba
clase
de
equivalencia:
datos
que
provocan
el
mismo
comportamiento
no
parece
que
deban
provocar
comportamientos
diferentes
26
caja negra
Datos de prueba
27
caja blanca
Casos de prueba
Mtodo
si
va
tachando
el
cdigo
probado
100%
es
cuando
todo
est
tachado
28
caja blanca
Casos de prueba
if
(...)
si
T,
si
F
switch
(...)
cada
case
+
default
cobertura
de
bucles
for
->
3
pruebas:
0
veces,
1
vez,
n>1
veces
repeat
->
2
pruebas:
1
vez,
n>1
veces
while
->
3
pruebas:
0
veces,
1
vez,
n>1
veces
29
Medidas:
cobertura
Cuntas
pruebas
hay
que
hacer?
no
se
puede
probar
con
todos
los
datos
posibles
la
cobertura
mide
cunta
variedad
de
casos
hemos
cubierto
En
caja
negra
casos
probados
/
clases
posibles
En
caja
blanca
lneas
probadas
/
lneas
de
cdigo
condiciones
probadas
/
opciones
en
el
cdigo
bucles
probados
/
bucles
presentes
30
ndice
Pruebas:
qu
es
probar?
Cmo
hacer
pruebas
con
JUnit
Enfoque
de
las
pruebas
caja
negra
|
caja
blanca
cobertura
Algunas Palabras
31
32
33
Repasando........
Un programa es aceptable cuando:
Hace lo que se acord que deba hacer en las especificaciones.
No hace lo que no debe hacer.
JUNIT. Prueba
10
11
12
Integer.MIN_VALUE
13
14
15
16
17
18
import junit.framework.*;
public class Pruebas extends TestCase {
// variables_privadas
public Pruebas ( ) {
// inicializacin
}
public void testXXX ( ) {
// cdigo para verificar que el mtodo a probar funciona correctamente
}
public static void main (String[ ] args) {
junit.textui.TestRunner.run(Pruebas.class); // ejecucin consola texto
// junit.swingui.TestRunner.run(Pruebas.class); // ejecucin ventana
}
} // fin de clase
19
20
10
JWebUnit
JFCUnit
Jester
Cactus
JXUnit
JUnit
27
14