Verificación y Validación Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Verificación y Validación Verificación: • “Estamos construyendo el producto correctamente” • El producto debería estar conforme a su especificación Validación: • “Estamos construyendo el producto correcto” • El producto debería realizar lo que el usuario realmente quiere. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Proceso V&V • El proceso V&V debe ser aplicado a cada etapa del proceso de software. • Objetivos Principales: – Descubrir defectos en el sistema. – Determinar que el sistema en construcción es útil y usable en situaciones operacionales. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Aproximaciones V&V • Inspecciones de Software: Se analiza y comprueban las representaciones del sistema (documento de requerimientos, diagramas de diseño,código fuente), utilizan técnicas estáticas (no se ejecuta el programa). • Pruebas de Software: Implica ejecutar el software con datos de pruebas, para comprobar que funciona como esta especificado. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Tipos de Verificación Pruebas de Defectos: • Pruebas diseñadas para descubrir defectos del sistema. • Detecta la presencia de defectos, no su ausencia. Pruebas de Validación: • Intentan determinar si los requerimientos estan correctamente implementados. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Planificación de V&V • Debe comenzar desde las etapas tempranas en el proceso de desarrollo. • Esta planificación deberá equilibrar la verificación estática y las pruebas de software. • La planificación debe definir estándares para el proceso de pruebas mas que describir las pruebas a realizar. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Plan de Pruebas Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Estructura de un plan de pruebas • • • • • • • El proceso de prueba. Trazabilidad de requerimientos. Elementos a ser probados. Calendario de Pruebas. Procedimientos de registro de las pruebas. Requerimientos hardware y software. Restricciones. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Inspecciones de Software • Se examina representaciones del software con el animo de anomalías y defectos, tanto del producto como del proceso que produce. • Dado que no se requiere ejecución del sistema se puede realizar este proceso antes de la implementación. • Es una técnica efectiva y de bajo costo para la detección y corrección de errores. • Inspección y pruebas son complementarios, no opuestos. • Se centra en la detección, no en la corrección Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Aspectos a tener en cuenta en una inspección • Se debe contar con una especificación precisa. • Los miembros del equipo debe estar familiarizados con los estándares de la organización. • Se debe preparar una lista de chequeo de errores. • La administración debe aceptar que la inspección incrementara los costos de desarrollo en etapas tempranas. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Proceso de Inspección Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Análisis Estático Automatizado • En el caso de código fuente existes herramientas automatizadas que ayudan a detectar elementos propensos a obtener errores (Variables sin declarar, inicializar o utilizar y otras). • Estas herramientas por lo general se encuentran integradas a los IDE (Interface Development Enviroment). • En el caso de Java vale destacar el caso de RefactorIT. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008 Lecturas Recomendadas • Ingeniería de Software. Ian Sommerville. 7th edición (Capitulo 22). Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Febrero – Junio 2008