Semana 9 - Verificación y Validación
Semana 9 - Verificación y Validación
Semana 9 - Verificación y Validación
Introducción
La complejidad de los diseños software es algo que está creciendo en los últimos años de
forma imparable. Los clientes piden software más sofisticado y con menos errores.
M enos Errores
Software más
sofisticadodo
Esto hace crucial el estudio de nuevas técnicas que sean capaces de agilizar el proceso de
validación y conseguir así, una mejora exponencial de la productividad y la calidad de los
diseños.
Para lograr un buen proceso de calidad, se hace necesario plantearse la Calidad del Software
desde una perspectiva global, albergando el ciclo de vida completo del producto, teniendo en
cuenta tanto la calidad final del mismo como la del proceso de desarrollo.
Por lo tanto, contar con metodologías, estándares, buenas prácticas, normativas y directrices
correctas resulta fundamental para construir el armazón que permite desarrollar y poner en
producción un producto software de calidad porque de esta forma, los errores y los costes
serán menores y la agilidad y eficacia crecerán. Es decir, no basta con probar y probar, sino con
probar con criterio. Cuando se une un buen proceso con un buen producto, el éxito está
prácticamente asegurado
Definición
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 verificación y validación 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 en
cada etapa del proceso de desarrollo del software.
Verificación
¿Estamos construyendo el producto correctamente?
Validación
¿Estamos construyendo el producto concreto?
La verificación es parte del proceso de desarrollo de software que garantiza que el trabajo sea
correcto. La verificación del software generalmente incluye:
La validación demuestra que el producto final cumple con los requisitos. Esos requisitos
abarcan la funcionalidad más la confiabilidad, el rendimiento, la seguridad y la protección.
Para los productos físicos, la validación incluye que los clientes vean, prueben el producto ellos
mismos. Pero para el software, la validación consiste en la ejecución del software y la
demostración de su ejecución. Por lo general, involucra:
Es importante comprender las diferencias entre los objetivos de verificación y validación, y que
el desarrollo de software necesita ambos.
Estas actividades son una parte importante del esfuerzo que se dedica al desarrollo de
software. Las organizaciones siempre buscan optimizarlas sin comprometer la seguridad, la
protección o la calidad.
Este modelo pone de manifiesto como el desarrollo de las pruebas debe efectuarse de
manera paralela al desarrollo del programa. En contraste, un modelo clásico centra la
atención en lo que se produce, mientras el modelo en V lo hace en la actividad. Es un
modelo ideal para proyectos pequeños por su robustez, claridad y sencillez.
El modelo V muestra el enfoque para una verificación y validación más formal, que
utiliza el desarrollo de software crítico para la seguridad. Ilustra las actividades en cada
etapa de desarrollo y las relaciones entre ellas.
El modelo V de desarrollo de software que muestra la relación entre cada fase y la validación inferida en
cada etapa de prueba.
El modelo V es bueno para ilustrar la relación entre las etapas de desarrollo y las
etapas de validación. En cada etapa de prueba, se validan partes más completas del
software con la fase que lo define. Sin embargo, el modelo V podría implicar un
método de desarrollo en cascada.
La verificación, por otro lado, asegura que cada etapa esté completa y realizada
correctamente:
E
l modelo V de desarrollo de software que muestra la relación de verificación entre cada etapa de desarrollo.
Metodologías Ágiles.
Las metodologías ágiles son filosofías de trabajo que engloban un conjunto de métodos que
permite adaptar el modo de trabajo a las condiciones del proyecto, aportando flexibilidad y
eficiencia.
DevOps
DevOps surge como un acrónimo del inglés de development (desarrollo) y operations
(operaciones). Es una práctica de ingeniería de software que tiene como objetivo unir el
desarrollo con la operación software. La principal característica de DevOps es la
automatización y el control de todos los pasos de construcción software desde la integración,
las pruebas… hasta la implementación
El proyecto sigue una constante realimentación, como ilustra la imagen. Esto se representa
como un bucle infinito donde los pasos dentro del ciclo de vida de un proyecto (planificar,
construir, implementar, comunicar…) se dan a lo largo de todo el tiempo alimentándose unos
de los otros.
Ya no se sigue una gestión lineal y la planificación de trabajo realizada va modificándose
constantemente a medida que avanza el proyecto.
En algunos casos, como los grandes proyectos militares y de defensa, los entregables de hitos
se incorporan al contrato y a los acuerdos de pago. Aunque esto implica un enfoque en
cascada, no hay razón para limitar el desarrollo de software. Los equipos pueden usar modelos
híbridos para lograr hitos de entregables utilizando métodos iterativos y ágiles internamente.
La razón para plantear esto en una discusión sobre verificación y validación es que los equipos
pueden aprovechar muchos de los beneficios de la integración y las pruebas continuas en
aplicaciones complejas críticas para la seguridad.
De manera similar, los desarrolladores deben intentar las pruebas de integración tan pronto
como estén listos los componentes probados por la unidad. La combinación de la
automatización con un enfoque continuo e iterativo proporciona enormes beneficios para la
validación y verificación del software.
El modelo V muestra el enfoque para una verificación y validación más formal, que utiliza el
desarrollo de software crítico para la seguridad.
Verificación acelerada
La verificación implica el trabajo para garantizar que cada fase de desarrollo cumpla con la
especificación del paso anterior. En términos de codificación y prueba de software, la
verificación es asegurarse de que el código satisfaga el diseño del módulo y, en última
instancia, el diseño de alto nivel y los requisitos anteriores.
Validación acelerada
La validación es demostrar que un producto cumple con sus requisitos cuando la ejecución del
código es necesaria ya sea de forma aislada para pruebas unitarias o en varias etapas de
integración. Automatizar estos conjuntos de pruebas es un gran ahorro de tiempo para el
desarrollo de software integrado.
https://es.parasoft.com/blog/verification-vs-validation-in-embedded-software/
http://ramon-gzz.blogspot.com/2012/08/verificacion-y-validacion-de-software.html
https://academica-e.unavarra.es/xmlui/bitstream/handle/2454/40278/
TFE_Laura_Merino_Desarrollo%20de%20un%20Proceso%20de%20Validaci%C3%B3n%20y
%20Verificaci%C3%B3n%20Software.pdf?sequence=1&isAllowed=y
https://spa.myservername.com/exact-difference-between-verification