0% encontró este documento útil (0 votos)
177 vistas4 páginas

Verificación y Validación (V&V) : Conjunto de Procesos de Comprobación y

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 4

Verificación y Validación

Verificación y Validación

Verificación y Validación (V&V): Conjunto de procesos de comprobación y


análisis que aseguran que el software que se desarrolla está acorde a su
especificación y cumple las necesidades de los clientes.

Existen actividades de V&V en cada etapa del proceso de desarrollo del software

Verificación:
¿Estamos construyendo el producto correctamente?
Se comprueba que el software cumple los requisitos funcionales y no funcionales
de su especificación.

Validación:
¿Estamos construyendo el producto correcto?
Comprueba que el software cumple las expectativas que el cliente espera

Importante: Nunca se va a poder demostrar que el software está


completamente libre de defectos

Ingeniería de Programación 2009 Verificación y Validación J.M. Drake 3

La verificación y validación es el nombre que se da a los procesos de comprobación y análisis


que aseguran que el software que se desarrolla está acorde a su especificación y cumple las
necesidades de los clientes. La V&V es un proceso de ciclo de vida completo. Inicia con las revisiones
de los requerimientos y continúa con las revisiones del diseño y las inspecciones del código hasta la
prueba del producto. Existen actividades de V&V en cada etapa del proceso de desarrollo del software.
La verificación y la validación no son la misma cosa , aunque es muy fácil confundirlas,
Boehm (1979) expresó la diferencia entre ellas de forma sucinta:
•Verificación: ¿Estamos construyendo el producto correctamente?
El papel de la verificación comprende comprobar que el software está de
acuerdo con su especificación. Se comprueba que el sistema cumple los
requerimientos funcionales y no funcionales que se le han especificado.
•Validación: ¿Estamos construyendo el producto concreto?
La validación es un proceso mas general. Se debe asegurar que el software
cumple las expectativas del cliente. Va mas allá de comprobar si el
sistema está acorde con su especificación, para probar que el software
hace lo que el usuario espera a diferencia de lo que se ha especificado.
Es importante llevar a cabo la validación de los requerimientos del sistema de forma inicial.
Es fácil cometer errores y omisiones durante la fase de análisis de requerimientos del
sistema y, en tales casos, el software final no cumplirá la expectativas de los clientes. Sin
embargo, en la realidad, la validación de los requerimientos no puede descubrir todos los
problemas que presenta la aplicación. Algunos defectos en los requerimientos solo pueden
descubrirse cuando la implementación del sistema es completa.

Ingeniería de Programación (4º Físicas) J.M. Drake 3


Verificación y Validación

Técnicas de Verificación y Validación

Inspecciones del Software:


„ Se analizan las diferentes representaciones del sistema (diagramas de
requerimientos, diagramas de diseño y código fuente) en búsqueda de
defectos.
„ Son técnicas de validación estáticas => No requieren que el código se
ejecute
„ Debe realizarse durante todo el ciclo de desarrollo.

Pruebas del Software:


„ Se contrasta dinámicamente la respuesta de prototipos ejecutables del
sistema con el comportamiento operacional esperado.
„ Técnicas de validación dinámicas => El sistema se ejecuta
„ Requiere disponer de prototipo ejecutables, por lo que sólo pueden
utilizarse en ciertas fases del proceso

Ingeniería de Programación 2009 Verificación y Validación J.M. Drake 4

Dentro del proceso de Verificación y validación se utilizan dos técnicas de comprobación y


análisis de sistemas:
1. Las inspecciones del software analizan y comprueban las representaciones del sistema
como el documento de requerimientos, los diagramas de diseño y y el código fuente del
programa. Se aplica a todas las etapas del proceso de desarrollo. Las inspecciones se
complementan con algún tipo de análisis automático del texto fuente o de los
documentos asociados. Las inspecciones del software y los análisis automatizados son
técnicas de verificación y validación estáticas puesto que no requieren que el sistema se
ejecute.
2. Las pruebas del software consiste en contrastar las respuestas de una implementación
del software a series de datos de prueba y examinar las respuestas del software y su
comportamiento operacional, para comprobar que se desempeñe conforme a lo
requerido. Llevar a cabo las pruebas es una técnica dinámica de la verificación y
validación ya que requiere disponer de un prototipo ejecutable del sistema.

Ingeniería de Programación (4º Físicas) J.M. Drake 4


Verificación y Validación

Verificación y validación estática y dinámica

Inspecciones
de software

Especificación Diseño de la Especificación Diseño


Codificación
de requerimientos arquitectura formal detallado

Prototipo Prueba de programas

Ingeniería de Programación 2009 Verificación y Validación J.M. Drake 5

En el esquema se muestra el lugar que ocupan las inspecciones y las pruebas dentro del
proceso de desarrollo de software. Las flechas indican las fases del proceso en las que se
utilizan las técnicas. Las inspecciones de software se pueden utilizar en todas las etapas del
proceso, mientras que las técnicas de prueba sólo se pueden cuando está disponible un
prototipo o código ejecutable.
Las técnicas de inspección incluyen inspección de programas, análisis automatizado de
código fuente y verificación formal. Sin embargo las técnicas estáticas sólo pueden
comprobar la correspondencia entre un programa y su especificación (verificación) y no
puede probar que el software es de utilidad operacional, y mucho menos que las
características no funcionales del software son las correctas. Por lo tanto, para validar un
sistema de software, siempre se requieren llevar a cabo ciertas pruebas.
Aunque en la actualidad las inspecciones se utilizan ampliamente, las pruebas de los
programas es aún la técnica de verificación y validación predominante.

Ingeniería de Programación (4º Físicas) J.M. Drake 5


Verificación y Validación

Proceso de depuración

Proceso de depuración: Proceso que localiza y corrige los errores


descubiertos durante la verificación y validación.
„ Es un proceso complicado pues no siempre los errores se detectan cerca del
punto en que se generaron.
„ Se utilizan herramientas de depuración, que facilitan el proceso

Después de reparar el error, hay que volver a probar el sistema (pruebas de


regresión).
„ La solución del primer fallo puede dar lugar a nuevos fallos.

Resultados de Casos de pruebas


prueba Especificación

Diseñar reparación Probar de nuevo el


Localizar error Reparar errores
errores programa

Ingeniería de Programación 2009 Verificación y Validación J.M. Drake 6

Al proceso de eliminación de los errores que se descubren durante las fases de prueba se denomina
depuración. Es un proceso independiente que no tiene porqué estar integrado:
• La verificación y validación establece la existencia de defectos en el programa.
• La depuración es el proceso que localiza el origen y corrige estos defectos.
No existe un proceso sencillo para la depuración de programas. Los mejores depuradores buscan
patrones en los resultados de las pruebas donde el defecto se detecta, y para localizar el defecto
utilizan el conocimiento que tienen sobre el tipo de defecto, el patrón de salida, así como del
lenguaje y proceso de programación. El conocimiento del proceso es importante. Los depuradores
conocen los errores de los programadores comunes (como olvidad incrementar un contador, errores
de direccionamiento de punteros en lenguaje C, etc.) y los comparan contra los patrones observados.
Localizar los fallos es un proceso complejo porque los fallos no necesariamente se localizan cerca del
punto en que se detectan. Para localizar un fallo de un programa el programador responsable de la
depuración tiene que diseñar programas de prueba adicionales que repitan el fallo original y que
ayudan a descubrir el origen del fallo. En estos casos las herramientas de depuración que permiten
rastrear el programa y visualizar los resultados intermedios es de una gran ayuda.
Las herramientas de depuración son habitualmente parte de las herramientas de apoyo al lenguaje y que
sirven de base al compilador. Proporcionan un entorno especial de ejecución que permiten acceder a
las tablas de símbolos del compilador, a través de ella a los valores de las variables del programa.
Habitualmente, permiten controlar la ejecución paso a paso sobre el código del programa.
Después de que se descubre el origen del fallo en el programa, este debe corregirse y entonces reevaluar
el sistema. Esto implica repetir de nuevo las pruebas anteriores (pruebas de regresión). Estas pruebas
se hacen para comprobar que los cambios introducidos resuelven definitivamente el fallo y no
introducen nuevos fallos. La estadística muestra que la reparación de un fallo frecuentemente es
incompleta y además introduce nuevos fallos.
Ingeniería de Programación (4º Físicas) J.M. Drake 6

También podría gustarte