Está en la página 1de 4

Instituto Técnico Atenea

Verificación y validación
La verificación y validación es una actividad que juega un papel importante en la consecución de
procesos y productos de calidad. Por ello y dado los problemas que históricamente han surgido
en los desarrollos software, su estudio y mejora supone un avance importe para la futura
evolución de las tecnologías de la información. Se establece la evolución de dicha actividad y su
actual impacto en los distintos tipos de organizaciones software que las implementan, con el fin
de poder extraer algunos de los conceptos más importantes en su implantación y desarrollo y así
elaborar una guía de buenas prácticas que permita seleccionar las mejores opciones para realizar
las pruebas de software en función de las características de una organización.

Para lo cual se presentan algunos conceptos que influyen directamente en el desarrollo de la


verificación y validación software como son: los modelos de calidad, los modelos de mejora del
proceso de pruebas, las estructuras organizativas.

Las principales características de este enfoque se resumen en:

• Las pruebas no son una fase aislada del proyecto sino que constituyen en sí un proyecto
con su propio ciclo de vida.
• Los equipos de desarrollo y de pruebas son independientes, con funciones y perfiles
diferenciados.
• Antes de la ejecución de las pruebas se lleva a cabo todo un proceso metodológico que
facilita y asegura el éxito de las mismas.
• En el momento de la ejecución, está todo previsto, tanto los aspectos funcionales como
técnicos, evitándose la improvisación.

Los beneficios de aplicar un proceso de pruebas, formalmente conocido como verificación y


validación, no sólo repercute en el área inmediata del desarrollo de los proyectos, sino que se
extienden al resto de la empresa, a las distintitas áreas de negocio e incluso al cliente final, ya
que el departamento de informática al cumplir con su compromisos de plazos, costes y calidad
facilita la transición del desarrollo a la producción, ya que los proyectos pasan al entorno de
producción con estabilidad, eliminándose la etapa de post-implantación, evitando el efecto
cascada en el correctivo, y ofreciendo una mejor respuesta a los aspectos técnicos relevantes del
ciclo de vida en producción. Todo ello hace que se incremente la confianza y el nivel de
satisfacción de los usuarios finales y de los responsables de la explotación del nuevo sistema.

Garantizar el funcionamiento, la calidad, la seguridad y la protección correctas en el software


integrado es una parte sustancial de las actividades del software para los sistemas integrados. En
gran parte, los equipos logran esto mediante pruebas de software y durante todo el desarrollo
mediante análisis, trazabilidad, documentación. El software crítico para la seguridad tiene
enfoques rigurosos para la verificación y validación que a menudo están codificados en los
estándares de la industria. Ahora surge la pregunta: ¿cuál es la diferencia?

¿Cuál es la diferencia entre verificación y validación?


Las definiciones oficiales de validación y verificación se definen en el IEEE Glosario estándar de
terminología de ingeniería de software.

Verificación: El proceso de determinar si los productos de una determinada fase del ciclo de
desarrollo de software cumplen o no los requisitos establecidos durante la fase anterior.

Validación: El proceso de evaluación de software al final del proceso de desarrollo de software


para garantizar el cumplimiento de los requisitos de software.

Miguel Orlando Tirado Barrios


Instituto Técnico Atenea

Barry Boehm escribió en Verificación y validación de requisitos de software y especificaciones de


diseño definiciones mediante preguntas:

Verificación: "¿Estoy construyendo el producto correctamente?"

Validación: "¿Estoy construyendo el producto correcto?"

Estas definiciones llegan a demostrar la diferencia entre estos dos aspectos clave de las pruebas.

El objetivo de la verificación y validación


El objetivo final es crear el producto adecuado. Más que eso, se trata de garantizar que el
producto tenga la calidad, la seguridad y la protección necesarias para garantizar que siga siendo
el producto correcto.

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:

Conformidad con los estándares de la industria, asegurando que el proceso y los artefactos
cumplan con las pautas.
• Revisiones, tutoriales, inspecciones.
• Análisis estático y otras actividades sobre artefactos producidos durante el desarrollo.
• Hacer cumplir los estándares de arquitectura, diseño y codificación.
• 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 y 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:

• Ejecución de código para demostrar la funcionalidad correcta.


• Ejecución en entornos objetivo.
• Estrés, rendimiento, penetración y otras pruebas no funcionales.
• Pruebas de aceptación a los clientes de forma directa y frecuente.
• Usando artefactos de procesos de verificación para ilustrar trazabilidad de requisitos para
finalizar la funcionalidad, especialmente para funciones específicas de seguridad y
protección.
• 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.

Cómo realizar la verificación y validación


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.

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

Miguel Orlando Tirado Barrios


Instituto Técnico Atenea

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.

Además, la verificación asegura el cumplimiento de los requisitos a nivel de proyecto. Dichos


requisitos incluyen el cumplimiento de los estándares de la industria, la gestión de riesgos, la
trazabilidad y las métricas. Herramientas de automatización de pruebas de software.
Acelere la verificación automatizando los muchos aspectos tediosos del mantenimiento de
registros, documentación, informes, análisis e informes:

Utilice el análisis estático lo antes posible para garantizar la calidad y la seguridad a medida que
los desarrolladores escriben código. Además, el análisis estático evita errores y vulnerabilidades
futuros, lo que reduce el impacto posterior de los errores que se pasaron por alto durante la
inspección y las pruebas.
Automatización del cumplimiento de los estándares de codificación para reducir el esfuerzo
manual y acelerar las inspecciones de códigos.
Trazabilidad bidireccional para todos los artefactos para asegurarse de que los requisitos tengan
código y pruebas para demostrar que se están cumpliendo. Las métricas, los resultados de las
pruebas y los resultados del análisis estático se rastrean hasta los componentes y viceversa.
Cobertura de código y prueba para asegurarse de que se implementen todos los requisitos y para
asegurarse de que la implementación se pruebe según sea necesario.

Informes y análisis para ayudar a la toma de decisiones y realizar un seguimiento del progreso. La
toma de decisiones debe basarse en los datos recopilados de los procesos automatizados.
Generación de documentación automatizada desde análisis y resultados de pruebas para
respaldar el cumplimiento de estándares y procesos.
Automatización del cumplimiento de estándares para reducir los gastos generales y la
complejidad mediante la automatización de los procesos más repetitivos y tediosos. Además, las
herramientas pueden realizar un seguimiento del historial del proyecto y relacionar los resultados
con los requisitos, los componentes de software, las pruebas y las desviaciones registradas.

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.

La validación requiere la ejecución en el hardware de destino. La optimización de las pruebas de


regresión aprovecha al máximo los recursos, las personas y el hardware disponibles.
Herramientas de automatización de pruebas de Parasoft Acelere la validación al reducir la
dependencia de las pruebas manuales, manteniendo la trazabilidad y la cobertura del código de
todos los resultados:

Automatización de todas las suites de prueba minimiza las pruebas manuales y reduce el cuello
de botella de las pruebas debido a la disponibilidad limitada de hardware.
Ejecución de pruebas basadas en host y destino admite diferentes técnicas de validación según
sea necesario.
Prueba de cambio a la izquierda comienza tan pronto como los equipos desarrollan el código.
Aprovecha examen de la unidad frameworks y genera automáticamente arneses para probar tan
pronto como el código esté listo. El soporte para el desarrollo impulsado por pruebas y las
pruebas continuas está disponible a medida que madura el proceso de una organización.

Miguel Orlando Tirado Barrios


Instituto Técnico Atenea

Gestione el cambio con la ejecución inteligente de pruebas para centrarse en las pruebas solo
para el código que cambió y los dependientes afectados.
Trazabilidad bidireccional entre código, pruebas, resultados de análisis estáticos y requisitos y
soporte para herramientas de gestión del ciclo de vida de las aplicaciones (ALM) en toda la
empresa.

Miguel Orlando Tirado Barrios

También podría gustarte