Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Pruebas de Integracin identifican :
problemas de interfaces entre unidades,
falta de coherencia entre lo que se espera de una
unidad y lo que se ofrece.
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.
Pruebas de unidad previas
Se hacen contra especificaciones, no siempre
completas y cuidadosas
O se hace con su implementacin, dejando
huecos en funciones especificadas
Usualmente se aslan de su contexto
Del propio sistema
Del software auxiliar
Del hardware
Interacciones
unidades del sistema, externas o hardware
Parmetros
(valores, referencias)
Unidad Unidad
A 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 Unidad
A B
Parmetros (referencias)
Valor de regreso
Excepcin
Ejemplos de interaccin
Unidad A Unidad B Interaccin
Mdulo de control de Mdulo calcula Se envan datos de posicin,
frenado de un vehculo aceleracin con datos regresa aceleracin
de posicin en distintos
tiempos
Mdulo de nmina Manejador de Base de Envan una consulta (query) y
encargado de calcular datos reciben un conjunto de datos
pago de empleado (que puede ser vaco), un
aviso de error o una excepcin
Pgina html en cliente Programa en servidor clave y contrasea para ser
validadas; respuesta o aviso
de falla por exceso de tiempo
u otra causa
Componente que Servicio del SO que Solicita espacio disponible
almacena fotos informa espacio para decidir si puede
digitales en un disco disponible almacenar la fotografa
Mdulo encargado de Tarjeta de adquisicin Cada cierto tiempo solicita
tomar datos de de datos con sensor de dato, lo lee y almacena
temperatura temperatura conectado
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 Ejemplo o comentario Causa posible
Parmetro Se tom el parmetro pre Confusin por mala
seleccionado de como el que lleva el precio de documentacin, nombres
manera errnea un producto, pero en realidad inadecuados o descuido
era un valor de precedencia
Parmetros (y valor Se enva un entero y se Lenguaje sin refuerzo de
de retorno) de tipo esperaba un nmero de punto tipos (era ms frecuente
distinto al esperado flotante en el pasado)
Carencia de aviso de Un valor no previsto genera Deben considerarse
excepcin (en Unidad una divisin por cero, posibles riesgos si los
B) causando que el programa se datos no cumplen
termine de modo abrupto condiciones
preestablecidas y stas
deben informarse
Carencia de previsin Excepcin impide el fallo del No se consider que el
sobre ocurrencia de programa, pero Unidad A la software puede fallar de
excepciones ignora dejando valores maneras no esperadas
indefinidos
Problemas de interaccin
interfaz
Tipo de defecto Ejemplo o comentario Causa posible
Valores inadecuados, Se enva un entero de 32 Descuido entre tipos de una
aunque el tipo sea bits pero se esperaba uno misma jerarqua o poco
compatible de 16 bits 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 Causa posible
Problema de El tiempo conjunto es Unidades ineficientes o usan
rendimiento excesivo para las recursos compartidos de manera
expectativas del cliente ineficiente; por separado son
rpidas pero una mala
programacin de hilos o control de
procesos las vuelve lentas
Conflicto entre sufren abrazo mortal o No se maneja de manera adecuada
componentes prdida de datos la concurrencia
Fugas de Conforme operan las Problemas en el manejo de
memoria unidades, comienza a memoria, especialmente al liberar
reducirse la memoria segmentos de manera descuidada.
disponible, sin razn Son ms frecuentes en lenguajes de
aparente bajo nivel
Recursos Al operar juntas se unidades abusan de recursos
insuficiente para bloquean por falta de disponibles o no se calcularon
carga nominal recursos o se degrada su necesidades conjuntas.
funcionamiento
Problemas de interaccin
configuracin
Tipo de defecto Ejemplo o comentario Causa posible
Invocacin de interfaz que fue vlida Descuido al elegir los elementos a
versin obsoleta alguna vez, pero que ha utilizar
sido desplazada por
otra
Invocacin de interfaz que an no est Descuido al elegir los elementos a
versin an no operando, aunque se utilizar
instalada haya anunciado
Invocacin de Se invoca una unidad bibliotecas no instaladas o
componente no que debiera existir, pero daadas, software de terceros en
disponible no se encuentra o est directorios equivocados o
deshabilitada inaccesibles por cualquier causa
(red desconectada, exceso de
transacciones, bloqueo del firewall,
falta de permisos)
Problema con Nunca recibe datos o dispositivo requiera alimentacin
unidad de hardware estos no son los elctrica adicional o alguna
esperados configuracin que se omiti
Problemas de interaccin
integridad
Tipo de defecto Ejemplo o comentario Causa posible
Violacin de integridad de Una unidad elimina No se analizaron
datos registros de una base de adecuadamente las
datos que requiere otra responsabilidades de cada
unidad unidad y las necesidades
de integridad
Estructura de datos una unidad altera archivos No se analizaron
incorrecta o inconsistente 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
Seleccin de valores para casos de prueba
Mtodos ya vistos, pero asegurando que los valores
obliguen a interaccin
Conjuntos de unidades
suponiendo descomposicin funcional
Big bang
Supone rbol de mdulos, como:
Descendente
Ascendente Proceso
estadstico
Por parejas
Vecindades
Calcula Genera
Caminos de Lee datos
medidas grfico
mensajes
Ejemplo para ilustrar
mquina de cobro de estacionamiento
SAC
Obtener Calcula
Cobra
datos Adeudo
Mostrar
Obtener Rechazar Obtener
mensaje en Recibir pago Marcar pago
tarjeta vlida tarjeta tiempos
display
Ejemplo: detalle
SAC
Obtener
resu datos Fent, hent,
IDtarjeta
fsal, hsal
mens
IDtarjeta
Fesal, hesal
Hay tarjeta mens
resu Fent, hent
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 Calcula
Cobra
datos Adeudo
(cabo)
(cabo) (cabo)
SAC
(Mdulo real)
Obtener Calcula
Cobra
datos Adeudo
(cabo)
(cabo) (Mdulo real)
Ascendente
De las hojas (mdulos que no llaman a otros) hacia la raiz.
Cada mdulo terminal se supone probado como unidad; se usa
manejador para uno o ms de ellos.
No se especifica si primero todo un nivel o subiendo por el rbol
Se adapta a subrboles
Obtener
Obtener Tarjeta
datos
vlida
(manejador)
(manejador)
Paso 2
resu IDTarjeta
Sw-hay-tarjeta IDTarjeta
resu
Obtener Tarjeta
Introducir tarjeta Validar tarjeta vlida
(mdulo real) (mdulo real) (mdulo real)
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
Fragmento de SAC
Caminos y mensajes Llamada a Cobra
Fragmento de Cobra
Ejemplo
cantidad, cliente cantidad, cliente
CalculaPrecio Autoriza
Autorizacin (o rechazo)
Orden de surtido
o rechazo