Verificacin y Validacin
Eduardo Aguilar Torres
Septiembre,2015.
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
28-09-15
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
Verificacin y metodos formales
Bibliografa
Introduccin
Verificacin
Estamos construyendo el producto correctamente?
Software de acuerdo a su especificacin.
Validacin
Estamos construyendo el producto correcto?
Software debera realizar lo que el cliente necesita.
La V & V deberan conceder confianza en que el software
alcanza su propsito.
Departamento de Ingeniera de Sistemas y Computacin Ingeniera de Software I
28-09-15
Dinmicas
Pruebas del software.
Implican ejecutar una implementacin con datos de prueba.
Especificaciones
de requerimientos
Diseo de
Alto nivel
Especificacin
formal
Prototipo
Diseo
detallado
Programa
Prueba del
software
28-09-15
Tipos de pruebas
Pruebas de validacin
Demostrar que el software cumple con sus
requerimientos.
Pruebas de defectos
Identificar inconsistencias entre el programa y su
especificacin.
28-09-15
Pruebas y depuracin
Las pruebas y la depuracin son distintos procesos.
La verificacin y validacin permiten establecer la
existencia de defectos en un programa.
La depuracin se ocupa de localizar y corregir estos
errores.
La depuracin implica formular una hiptesis sobre el
comportamiento del programa y despus probar esta
hiptesis y encontrar el error del sistema.
Proceso de depuracin
Resultados
de pruebas
Especificacin
Localizar
error
Disear
reparaciones
de errores
Casos
de pruebas
Reparar
errores
Probar de
nuevo el
programa
28-09-15
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
Verificacin y metodos formales
Bibliografa
Planificacin de la verificacin y
validacin
La V & V es un proceso caro.
Se requiere una cuidadosa planificacin para obtener lo
mejor de los procesos de inspeccin y pruebas.
La planificacin debera comenzar al inicio del proceso
de desarrollo.
El plan debera identificar el equilibrio entre la
verificacin esttica y las pruebas.
La planificacin trata de definir estndares para el
proceso de prueba en lugar de describir pruebas de
productos.
28-09-15
Modelo V de desarrollo
Especificacin de
requerimientos
Plan de pruebas
de integracin del
sistema
Diseo
detallado
Plan de pruebas
de aceptacin
Servicio
Diseo del
sistema
Especificacin
del sistema
Cdigo y
prueba de los
mdulos y
unidades
Plan de pruebas
de integracin de
los subsistemas
Prueba de
aceptacin
Prueba de
integracin del
sistema
Prueba de
integracin de los
subsistemas
Trazabilidad de requerimientos
Evaluar independientemente los requerimientos.
Elementos probados
Especificar los elementos que tienen que ser probados.
Calendario de pruebas
Calendarizar pruebas y asignar recursos.
28-09-15
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
Verificacin y metodos formales
Bibliografa
Inspecciones de software
Implican que las personas examinen la representacin
de la fuente con el propsito de descubrir anomalas y
defectos.
No requieren la ejecucin de un sistema por lo que
debe utilizarse antes de la implementacin.
Pueden ser aplicadas a cualquier representacin del
sistema (requerimientos, diseo, configuracin, datos,
pruebas de datos, etc).
Es una tcnica efectiva para descubrir errores del
programa.
28-09-15
xito de la inspeccin
Pueden descubrirse muchos diferentes defectos en una
sola inspeccin. A diferencia de las pruebas, en las cuales
un defecto puede enmascarar a otro as que se requieren
varias ejecuciones.
Resaltan la reutilizacin y el conocimiento de
programacin, de manera tal que es ms simple identificar
errores que son cometidos comnmente.
Inspecciones y pruebas
Las inspecciones y pruebas son complementarias y no
tcnicas opuestas.
Ambas deben utilizarse durante el proceso V & V.
Las inspecciones pueden comprobar el ajuste con una
especificacin pero no la conformidad con los
requerimientos reales del cliente.
Las inspecciones no pueden comprobar caractersticas
no funcionales como rendimiento, usabilidad, etc.
28-09-15
Inspecciones de programas
Aproximacin formalizada a las revisiones del
documento.
Est pensado explcitamente para la deteccin de
defectos (no su correccin)
Los defectos pueden ser errores lgicos, anomalas en
el cdigo que pueden indicar una condicin errnea o
no conformidad con los estndares.
Precondiciones de la inspeccin
Debe haber una especificacin precisa disponible.
Los miembros del equipo deben estar familiarizados
con los estndares de organizacin.
Debe estar disponible un cdigo sintcticamente
correcto u otras representaciones del sistema.
Debera prepararse una lista de errores.
La gestin debe aceptar que la inspeccin aumentar
los costes pronto en el proceso de software.
La gestin no debera utilizar inspecciones para la
evaluacin del personal, es decir, para encontrar quin
comete errores.
10
28-09-15
El proceso de inspeccin
Planificacin
Seguimiento
Panorama
general
Repeticin
del trabajo
Preparacin
individual
Reunin de
inspeccin
Proceso de inspeccin
Panorama general del sistema presentado al equipo de
inspeccin.
Los cdigos y documentos asociados se distribuyen al
equipo de inspeccin por adelantado.
La inspeccin tiene lugar y se anotan los errores
encontrados.
Se hacen modificaciones para reparar los errores
descubiertos.
Puede requerirse o no una re-inspeccin.
11
28-09-15
Responsabilidad
Autor o propietario
Inspector
Lector
Secretario
Presidente o
moderador
Moderador jefe
Listas de inspeccin
Debera utilizarse una lista de errores comunes para
guiar la inspeccin.
Las listas de errores dependen del lenguaje de
programacin y reflejan los errores caractersticos que
es probable que aparezcan en el lenguaje.
En general cuanto ms dbil sea la comprobacin
del tipo, ms grande ser la lista.
Ejemplos: inicializacin, nombramiento de constantes,
terminacin de bucles, lmites de vectores, etc.
12
28-09-15
Comprobaciones de inspeccin
Clase de falta
Chequeo de inspeccin
Defectos de datos
Defectos de control
Defectos de entrada/salida
Comprobaciones de inspeccin
Clase de falta
Chequeo de inspeccin
Defectos de interfaz
13
28-09-15
Cifras de inspeccin
500 sentencias/hora durante el panorama general.
125 sentencias de cdigo fuente/hora durante la
preparacin individual.
Pueden inspeccionarse de 90 a 125 sentencias/hora.
Inspeccionar 500 lneas cuesta el esfuerzo de unas 40
horas/hombre (unas 20 UF).
Por lo tanto la inspeccin es un proceso caro.
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
14
28-09-15
Defectos de datos
Defectos de control
Cdigo no alcanzable.
Saltos incondicionales en bucles.
Defectos de interfaz
Defectos de gestin de
almacenamiento
15
28-09-15
Anlisis de interfaz.
Comprueba la consistencia de una rutina, las declaraciones del
procedimiento y su uso.
Anlisis de caminos.
Identifica los caminos del programa y arregla las sentencias
ejecutadas en el camino. Nuevamente, es potencialmente til
en el proceso de revisin.
16
28-09-15
17
28-09-15
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
Verificacin y metodos formales
Bibliografa
Desarrollo incremental
Especificacin formal
Verificacin esttica utilizando argumentos de correccin
Pruebas estticas para determinar la fiabilidad del
programa.
18
28-09-15
Especificar
formalmente
el sistema
Revisin de errores
Definir los
incrementos
de software
Desarrollar
el perfil
operacional
Construir el
programa
estructurado
Verificar
formalment
e el cdigo
Disear las
pruebas
estticas
Integrar el
incremento
Probar el
sistema
integrado
19
28-09-15
Especificacin e inspecciones
formales
El modelo basado en el estado es un sistema de
especificacin y el proceso de inspeccin comprueba el
programa contra este modelo.
La aproximacin a la programacin se define de forma
que la correspondencia entre el modelo y el sistema
sea clara.
Los argumentos matemticos (no pruebas) se utilizan
para incrementar la confianza en el proceso de
inspeccin.
Equipo de desarrollo.
Responsable de desarrollar y verificar el software. El software
NO se ejecuta ni se compila durante este proceso
Equipo de certificacin.
Es responsable de desarrollar un conjunto de pruebas
estadsticas para ejercitar el software despus de su desarrollo.
Los modelos de crecimiento de fiabilidad se utilizan para
determinar cundo es aceptable la fiabilidad.
20
28-09-15
Agenda
Introduccin
Planificacin de V & V
Inspecciones del software
Anlisis esttico automatizado
21
28-09-15
Bibliografa
Ingeniera de Software, Ian Sommerville, Pearson
Educacin, 2005. (Cap 22)
22