Está en la página 1de 18

Ingeniera de Software I

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

B tiene ciertas expectativas sobre los parmetros que puede recibir


(precondiciones), que pueden estar definidas ms o menos
formalmente o supuestas
B tiene ciertas reglas internas que deben cumplirse (invariantes), que
pueden estar definidas ms o menos formalmente o supuestas
Si expectativas de B no se cumplen o se rompen sus reglas internas, se
produce una interrupcin, que puede pasar como respuesta hacia A
A y B pueden comunicarse usando un protocolo con datos viajando en
una y otra direccin, por turnos.

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

Mostrar Lee fecha y Escribe


Introducir Validar Sacar Obtener fecha Recibir Recibir Sacar Dar
mensaje en hora pago y
tarjeta tarjeta tarjeta y hora actual billete moneda tarjeta cambio
display entrada hora

Introduce Escanea Valida Introduce Valida


billete billete billete moneda moneda

Ejemplo: detalle
SAC

Idtarjeta, Fent, hent,


fsal, hsal

Obtener
resu datos Fent, hent,
IDtarjeta
fsal, hsal

mens

Obtener Rechazar Obtener


tarjeta vlida tarjeta tiempos

IDtarjeta
Fesal, hesal
Hay tarjeta mens
resu Fent, hent

Mostrar Lee fecha y


Introducir Validar Sacar Obtener fecha
mensaje en hora
tarjeta tarjeta tarjeta y hora actual
display entrada
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 Calcula
Cobra
datos Adeudo
(cabo)
(cabo) (cabo)

(a) Primer paso descendente

SAC
(Mdulo real)

Obtener Calcula
Cobra
datos Adeudo
(cabo)
(cabo) (Mdulo real)

(b) Segundo paso descendente

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)

Introducir tarjeta Validar tarjeta


Paso 1
(mdulo real) (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

Fragmento de SAC
Caminos y mensajes Llamada a Cobra
Fragmento de Cobra

ejemplo Llamada a Mostrar mensaje


Cdigo de Mostrar @
Regreso a Cobra
Probar cobro con un solo Camino de Fragmento de Cobra
billete, hasta que saldo = 0 mensajes Llamada a Recibir pago
Fragmento de Recibir pago
Observe camino sombreado, Llamada a Recibir billete
SAC Fragmento de Recibir billete
como corte vertical
Llamada a Introduce billete
Regreso a Recibir billete
Fragmento de Recibir billete
Cobra
Llamada a Escanea billete
Regreso a Recibir billete
Mostrar
Fragmento de Recibir billete
mensaje en Recibir pago Marcar pago Llamada a Valida billete
display
Regreso a Recibir billete
Regreso a Recibe pago
Escribe
Regreso a Cobra
Obtener fecha Recibir Recibir Sacar Dar
y hora actual billete moneda
pago y
tarjeta cambio
Fragmento de Cobra
hora
Llamada a Mostrar mensajedisplay
Cdigo de Mostrar @
Regreso a Cobra
Introduce Escanea Valida Introduce Valida
billete billete billete moneda moneda Regreso a SAC
Seleccin de valores
Preparar casos de prueba:
Todos los valores de una vez o
Secuencia, como en prueba de sistema
Donde se invoca unidad, deben darse valores
adecuados
Adecuados: si originan una interaccin
Dominio de entrada se separa en dos:
Datos que se consumen en la unidad
Datos que atraviesan la unidad (los que
interactan)

Ejemplo
cantidad, cliente cantidad, cliente

CalculaPrecio Autoriza
Autorizacin (o rechazo)
Orden de surtido
o rechazo

Ordinariamente, el mdulo CalculaPrecio recibe un pedido y aplica reglas


del negocio sobre descuentos a ciertos clientes o en virtud de la cantidad
pedida.
Si la cantidad rebasa un umbral (maxCant) requiere una autorizacin que
corresponde a reglas del mdulo Autoriza.
Dominio de cantidad: (- , ) en los enteros
Datos que se consumen en CalculaPrecio: (- , maxCant]
Datos que atraviesan CalculaPrecio: (maxCant, ) <<= los importantes
Ejemplo (sigue)
Suponga maxCant = 1200

Valores de entrada Resultado Atraviesa


Cantidad <1, cliente Rechazado por CalculaPrecio, No
=CliConocido ya que es una cantidad
inaceptable
1 < cantidad < 1201, Calcula precio regresa orden de No
cliente =CliConocido surtido con
costo = precio * cantidad
Cantidad >1200, CalculaPrecio pasa los datos a S
cliente =CliConocido Autoriza; como CliConocido
est en lista, regresa
autorizacin y CalculaPrecio
emite la orden de surtido.
Cantidad >1200, CalculaPrecio pasa los datos a S
cliente =CliNuevo Autoriza; como CliNuevo no
est en lista, rechaza el pedido
y CalculaPrecio emite un
rechazo por volumen excesivo

Valores tiles para pruebas de integracin, sombreados

Plan de pruebas de integracin


IEEE 829 general
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
Plan de pruebas de integracin (1/3)
1. Identificacin: alguna forma de reconocer
planes concretos
2. Elementos a probar: mdulos que se usarn,
incluyendo cabos y manejadores.
3. Enfoque: estrategia a seguir y su justificacin
(top down, caminos de mensajes, etc.)
4. Criterio de aceptacin o rechazo de un caso de
prueba: como se sabe si pasa o no; estricto:
debe coincidir con salida esperada. Otro: es
aceptable para experto humano.

Plan de pruebas de integracin (2/3)


5. Criterio de suspensin: hasta terminar todos
los casos de prueba, hasta cumplir cierta
cobertura, hasta agotar cierto tiempo
disponible
6. Productos a entregar: desde el propio plan, los
casos y procedimientos de prueba, los
resultados.
7. Tareas a realizar para satisfacer el proceso:
tareas de preparacin (casos de prueba,
manejadores y cabos), de ejecucin
(automtica o manual), de evaluacin, de
reporte
8. Necesidades ambientales: hardware, software
y espacio de trabajo necesarios.
Plan de pruebas de integracin (3/3)
9. Responsabilidades: quin es responsable de
cada cosa: mdulos, cabos, manejadores,
preparacin, evaluacin, etc.
10. Personal necesario y si requieren
entrenamiento: en casos que lo ameriten
11. Calendario: tiempos para las actividades
planeadas.
12. Riesgos y contingencias: problemas que no son
seguros pero pueden afectar el proceso y qu
hacer si ocurren.

Ejemplo de plan de prueba


correspondiente al ejemplo ascendente (1/2)

1. Identificacin Plan Prueba Int002


2. Elementos a probar Obtener datos (manejador), Obtener Tarjeta vlida
(manejador y mdulo real), Introducir Tarjeta, Validar tarjeta
3. Enfoque Ascendente
4. Criterio aceptacin La salida coincide con la esperada
5. Criterio suspensin Hasta lograr cobertura total del cdigo
6. Productos a Plan de prueba, casos de prueba, lista de casos ejecutados
entregar con su resultado, lista de problemas identificados
7. Tareas Preparar casos de prueba, preparar manejadores auxiliares,
ejecutar casos de prueba, evaluar resultados, preparar
informe de problemas
8. Necesidades Computadora de escritorio con Eclipse, Java 1.6, Junit 4 y
ambientales EclEmma (para cobertura)
Ejemplo de plan de prueba
correspondiente al ejemplo ascendente (2/2)

9. Responsabilidades Probador: preparar casos de prueba, ejecutar casos de prueba,


evaluar resultados, preparar informe de problemas
Programador: preparar manejadores auxiliares
10. Personal El programador ser el mismo desarrollador; se requiere un
probador que conozca pruebas de dominios (particiones) y de
caminos
11. Calendario Preparar casos de prueba: 2 das
Preparar manejadores: 3 das
Ejecutar casos de prueba: 1 da
Evaluar resultados y reportar: 1 da
Margen por riesgos: 2 das
12. Riesgos y R1: dependencia imprevista del hardware de tarjeta
contingencias C1: negociar ms tiempo
R2: programador no entrega manejadores
C2: probador los realiza; descuento a programador

También podría gustarte