Académique Documents
Professionnel Documents
Culture Documents
Pruebas de Integracin
Juan Manuel Fernndez Pea
Abril 2011
Idea general
Pruebas de Integracin (1/3)
Prueban grupos de unidades relacionadas;
verifica su operacin conjunta.
nfasis est en la interaccin y no en
funcionamiento individual.
Si cada elemento fue adecuadamente
probado, no deberan funcionar bien al
probarlas conjuntamente?
Sin embargo, el todo es ms que la suma de sus
partes.
Idea general
Pruebas de Integracin (2/3)
Pruebas de unidad:
no aseguran dominios de datos homogneos,
pueden omitir algn comportamiento que slo
ocurre al interactuar con otro elemento.
Idea general
Pruebas de Integracin (3/3)
Ejemplo: unidad A enva peticin a unidad B
usando un parmetro entero, posibles
conflictos:
la primera supona un intervalo [-100, 100] para
los valores posibles, mientras la segunda supona
nicamente el intervalo [-10, 10];
puede ocurrir que una usa enteros de 16 bits y la
otra enteros de 32 bits.
Interacciones
unidades del sistema, externas o hardware
Parmetros
(valores, referencias)
Unidad
A
Unidad
B
Parmetros (referencias)
Valor de regreso
Excepcin
A pasa el control a B
A pasa ciertos parmetros a B, como valores
A tiene ciertas expectativas sobre la respuesta de B (poscondiciones),
que pueden estar definidas ms o menos formalmente o supuestas
A recibe resultado de B
A recibe el control de regreso de B
A comparte con B valores de parmetros por referencia o variables
globales
Interacciones
unidades del sistema, externas o hardware
Parmetros
(valores, referencias)
Unidad
A
Unidad
B
Parmetros (referencias)
Valor de regreso
Excepcin
Ejemplos de interaccin
Unidad A
Unidad B
Mdulo de control de Mdulo calcula
frenado de un vehculo aceleracin con datos
de posicin en distintos
tiempos
Mdulo de nmina
Manejador de Base de
encargado de calcular datos
pago de empleado
Pgina html en cliente Programa en servidor
Componente que
almacena fotos
digitales en un disco
Mdulo encargado de
tomar datos de
temperatura
Interaccin
Se envan datos de posicin,
regresa aceleracin
Problemas de interaccin
Problemas de interfaz entre unidades
Problemas no funcionales (tiempo, recursos)
Problemas de configuracin (software
funciona bien)
Problemas de integridad
Problemas de interaccin
interfaz
Tipo de defecto
Parmetro
seleccionado de
manera errnea
Ejemplo o comentario
Se tom el parmetro pre
como el que lleva el precio de
un producto, pero en realidad
era un valor de precedencia
Parmetros (y valor
Se enva un entero y se
de retorno) de tipo
esperaba un nmero de punto
distinto al esperado
flotante
Carencia de aviso de Un valor no previsto genera
excepcin (en Unidad una divisin por cero,
B)
causando que el programa se
termine de modo abrupto
Causa posible
Confusin por mala
documentacin, nombres
inadecuados o descuido
Lenguaje sin refuerzo de
tipos (era ms frecuente
en el pasado)
Deben considerarse
posibles riesgos si los
datos no cumplen
condiciones
preestablecidas y stas
deben informarse
No se consider que el
software puede fallar de
maneras no esperadas
Problemas de interaccin
interfaz
Tipo de defecto
Valores inadecuados,
aunque el tipo sea
compatible
Ejemplo o comentario
Se enva un entero de 32
bits pero se esperaba uno
de 16 bits
Causa posible
Descuido entre tipos de una
misma jerarqua o poco
detallados en
documentacin
Valores que violan la
Un valor debe estar entre Falta de comunicacin entre
definicin del dominio cero y 10000; llega valor
autores de unidades o mala
de datos esperados
negativo o mayor a 10000 documentacin
Valores con significado Se envan datos en
Falta documentacin de
semntico diferente al unidades del sistema
semntica asociada con
esperado
decimal, pero se
parmetros; unidades de
esperaban en sistema
medida de cualquier tipo,
ingls (o datos en pesos y protocolos y cuestiones
se esperaban en euros)
culturales.
Problema de protocolo Una parte del dilogo entre Mala implementacin del
unidades no cumple el
protocolo o desconocimiento
orden del protocolo
del mismo
Problemas de interaccin
aspectos no funcionales
Tipo de defecto Ejemplo o comentario
Problema de
El tiempo conjunto es
rendimiento
excesivo para las
expectativas del cliente
Conflicto entre
componentes
Fugas de
memoria
Causa posible
Unidades ineficientes o usan
recursos compartidos de manera
ineficiente; por separado son
rpidas pero una mala
programacin de hilos o control de
procesos las vuelve lentas
No se maneja de manera adecuada
la concurrencia
Problemas en el manejo de
memoria, especialmente al liberar
segmentos de manera descuidada.
Son ms frecuentes en lenguajes
de bajo nivel
unidades abusan de recursos
disponibles o no se calcularon
necesidades conjuntas.
Problemas de interaccin
configuracin
Tipo de defecto
Invocacin de
versin obsoleta
Invocacin de
versin an no
instalada
Invocacin de
componente no
disponible
Ejemplo o comentario
interfaz que fue vlida
alguna vez, pero que ha
sido desplazada por
otra
interfaz que an no est
operando, aunque se
haya anunciado
Se invoca una unidad
que debiera existir, pero
no se encuentra o est
deshabilitada
Problema con
Nunca recibe datos o
unidad de hardware estos no son los
esperados
Causa posible
Descuido al elegir los elementos a
utilizar
Problemas de interaccin
integridad
Tipo de defecto
Violacin de integridad de
datos
Estructura de datos
incorrecta o inconsistente
Ejemplo o comentario
Una unidad elimina
registros de una base de
datos que requiere otra
unidad
Causa posible
No se analizaron
adecuadamente las
responsabilidades de cada
unidad y las necesidades
de integridad
una unidad altera archivos No se analizaron
o registros en memoria
adecuadamente las
compartida, que forman
responsabilidades de cada
parte de la estructura de
unidad y las necesidades
datos comn
de integridad
Estrategias
Dos aspectos:
Conjunto de unidades a probar
Descomposicin funcional
Comportamiento
Conjuntos de unidades
suponiendo descomposicin funcional
Big bang
Descendente
Ascendente
Por parejas
Vecindades
Caminos de
mensajes
Proceso
estadstico
Lee datos
Calcula
medidas
Genera
grfico
Obtener
datos
Obtener
tarjeta vlida
Introducir
tarjeta
Validar
tarjeta
Calcula
Adeudo
Rechazar
tarjeta
Sacar
tarjeta
Mostrar
mensaje en
display
Mostrar
mensaje en
display
Obtener
tiempos
Lee fecha y
hora
entrada
Cobra
Obtener fecha
y hora actual
Introduce
billete
Escanea
billete
Recibir
billete
Valida
billete
Recibir pago
Recibir
moneda
Introduce
moneda
Marcar pago
Escribe
pago y
hora
Valida
moneda
Sacar
tarjeta
Dar
cambio
Ejemplo: detalle
SAC
Idtarjeta, Fent, hent,
fsal, hsal
resu
IDtarjeta
Obtener
datos
Fent, hent,
fsal, hsal
mens
Obtener
tarjeta vlida
Rechazar
tarjeta
Obtener
tiempos
IDtarjeta
Hay tarjeta
resu
Introducir
tarjeta
Fesal, hesal
mens
Fent, hent
Validar
tarjeta
Sacar
tarjeta
Mostrar
mensaje en
display
Lee fecha y
hora
entrada
Obtener fecha
y hora actual
Manejadores y cabos
Adems de unidades a probar, puede haber otras
que participan:
Manejadores: solicitan servicios de las unidades en
prueba, les pasan parmetros
Cabos: ejecutan acciones auxiliares, calculan
resultados, simulan elementos externos
Razones:
An no codificadas
Complejas y se prefiere versin ligera
Se pruebas situaciones que ocurren rara vez
Big bang
Se prueba todo junto, produciendo una
explosin; nadie sabe qu fall o por qu
Unas fallas enmascaran otras
Se usa en empresas sin cuidado en calidad
No se recomienda
Descendente
De la raz hacia las hojas
Raz y cabos; raz un mdulo y cabos;
No especifican si uno a uno o en grupos por nivel
SAC
(Mdulo real)
Obtener
datos
(cabo)
Calcula
Adeudo
(cabo)
Cobra
(cabo)
Obtener
datos
(cabo)
Calcula
Adeudo
(Mdulo real)
Cobra
(cabo)
Ascendente
Obtener Tarjeta
vlida
(manejador)
Sw-hay-tarjeta
resu
Introducir tarjeta
(mdulo real)
Paso 1
Paso 2
resu
IDTarjeta
Validar tarjeta
(mdulo real)
IDTarjeta
Obtener Tarjeta
vlida
(mdulo real)
Introducir tarjeta
(mdulo real)
Validar tarjeta
(mdulo real)
Parejas
Cuando no hay un orden estricto de terminacin de
mdulos, pueden irse probando pares conforme
estn listos
Se completa con manejadores y cabos
Genera muchas pruebas
Vecindades
Si se combina desarrollo ascendente y
descendente, pueden formarse grupos de
mdulos relacionados
Preferentemente dos niveles o tres; muchos
cae en big bang
A veces llamada estrategia sandwich
Caminos y mensajes
En vez de estructura, se gua por el usuario,
quien busca realizar tareas, ms que activar
mdulos especficos
Adecuado con casos de uso
Muchas veces comienzan con una interaccin
del usuario con interfaz y prosiguen hasta
tener una respuesta o llegar a un punto donde
no hay ms qu hacer
Caminos y mensajes
ejemplo
Probar cobro con un solo
billete, hasta que saldo = 0
Camino de
mensajes
SAC
Cobra
Mostrar
mensaje en
display
Obtener fecha
y hora actual
Introduce
billete
Escanea
billete
Recibir
billete
Valida
billete
Recibir pago
Recibir
moneda
Introduce
moneda
Marcar pago
Escribe
pago y
hora
Valida
moneda
Sacar
tarjeta
Dar
cambio
Fragmento de SAC
Llamada a Cobra
Fragmento de Cobra
Llamada a Mostrar mensaje
Cdigo de Mostrar
Regreso a Cobra
Fragmento de Cobra
Llamada a Recibir pago
Fragmento de Recibir pago
Llamada a Recibir billete
Fragmento de Recibir billete
Llamada a Introduce billete
Regreso a Recibir billete
Fragmento de Recibir billete
Llamada a Escanea billete
Regreso a Recibir billete
Fragmento de Recibir billete
Llamada a Valida billete
Regreso a Recibir billete
Regreso a Recibe pago
Regreso a Cobra
Fragmento de Cobra
Llamada a Mostrar mensajedisplay
Cdigo de Mostrar
Regreso a Cobra
Regreso a SAC
Seleccin de valores
Preparar casos de prueba:
Todos los valores de una vez o
Secuencia, como en prueba de sistema
que
Ejemplo
cantidad, cliente
cantidad, cliente
CalculaPrecio
Orden de surtido
o rechazo
Autoriza
Autorizacin (o rechazo)
Ejemplo (sigue)
Suponga maxCant = 1200
Valores de entrada
Resultado
Cantidad <1, cliente Rechazado por CalculaPrecio,
=CliConocido
ya que es una cantidad
inaceptable
1 < cantidad < 1201, Calcula precio regresa orden de
cliente =CliConocido surtido con
costo = precio * cantidad
Cantidad
>1200, CalculaPrecio pasa los datos a
cliente =CliConocido Autoriza; como CliConocido
est
en
lista,
regresa
autorizacin y CalculaPrecio
emite la orden de surtido.
Cantidad
>1200, CalculaPrecio pasa los datos a
cliente =CliNuevo
Autoriza; como CliNuevo no
est en lista, rechaza el pedido
y CalculaPrecio emite un
rechazo por volumen excesivo
Atraviesa
No
No
1. Identificacin
2. Elementos a probar
3. Enfoque
4. Criterio de aceptacin o rechazo de un caso de prueba
5. Criterio de suspensin
6. Productos a entregar
7. Tareas a realizar para satisfacer el proceso
8. Necesidades ambientales
9. Responsabilidades
10.Personal necesario y si requieren entrenamiento.
11.Calendario
12.Riesgos y contingencias que pueden ocurrir en el proceso
de prueba
Ascendente
4. Criterio aceptacin
5. Criterio suspensin
6. Productos a
entregar
7. Tareas
8. Necesidades
ambientales
10. Personal
11. Calendario
12. Riesgos y
contingencias