Notas de la Unidad 10

Transcripción

Notas de la Unidad 10
Unidad 10
Pruebas
M.C. Martín Olguín
Pruebas de Software


Los sistemas OO son colecciones de objetos
organizados por subsistemas. Estos objetos
colaboran entre sí para ofrecer la
funcionalidad esperada del software.
Es necesario probar que la interacción entre
los objetos, en diferentes niveles, se lleva a
cabo de la manera correcta.
M.C. Martín Olguín (C) 2004
Pruebas
Objetivo de las Pruebas de
Software

El objetivo de las pruebas es encontrar el
mayor número posible de errores con una
cantidad razonable de esfuerzo, aplicado
sobre un lapso de tiempo realista.
(Pressman, 2001).
M.C. Martín Olguín (C) 2004
Pruebas
¿Cuándo empiezan las
pruebas?



Desde la especificación de requerimientos.
Cada vez que se especifica un Caso de Uso,
se tienen que crear “Casos de Prueba” para
los diferentes escenarios.
Además se deben probar los modelos de
Análisis y Diseño para evitar la propagación
de defectos a la programación.
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de los modelos de
Análisis y Diseño


Estos modelos no se pueden probar en el
sentido convencional, ya que no pueden
ejecutarse.
Sin embargo se utilizan Revisiones Técnicas
Formales para examinar la exactitud y
consistencia de ambos modelos.
M.C. Martín Olguín (C) 2004
Pruebas
Exactitud de los modelos de
Análisis y Diseño

Exactitud Sintáctica


Se revisa el uso apropiado de la simbología que
define la metodología utilizada.
Exactitud Semántica


El modelo se debe apegar al dominio del
problema en el mundo real.
Si el modelo refleja con exactitud el mundo real,
entonces es semánticamente correcto.
M.C. Martín Olguín (C) 2004
Pruebas
...Exactitud Semántica


Se requiere la ayuda de expertos en el dominio
del problema, quienes revisan las definiciones de
las clases y sus jerarquías para detectar
omisiones o ambigüedades.
Se evalúan las relaciones entre clases para
determinar si reflejan las conexiones en el mundo
real.
M.C. Martín Olguín (C) 2004
Pruebas
Consistencia de los modelos
de Análisis y Diseño


Se centra en revisión de las relaciones entre
entidades dentro del modelo.
Se debe examinar cada clase y sus
conexiones con otras clases
(colaboraciones).
M.C. Martín Olguín (C) 2004
Pruebas
...Consistencia de los modelos
de Análisis y Diseño

Para el modelo del Diseño se deben llevar a
cabo revisiones de:






Arquitectura
Subsistemas
Asignación de procesadores
Asignación de clases a subsistemas
Diseño de la interfaz de usuario
Modelo de Clases del Análisis contra el del
Diseño
M.C. Martín Olguín (C) 2004
Pruebas
Revisiones Técnicas Formales


Es una actividad de garantía de calidad del
software.
Es una clase de revisión que incluye
recorridos, inspecciones, revisiones cíclicas y
demás evaluaciones técnicas del software
M.C. Martín Olguín (C) 2004
Pruebas
...Objetivos de las RTF

Objetivos:





Descubrir errores en la función, lógica o implementación
de cualquier representación del software.
Verificar que el software cumple con los requerimientos.
Garantizar que el software ha sido representado de
acuerdo a los estándares predefinidos.
Conseguir un software desarrollado de manera uniforme.
Hacer que los proyectos sean más manejables.
M.C. Martín Olguín (C) 2004
Pruebas
RTF


Se puede usar como entrenamiento para los
ingenieros novatos.
Promueve la seguridad y continuidad, ya que
varias personas se familiarizan con partes
del software que, de otro modo, no hubieran
visto nunca.
M.C. Martín Olguín (C) 2004
Pruebas
RTF

La RTF se lleva a cabo mediante una reunión
y sólo tendrá éxito si es bien planificada,
controlada y atendida.
M.C. Martín Olguín (C) 2004
Pruebas
Reunión de Revisión



Deben convocarse para la revisión entre tres
y cinco personas.
Se debe preparar por adelantado, pero cada
persona no le debe invertir más de dos horas
de trabajo previo.
La duración de la reunión debe ser menor a
dos horas.
M.C. Martín Olguín (C) 2004
Pruebas
Participantes en la preparación

El Productor


Jefe del Proyecto


Es el responsable del proyecto.
Jefe de Revisión



Es el ingeniero que ha desarrollado el artefacto.
Evalúa la disponibilidad del artefacto, genera copias del
material necesario y las distribuye entre los revisores para
que se preparen.
Prepara la agenda.
Revisores

Se familiarizan con el artefacto y preparan sus notas.
M.C. Martín Olguín (C) 2004
Pruebas
Desarrollo de la Reunión






Se designa un Registrador (secretario) entre
los Revisores.
El Jefe de Revisión explica la agenda.
El Productor expone una breve introducción.
El Productor inicia el “recorrido de
inspección”, explicando el material.
Los Revisores exponen sus puntos de vista.
El Registrador va anotando los problemas o
errores encontrados.
M.C. Martín Olguín (C) 2004
Pruebas
...Desarrollo de la Reunión

Al final de la reunión los participantes deben
decidir si:




Aceptan el artefacto sin modificaciones.
Rechazan el artefacto debido a los serios errores
encontrados.
Aceptan el artefacto provisionalmente.
Todos los asistentes firman la conclusión.
M.C. Martín Olguín (C) 2004
Pruebas
Registro e Informe de la
Revisión


El Registrador debe generar una lista de
sucesos de revisión y un resumen.
El resumen debe responder lo siguiente:



¿Qué fue revisado?
¿Quién lo revisó?
¿Qué se descubrió y cuáles fueron las
conclusiones?
M.C. Martín Olguín (C) 2004
Pruebas
La lista de sucesos de revisión

Sirve para:


Identificar áreas problemáticas dentro del
artefacto.
Como lista de comprobación para que el
Productor verifique que cumplió con lo acordado.
M.C. Martín Olguín (C) 2004
Pruebas
Directrices para la revisión





Revisar al artefacto no al Productor.
Fijar una agenda y mantenerla.
Limitar el debate y las impugnaciones.
Enunciar áreas de problemas, pero no
intentar resolver cada problema.
Tomar notas escritas.
M.C. Martín Olguín (C) 2004
Pruebas
...Directrices para la revisión





Limitar el número de participantes e insistir
en la preparación anticipada.
Desarrollar un checklist para cada artefacto a
revisar.
Disponer de recursos y tiempo.
Llevar a cabo un buen entrenamiento de
todos los revisores.
Repasar las revisiones anteriores.
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de Implementación

Para probar código, existen dos grandes
tipos de pruebas:

Pruebas de Caja Negra


Sólo interesa la funcionalidad y no la implementación,
es decir, se enfoca en las entradas y las salidas.
Pruebas de Caja Blanca


Se generan a partir del conocimiento de la estructura
e implementación del software.
Se realiza análisis de código para diseñar pruebas
que garanticen que todas las instrucciones de un
componente se ejecutarán al menos una vez.
M.C. Martín Olguín (C) 2004
Pruebas
...Pruebas de Implementación


Para la POO se sigue la estrategia clásica:
de dentro hacia fuera, es decir, de lo más
pequeño a lo más grande.
Esto implica:



Pruebas de Unidad
Pruebas de Integración
Pruebas de Sistema (validación)
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de Unidad



En la POO la unidad más pequeña
comprobable es la clase.
Cada clase posee uno o varios métodos
(operaciones).
Técnicas de prueba de unidad:


Verificación al azar. En esta se definen
trayectorias de operaciones aleatorias.
Pruebas de partición basada en estados. Se
definen trayectorias de operaciones que obliguen
al objeto a transitar por varios estados.
M.C. Martín Olguín (C) 2004
Pruebas
…Pruebas de Unidad



Pruebas de partición basada en atributos. Se
prueban las operaciones que usen determinados
atributos.
Pruebas de partición basada en categorías. Se
agrupan y prueban las operaciones de acuerdo a
una función genérica, por ejemplo: operaciones
de inicialización, operaciones de consulta y
operaciones de terminación.
¿Qué pasa con la jerarquía de clases?
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de Integración


Consiste en probar la colaboración entre las
clases.
Estrategias:


Pruebas de escenarios. Se utilizan los diagramas
de interacción para generar los casos de prueba
de acuerdo a cómo tienen que colaborar los
objetos participantes en un escenario incluyendo
excepciones.
Pruebas de cadenas de eventos. Prueban la
respuesta del sistema a una entrada particular o
a un conjunto de eventos de entrada.
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de Validación



A nivel de sistema o de validación, los
detalles de conexiones de clases
desaparecen.
La validación se centra en las acciones
visibles al usuario y salidas reconocibles
desde el sistema. Se aplican técnicas de caja
negra.
Para diseña las pruebas se utilizan la
especificación de casos de uso, diagramas
de estados y de actividades.
M.C. Martín Olguín (C) 2004
Pruebas
Pruebas de Regresión


En la etapa de implementación, cada vez que
se corrige un error en una clase, en un
módulo o en un subsistema, es necesario
aplicar pruebas de regresión, es decir, repetir
las pruebas que ya se habían aplicado.
Las pruebas de regresión se utilizan para
comprobar que los cambios hechos a un
programa no introducen nuevas fallas.
M.C. Martín Olguín (C) 2004
Pruebas
...Pruebas de Regresión


En la realidad es muy caro aplicar todas las
pruebas cada vez que se hace una
modificación.
Por eso es importante identificar bien las
dependencias entre módulos y subsistemas,
procurar en el diseño el bajo acoplamiento y
asociar cada prueba con su correspondiente
componente o subsistema.
M.C. Martín Olguín (C) 2004
Pruebas
Drivers
images%255Cco_stubs-img2
images%255Cco_stubs-img1
M.C. Martín Olguín (C) 2004
Pruebas
Stubs
M.C. Martín Olguín (C) 2004
Pruebas
Artefactos




Lista de ideas para Pruebas
Plan de Pruebas
Caso de Prueba
Script de Prueba
M.C. Martín Olguín (C) 2004
Pruebas

Documentos relacionados