Verificación y Validación (V&V) : Conjunto de Procesos de Comprobación y
Verificación y Validación (V&V) : Conjunto de Procesos de Comprobación y
Verificación y Validación (V&V) : Conjunto de Procesos de Comprobación y
Verificación y Validación
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
Inspecciones
de software
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.
Proceso de depuración
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