Beruflich Dokumente
Kultur Dokumente
Ingeniería de Software
Un Enfoque Estratégico para Pruebas
Propuestas:
Para realizar pruebas efectivas un equipo de Sw.debe efectuar RTF y
efectivas. Esto eliminará muchos errores antes de las pruebas.
La prueba comienza a nivel de componentes y trabaja “hacia fuera”,
hacia la integración de todo el sistema de computo.
Diferentes técnicas de prueba son apropiadas en diferentes momentos
La prueba la dirige el desarrollador del software y un grupo
independiente de pruebas (proyectos grandes)
La prueba y la depuración son actividades diferentes, pero la depuración
debe incluirse en cualquier estrategia de prueba.
Una estrategia de prueba debe incluir “pruebas de bajo nivel”(a nivel de
código) y de “alto nivel” (funciones del sistema)
Ingeniería de Software
Quien prueba el Software?
Ingeniería de Software
Afirmaciones Incorrectas
Ingeniería de Software
Estrategia de Pruebas
Pruebas de Unidad Pruebas de Integración
Codigo Diseño
Pruebas de Pruebas de
Sistema Validación
Ingeniería de Software
Estrategia de Prueba de Sw Orientadas a Objetos
Cuando
terminamos
las pruebas ?
Módulo
a ser
probado
Resultados
Ingeniero de
Software Casos de
Prueba
Ingeniería de Software
Pruebas de Unidad
Módulo
a ser
probado Interfase
(flujo de informacion hacia adentro/afuera del programa)
Estructuras locales de datos
(datos locales mantíenen integridad durante la ejecucion del programa)
Condiciones de límites
(modulo opera ok en los limites establecidos p/restrigir procesamiento)
Caminos independientes
(asegurar que todos los caminos se ejecutan por lo menos una vez)
Casos de prueba
Ingeniería de Software
Que deben descubrir los casos de prueba?
Ingeniería de Software
Manejo Correcto de Errores
Controlador
Interfase
Estructuras locales de datos
Resguardo Resguardo
Casos de Prueba
Resultados
Ingeniería de Software
Controladores y Resguardos
Ingeniería de Software
Estrategias de Pruebas de Integración
Opciones:
• el enfoque “big bang”
• una estrategia de construcción incremental
Ingeniería de Software
Pruebas de Integración
Ingeniería de Software
Integración de Arriba-Abajo
B F G
Ingeniería de Software
Integración de Abajo-Arriba
B F G
Grupo
Ingeniería de Software
Pruebas de Sandwich
A
Los módulos más altos son
probados con resguardos
B F G
Grupo
Ingeniería de Software
Prueba de Regresion
Prueba de Validación
Prueba Alfa y Beta
Pruebas de Sistema
Ingeniería de Software
Pruebas de Validacion
Ejecución de Casos
Casos de prueba
Ingeniería de Software
Esfuerzo de Depuración
Tiempo requerido
para diagnosticar el
síntoma y
Tiempo requerido determinar la causa
para corregir el error
y conducir pruebas de
regresión
Ingeniería de Software
Síntomas y Causas
Ingeniería de Software
Consecuencias de los Errores
infeccioso
Daño
catastrófico
extremo
serio
disturbios
leve
suave
Tipo de Bug
Ingeniería de Software
Técnicas de Depuración
Volver atrás
Eliminación de Causa
- Inducción o Deducción
Ingeniería de Software
Técnicas de Depuración
•Fuerza Bruta: método mas común y menos eficiente para aislar la causa
de un error. Se hace descarga de memoria, se invocan señales en tiempo de
ejecución, etc. En algún lugar del pantano de información producida se
espera encontrar una pista que pueda conducir a la causa del error.
•Rastreo hacia Atrás: empezando en el lugar donde se descubre el
síntoma, se recorre hacia atrás el código fuente hasta hallar el sitio de la
causa. Al aumentar las líneas de código, este método se vuelve
inmanejable.
•Eliminación de Causa: los datos relacionados con el error se organizan p/
aislar las causas posibles. Elabora una hipótesis de causa y se aprovechan
los datos mencionados para probar o desechar la hipótesis. Se elabora una
lista de causas posibles y con pruebas se busca eliminar cada una de ellas.
•Depuración Automatizada: se cuenta con una amplia variedad de
compiladores de depuración, ayudas dinámicas para la depuración
(trazadores), generadores automáticos de casos de prueba y herramientas de
correlación de referencias cruzadas. Sin embargo, las herramientas no son
un sustituto de la evaluación cuidadosa basada en un modelo de diseño
completo y un código fuente claro.
¡Cuando todo lo demás falle, pida ayuda!
Ingeniería de Software
Depuración: Conclusiones
Ingeniería de Software