Está en la página 1de 46

Verificacin y validacin

Verificacin y validacin
Verificacin:
Estamos construyendo el producto
corrctamente?.
El software debera ajustarse a su
especificacin

Validacin:
estamos construyendo el producto
correcto?.
El software debera hacer lo que el cliente
realmente reclama.
El proceso V & V
Es el proceso de todo un ciclo vital: La V
& V debe aplicarse en cada etapa del
software.
Tiene dos objetivos principales
El descubrimiento de defectos en el
sistema;
La evaluacn de si el sistema es til y
utilizable en una situacin operacional o no.
Metas de la V&V
La verificacin y la validacin deberan
establecer la confianza de que el
software es adecuado al propsito.
Esto NO significa que est
completamente libre de defectos.
Sino que debe ser lo suficientemente
bueno para su uso previsto y el tipo de
uso determinar el grado de confianza
que se necesita.
Confianza de la V&V
Depende del propsito del sistema, las
expectativas del usuario
Funcin del software
El nivel de confianza depende de lo
crtico que es el sistema para una
organizacin.
Expectativas del usuario
Los usuarios pueden tener bajas
expectativas para ciertas clases de
software.
Verificacin dinmica y
esttica
Inspecciones de software. Se ocupa del
anlisis de representaciones estticas del
sistema para describir problemas
(verificacin esttica)
Pueden ser complementadas por documentos
basados en herramientas y anlisis del cdigo
Pruebas del software. Se ocupa de la
ejercitacin y la observacin del
comportamiento del producto (verificacin
dinmica)
El sistema se ejecuta con datos de pruebas y se
observa su comportamiento operativo.
V & V esttica y
dinmica
Inspecciones
de software

Especificacion Diseo de Especificacin Diseo


Programa
es de Alto nivel formal detallado
requerimientos

Prueba de
Prototipo
programas
Prueba del programa
Puede revelar la presencia de errores
NO su ausencia.
Es la nica tcnica de validacin para
requerimientos no funcionales ya que el
software tiene que ser ejecutado para
ver su comportamiento.
Debera utilizarse en conjuncin con la
verificacin esttica para proporcionar
una covertura de V & V total.
Tipos de pruebas
Pruebas de defectos
Pruebas diseadas para descubrir defectos en
el sistema.
Una prueba de defectos exitosa es aquella que
revela la presencia de defectos en un sistema.
Pruebas de validacin
Previsto para mostrar que el software cumple
sus requerimientos.
Una prueba con xito es aquella que muestra
que un requerimiento se ha implementado
correctamente.
Pruebas y depuracin
Las pruebas de defectos y depuracin son
distintos procesos.
La verificacin y validacin se ocupan de
establecer la existencia de defectos en un
programa.
La depuracin se ocupa de ubicar y reparar
estos errores.
La depuracin implica formular una hiptesis
sobre el comportamiento del programa y
despus probar esta hiptesis y encontrar el
error del sistema.
El proceso de
depuracin

Resultados Especificacin Casos


De pruebas De pruebas

Disear Probar de
Localizar Reparar nuevo el
error reparacione errores
s de errores programa
Planificacin de V &V
Se requiere una cuidadosa planificacin
para sacar el mximo de los procesos de
inspeccin y pruebas. La planificacin
debera comenzar pronto en el proceso de
desarrollo.
El plan debera identificar el balance 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.
El modelo-V de
desarrollo

Especificacin Especificacin Diseo


Diseo del sistema
De requerimientos Del sistema detallado

Plan de Plan de pruebas Cdigo y


Plan de pruebas
pruebas de de integracin prueba de los
De aceptacin
integracin del De los mdulos y
sistema subsistemas unidades

Prueba de
Prueba de Prueba de integracin
Servicio integracin del De los subsistemas
aceptacin
sistema
Estructura de un plan de
pruebas de software
Proceso de pruebas
Trazabilidad* de requerimientos.
Elementos probados.
Calendario de pruebas.
Procedimientos de registro de las pruebas.
Requerimientos hardware y software.
Restricciones.
* Es un conjunto de acciones, medidas y procedimientos tcnicos que
permite identificar y registrar cada producto desde su nacimiento
hasta el final
Plan de pruebas de
software
Inspecciones de
software
Implican que las personas examinen la
representacin de la fuente con el propsito
de descubrir anomalas y defectos
Las inspecciones no requieren la ejecucin de
un sistema por lo que debe utilizarse antes de
la implementacin.
Pueden estar aplicados a cualquier
representacin del sistema (requerimientos,
diseo, configuracin, datos, pruebas de
datos, etc).
Se ha demostrado que es una tcnica efectiva
para descubrir errores del programa.
xito de la inspeccin
Pueden descubrirse muchos diferentes
defectos en una sola inspeccin. Al
probar, un defecto puede enmascarar a
otro as que se requieren varias
ejecuciones.
Inspecciones y pruebas
Las inspecciones y pruebas son
complementarias y no tcnicas opuestas de
verificacin.
Ambas deben utilizarse durante el proceso V
& V.
Las inspecciones pueden comprobar el ajuste
con una especificacin pero no la
conformancia con los requerimientos reales
del cliente.
Las inspecciones no pueden comprobar
caractersticas no funcionales como
rendimiento, usabilidad, etc.
Inspecciones de
programas
Es la 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
(p.ej: una variable no iniciada) 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.
El proceso de inspeccin

Planificacin
Visin de
Seguimiento
conjunto
Preparacin Repeticin
individual de trabajo
Reunin de
inspeccin
Proceso de inspeccin
Visin de conjunto 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 reinspeccin.
Roles en el proceso de
inspeccin
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.
Comprobaciones de
inspeccin 1
Comprobaciones de
inspeccin 2
Cifras de inspeccin
500 sentencias/hora durante la visin de
conjunto.
125 sentencias de cdigo fuente/hora durante
la preparacin individual.
Pueden inspeccionarse de 90 a 125
sentencias/hora.
Por lo tanto la inspeccin es un proceso caro.
Inspeccionar 500 lneas cuesta el esfuerzo de
unas 40 horas/hombre (unos 4146 en
cifras espaolas).
Anlisis esttico
automatizado
Los analizadores estticos son
herramientas de software para procesar
textos fuente.
Estos analizan sintcticamente el texto
del programa y tratan de descubrir
condiciones potencialmente errneas y
llamar la atencin del equipo de V & V.
Son una ayuda muy efectiva en las
inspecciones ( son un complemento, no
una sustitucin de las inspecciones)
Comprobaciones del
anlisis esttico
Etapas del anlisis
esttico
Anlisis del flujo de control. Comprueba los
bucles con mltiples puntos de entrada o
salida, encuentra cdigos inalcanzables.
Anlisis de uso de los datos. Detecta
variables no inicializadas, variables escritas
dos veces sin que intervenga una
asignacin, variables que se declaran pero
nunca se usan, etc.
Anlisis de interfaz. Comprueba la
consistencia de una rutina, las
declaraciones del procedimiento y su uso.
Etapas del anlisis
esttico
Anlisis de flujo de informacin. Identifica las
dependencias de las variables de salida. No
detecta anomalas en s pero resalta informacin
para la inspeccin o revisin del cdigo.
Anlisis de caminos. Identifica los caminos del
programa y arregla las sentencias ejecutadas en
el camino. Nuevamente, es potencialmente ltil
en el proceso de revisin.
Ambas etapas generan grandes cantidades de
informacin. Deben utilizarse con cuidado.
Anlisis esttico LINT
Uso del anlisis esttico
Es particularmente valioso cuando se
utiliza un lenguaje como C que tiene un
tipado dbil y por tanto muchos errores
no detectados por el compilador
Es menos rentable para lenguajes como
Java que tienen una fuerte
comprobacin de tipado y por lo tanto
pueden detectar muchos errores
durante la compilacin.
Desarrollo de software de
sala limpia
El nombre se deriva de Sala limpia en la
fabricacin de unidades de semiconductores. La
filosofa es evitar los defectos en lugar de
eliminarlos.
Este proceso de desarrollo de software se basa
en:
Desarrollo incremental;
Especificacin formal;
Verificacin esttica utilizando argumentos de
correccin;
Pruebas estticas para determinar la fiabilidad del
programa.
El proceso de Sala
limpia

Especificar Revisin de errores


formalment
e el
sistema
Definir los Construir el Verificar
Integrar el
incremento programa formalment
incremento
s de estructurad e el cdigo
software o
Desarrollar
el perfil Disear Probar el
operacion las sistema
al pruebas integrado
estticas
Limpia
Caractersticas del proceso de
Sala limpia
Especificacin formal que utiliza un
modelo de transicin de estados.
Desarrollo incremental en el que el
cliente prioriza sus incrementos.
Programacin estructurada: se utiliza un
nmero limitado de estructuras de control
y de abstracciones de datos.
Verificacin esttica que utiliza
inspecciones rigurosas.
Equipos de proceso de Sala
Limpia
Equipo de especificacin. Responsable del
desarrollo y mantenimiento de la especificacin
del sistema.
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.
Evaluacin del proceso de
Sala Limpia
El resultado de usar procesos de Sala Limpia ha
sido realmente impresionante con los pocos fallos
descubiertos en sistemas desarrollados.
La valoracin independiente muestra que el
proceso no es ms caro que otras aproximaciones.
Hubo muy muchos menos errores que en el
proceso de desarrollo tradicional.
Sin embargo, el proceso generalmente no se
utiliza. No est claro como puede ser transferida
esta aproximacin a un entorno con ingenieros de
software menos motivados o menos expertos.
Evaluacin del proceso con
Caja Negra
Las pruebas de caja negra son aquellas que se
enfocan directamente en el exterior del mdulo, sin
importar el cdigo, son pruebas funcionales en las
que se trata de encontrar fallas.
Evaluacin del proceso con
Caja de Estado
La caja de estado encapsula los datos de estado y
servicios (operaciones).
Evaluacin del proceso con
Caja Transparente
Una caja transparente contiene el diseo de
procedimiento para la caja de estado.
Transparente
Transparente
Puntos clave
La verificacin y la validacin no son lo
mismo. La verificacin muestra el ajuste con
la especificacin; La validacin muestra que
el programa cumple las necesidades del
cliente.
Los planes de prueba deberan ser
preparados para guiar el proceso de prueba.
Las tcnicas de verificacin esttica implican
el anlisis y examen del programa para la
deteccin de errores.
Puntos clave
Las inspecciones del programa son muy
efectivas para descubrir errores.
El cdigo del programa en las inspecciones es
comprobado sistemticamente por un pequeo
equipo para ubicar los fallos de software.
Las herramientas de anlisis esttico pueden
descubrir anomalas en el programa que
pueden ser una indicacin de defectos en el
cdigo.
El proceso de desarrollo de Sala Limpia
depende del desarrollo incremental, la
verificacin esttica y las pruebas estadsticas.

También podría gustarte