Download - Pruebas unitarias Testing
-
7/24/2019 Pruebas unitarias Testing
1/37
Testing de Software
-
7/24/2019 Pruebas unitarias Testing
2/37
Cuarta Unidad:TIPOS DE TESTING
-
7/24/2019 Pruebas unitarias Testing
3/37
4.1 Pruebas Unitarias
-
7/24/2019 Pruebas unitarias Testing
4/37
Comprender el significado de las pruebas unitarias
Distinguir pruebas de caja negra vs. pruebas de caja blanca
Lograr cobertura de la prueba adecuada
Aprender un estndar de prueba
Revise un plan de prueba de unidad
-
7/24/2019 Pruebas unitarias Testing
5/37
Objetivo de la prueba: maximizar el nmero y gravedad de los defectos encontradogastado
as: primera prueba
Lmites de la prueba: Prueba slo puede determinar la presencia de defectos, no su
utilizar las pruebas de correccin para establecer "ausencia"
-
7/24/2019 Pruebas unitarias Testing
6/37
Funciones
Modulus
Combinacin de Mdulos
2. InPruebas deIntegracintests
3.
Pruebas
delSistema
1.PruebasUnitarias
-
7/24/2019 Pruebas unitarias Testing
7/37
M
Combinacimtodos de
Paque
Incluye use
Funcin
Mdulo
Module combination
2. Pruebas deIntegracin
3.
Pruebas de
Sistema
1.Pruebas Unitarias
-
7/24/2019 Pruebas unitarias Testing
8/37
Elaboration
Unified Process
Inception Construction Transition
Requirements
Analysis
Design
Implemen-tation
Test
Jacobson et al:
USDP
Prelim.
iterations
Iter.
#1
Iter.
#n
Iter.
#n+1
Iter.
#m
Iter.
#m+1
Ite
#..
b
-
7/24/2019 Pruebas unitarias Testing
9/37
Elaboration
Unified Process
Inception Construction Transiti
Requirements
Analysis
Design
Implemen-tation
Test
Jacobson et a
USDP
Prelim.
iterations
Iter.
#1
Iter.
#n
Iter.
#n+1
Iter.
#m
Iter.
#m+1.. ..
Unit Tests Integration tests ... System
-
7/24/2019 Pruebas unitarias Testing
10/37
Hoja de ruta para pruebas unitarias
1. Plan de Pruebas
Unitarias
Requirimirntos
Resultadados de
Test
Detalles de diseo
. . . .
-
7/24/2019 Pruebas unitarias Testing
11/37
Hoja de ruta para pruebas unitarias
1. Plan forunit testing
-- see section SSS
Requerimientos
Unit test plan
2. Adquirir
Conjunto
de prueba
-- see section SSS
Productos de
Pruebas previas
3. Ejecutar
Prueba unitria
-- see section SSS
Conjunto de Pruebas
Resul
de Pr
Codigo bajo
Prueba
Detalles de diseo
Identifiquepuntos con
-
7/24/2019 Pruebas unitarias Testing
12/37
Black-, Gray-,& White-box Testing
Black box requerimientos*
salicom
reque
Entradasdeterminadas
por...
Resu
* De fase previa
-
7/24/2019 Pruebas unitarias Testing
13/37
Black box requerimientos
salida recomparad
cosalida requerid
White box
Gray box requerimientos &
Elementos clave de diseo
Entrada
determinada
por..
Resultados
elementos de
diseo
Confirmacinde comportamiento
esperado
En cuanto a lapruebas de caja
negra y blanco
Black-, Gray-,& White-box Testing
-
7/24/2019 Pruebas unitarias Testing
14/37
Posibilidades de Prueba de entradade Test Input
interest ra
25%
principal
$100 $100M
inflation
estimate
1%
20%
Infinitamentemuchos valores
legales:
elegir unamuestra finita.
Infinitamente
muchosvaloresilegales:
elegirunamuestrafinita.
-
7/24/2019 Pruebas unitarias Testing
15/37
Prueba de particionamiento de entrLmites
tasa de
interes0%
25%
principal
$100 $100M
inflacin
estimada
lmites
1%
20%
particiones deequivalencia
Una
regin
ilegal
Rango de entradas vlidas
-
7/24/2019 Pruebas unitarias Testing
16/37
Rangos de prueba: Casos elementale1. dentro del rango
2. en los lmites
Del rango
3. fuera del rango
("Ilegal")
range
-
7/24/2019 Pruebas unitarias Testing
17/37
Cubrir cada declaracin no es suficie(Myers)
u>1 and
v==0
x = x/u
u==2 or
x>0
++x
No
Yes
No
Yes
ProgramaRequerido
-
7/24/2019 Pruebas unitarias Testing
18/37
u>1 and
v==0
x = x/u
u==2 or
x>0
++x
No
Yes
Cdigo implementado en
diagrama de flujo
if( (u>1) && (v==0) ) (1)
x = x/u;
if( (u==2) || (x>3) )
++x;
u=2, v=0 and x=3
ejecuta cada linea (1) - (4)
dando la salida correcta x=
Sin embargo, la lnea (3) esNo
Yes
Programa
Requerido
Cubrir cada declaracin no es suficie(Myers)
-
7/24/2019 Pruebas unitarias Testing
19/37
Caminos de comprobacin
Parameter &
settings make
sense?
Parameter
name toolong?
N
YN
Set _name to
defaultName"
Y
Truncate
name
Set _name
to parameter
-
7/24/2019 Pruebas unitarias Testing
20/37
Caminos de comprobacin
Parmetros y
ajustes tienen
sentido?
Parametro
nombre
demasiado
largo?
N
YN
Cobertura
Decisin
Set _name para
defaultName"
Y
Trunca
nombre
Set _name
al parmetro
-
7/24/2019 Pruebas unitarias Testing
21/37
Pruebas basadas en Assert para max1.2
public static boolean checkAssertion
( int loopSoFarP, int indexOfMaxP, double[] arrayP )
{
// Estableci por primera vez siguientes booleanos :
boolean b1M = true; / * Significa valores de arrayP [] son inferio
arrayP [indexOfMaxP] para todos los ndices
-
7/24/2019 Pruebas unitarias Testing
22/37
public static boolean checkAssertion
( int loopSoFarP, int indexOfMaxP, double[] arrayP )
{
// Primero establecidas siguientes booleanos:
boolean b1M = true; /* significa valores de arrayP [] son inferior
arrayP [indexOfMaxP] para todos los ndices
-
7/24/2019 Pruebas unitarias Testing
23/37
if
( // Loop has progressed up to index loopSoFarP
( 0
-
7/24/2019 Pruebas unitarias Testing
24/37
/** Finds index & value of first of the largest array elements ... */public static void main( String[] mainArg ){
double[] a = getArray();
// Let I be the assertion (see section tbd of chapter 7) ... Estab
int i = 0;int k = 0;boolean validityM = checkAssertion( i, k, a ); // assertion tes
// Following preserves I . terminates . (section tbd of chaptewhile( i != a.length - 1 ){ ++i;
if( a[i] > a[k] )k = i;validityM = validityM && checkAssertion( i, k, a ); // assertion tes
}
System.out.println( "First max value is " + a[k] + " at index " + k );System.out.println( "Validity: " + validityM ); // assertion re
}
La aplicacin de las pruas
-
7/24/2019 Pruebas unitarias Testing
25/37
Planificacin de las pruebas unitaria1. Decidir sobre la filosofa de las pruebas unitarias
ingeniero individual responsable (comn)?
revisado por los dems? diseado y realizado por los dems?
2. Decida qu / dnde / cmo documentar
conjunto de documentos personales individuales (comn)?
cmo / cundo incorporar a otros tipos de pruebas?
incorporar en los documentos formales?
utilizar herramientas / utilidades de prueba?
3. Determinar el alcance de las pruebas unitarias (es decir, con antelacin).
hacer no slo "de prueba hasta que el tiempo expira"
priorizar, por lo que las pruebas importantes definitivamente realizan
4. Decidir cmo y dnde obtener la entrada de prueba
ver seccin por determinar.
5. Estimar los recursos necesarios
utilizar datos histricos si estn disponibles
-
7/24/2019 Pruebas unitarias Testing
26/37
Realizar Prueba Mtodo (Humphrey1. Verifique el funcionamiento en valores de los parmetros normales (una prueba
sobre la base de los requisitos de la unidad)
2. Verifique la operacin en valores de los parmetros de lmite (caja negra)
3. Verifique el funcionamiento fuera de los valores de parmetros (caja negra)
4. Asegrese de que todas las instrucciones se ejecutan (cobertura de declaracin)
5. Revise todos los caminos, incluyendo ambos lados de todas las ramas (cobertura
6. Compruebe el uso de todos los llamados objetos
7. Verificar el manejo de todas las estructuras de datos
8. Verifique el manejo de todos los archivos
-
7/24/2019 Pruebas unitarias Testing
27/37
Realizar Prueba Mtodo (Humphrey9. Compruebe la terminacin normal de todos los bucles
(parte de una prueba de correccin)
10. Compruebe la terminacin anormal de todos los bucles
11. Compruebe la terminacin normal de todas las recurrencias
12. Compruebe la terminacin anormal de todos recursiones
13. Verificar el manejo de todas las condiciones de error
14. Compruebe temporizacin y sincronizacin
15. Verifique que todas las dependencias de hardware
-
7/24/2019 Pruebas unitarias Testing
28/37
(1) D-Requirements3.2.EC.1.2 Cualidades de caracteresEncuentro
Cada personaje del juego tiene el mismoconjunto de cualidades. Cada cualidaddebe ser un nmero de punto flotante nonegativo con al menos un decimal deprecisin. . .
(2) Design GameCharacterrequerimientosUna clase abstracta con nombre deatributo ...
. . . .
-
7/24/2019 Pruebas unitarias Testing
29/37
Relacionar Pruebas paraRequisitos y Diseo
(1) D-Requirements3.2.EC.1.2 Cualidades de caracteres
Encuentro
Cada personaje del juego tiene el mismo
conjunto de cualidades. Cada cualidad
debe ser un nmero de punto flotante no
negativo con al menos un decimal de
precisin. . . . Characters
GameCharacter
EncounterCharacter
adjustQuality()
(2) Diseo GameCharacteRequerimientos
Una clase abstracta con nombre de a
EncounterCharacters
... Contra este requerimiento
Test este metodo ...
Probar esta clase ...
... contra este requisito
Aplicado a ...
-
7/24/2019 Pruebas unitarias Testing
30/37
Unit test
p
Concentracin A
Results in a
zero value?
1. Dentro del
Rango
No:
Test 1.1Test 1.1.1
Yes:
Test 1.2Test 1.2.1
La particin de la
gama de pruebas
unitarias 1 de 2Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Aplicado para ...
-
7/24/2019 Pruebas unitarias Testing
31/37
Unit test
Concentracin ag
Results in a
zero value?
2. Fuera de
Rango
No:
Test 2.1Test 2.1.1
Yes:
Test 2.2Test 2.2.1
La particin de la
gama de pruebas
unitarias 2 de 2Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
d l l b
-
7/24/2019 Pruebas unitarias Testing
32/37
Una manera de realizar las pruebasUnitarias1. Mtodos de entrenamiento en combinacin 2-5, por lo general
Elegir secuencias ms comunes primero
incluir secuencias que puedan causar defectos
Requiere salidas de computacin en los valores de los atributos resultantes
2. Enfocado en pruebas unitarias en cada atributo inicializar, a continuacin, ejecutar secuencias de mtodo que la afectan
3. Verifique que cada invariante de clase no se ha modificado Verifique que el invariante es cierto con los valores iniciales
Ejecutar una secuencia (por ejemplo, el mismo que en 1.)
Verificar que el invariante sigue siendo verdad
4. Verifique que los objetos de transicin entre los estados esperados Planificar la secuencia de eventos / transicin de estado
Configurar el objeto en el estado inicial estableciendo las variables
Proporcionar primer evento y consultar ocurri esa transicin. etctera
S i d E d P b d
-
7/24/2019 Pruebas unitarias Testing
33/37
Secuencia de Encuentro de Prueba dtransicin de estados 1 de 2
Esperando
Preparacin test step 1
Verifique que el juego est
inicialmente en estado de
Preparacin (mediante la
comprobacin de la
pertenencia a una clase de
gameStateI)
Jugadordescarta
mencualidades
-
7/24/2019 Pruebas unitarias Testing
34/37
Waiting
Preparacin
paso de la ppaso de la prueba 2
paso de la prueba 3
Descartar el men de calidad,
y verificar que el juego est
en estado de espera.
Mueva el personaje del
jugador a un rea
adyacente, y verificar que
el juego todava est en
estado de espera.
Jugadordescarta
mencualidades
Mover a lazona
adyacente
P b d S i d t i i d
-
7/24/2019 Pruebas unitarias Testing
35/37
Prueba de Secuencia de transicin destados de Encuentro 1 de 2
Waiting
Preparing test step test step 2
test step 3
Verifique que el juego e
inicialmente en estado
Preparacin (mediante
comprobacin de la pe
una clase de gameState
Descartar el men de calidad,
y verificar que el juego est en
estado de espera.
Mueva el personaje del
jugador a un rea
adyacente, y verificar
que el juego todava
est en estado de
espera.
Jugadordescarta
mencualidades
Mover a lazona
adyacente
P b E t d T i i l t
-
7/24/2019 Pruebas unitarias Testing
36/37
Prueba Estado-Transicin completarencuentro
Playerdescarta
Cualidades
Del men
Personaje entraen zona
habitada por unrival
Mover a lazona
adyacente
Espera
Preparacin
Engaging
12
3
4
5
informes
Jugadordescarta
meninforme
encuentro
Encuentrocompletado
6
-
7/24/2019 Pruebas unitarias Testing
37/37
ResumenPruebas Unitarias = "piezas"
Otras pruebas = " assemblies "
Caja Negra: solo entrada / salida
Caja blanca: verifica el procesamiento
Varias maneras
Asegurar la integridad
La planificacin de prueba temprano/ mejor Ayuda a aclarar los requisitos