Vous êtes sur la page 1sur 35

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
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

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
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

Servicio del SO que


informa espacio
disponible
Tarjeta de adquisicin
de datos con sensor de
temperatura conectado

Interaccin
Se envan datos de posicin,
regresa aceleracin

Envan una consulta (query) y


reciben un conjunto de datos
(que puede ser vaco), un
aviso de error o una excepcin
clave y contrasea para ser
validadas; respuesta o aviso
de falla por exceso de tiempo
u otra causa
Solicita espacio disponible
para decidir si puede
almacenar la fotografa
Cada cierto tiempo solicita
dato, lo lee y almacena

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

Carencia de previsin Excepcin impide el fallo del


sobre ocurrencia de
programa, pero Unidad A la
excepciones
ignora dejando valores
indefinidos

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

sufren abrazo mortal o


prdida de datos

Conforme operan las


unidades, comienza a
reducirse la memoria
disponible, sin razn
aparente
Recursos
Al operar juntas se
insuficiente para bloquean por falta de
carga nominal
recursos o se degrada su
funcionamiento

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

Descuido al elegir los elementos a


utilizar
bibliotecas no instaladas o
daadas, software de terceros en
directorios equivocados o
inaccesibles por cualquier causa
(red desconectada, exceso de
transacciones, bloqueo del firewall,
falta de permisos)
dispositivo requiera alimentacin
elctrica adicional o alguna
configuracin que se omiti

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

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
Descendente
Ascendente
Por parejas
Vecindades
Caminos de
mensajes

Supone rbol de mdulos, como:

Proceso
estadstico

Lee datos

Calcula
medidas

Genera
grfico

Ejemplo para ilustrar


mquina de cobro de estacionamiento
SAC

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)

(a) Primer paso descendente


SAC
(Mdulo real)

Obtener
datos
(cabo)

Calcula
Adeudo
(Mdulo real)

(b) Segundo paso descendente

Cobra
(cabo)

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
datos
(manejador)

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

Observe camino sombreado,


como corte vertical

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

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
interactan)

que

Ejemplo
cantidad, cliente

cantidad, cliente
CalculaPrecio
Orden de surtido
o rechazo

Autoriza
Autorizacin (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
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

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
entregar

Plan de prueba, casos de prueba, lista de casos ejecutados


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
ambientales

Computadora de escritorio con Eclipse, Java 1.6, Junit 4 y


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
contingencias

R1: dependencia imprevista del hardware de tarjeta


C1: negociar ms tiempo
R2: programador no entrega manejadores
C2: probador los realiza; descuento a programador

Vous aimerez peut-être aussi