Validación de requisitos
validación y verificación
En la gestión de proyectos de software , las pruebas de software y la ingeniería de software , la verificación y validación ( V & V ) es el proceso de verificar que un sistema de software cumpla con las especificaciones y cumpla con su propósito. También se lo puede denominar control de calidad de software . Normalmente es responsabilidad de los probadores de software como parte del ciclo de vida de desarrollo de software . En términos simples, la verificación del software es: "Suponiendo que debemos construir X, ¿nuestro software logra sus objetivos sin ningún tipo de error o brecha?" Por otro lado, la validación del software es: "¿Era X lo que deberíamos haber construido? ¿Cumple X los requisitos de alto nivel?"La verificación y validación no son lo mismo, aunque a menudo se confunden. Boehm [1] expresó sucintamente la diferencia entre Validación: ¿Estamos construyendo el producto correcto? Verificación: ¿Estamos construyendo correctamente el producto? Construir el producto correcto implica crear una Especificación de Requisitos que contenga las necesidades y los objetivos de las partes interesadas del producto de software. Si tal artefacto está incompleto o es incorrecto, los desarrolladores no podrán construir el producto que desean los interesados. Esta es una forma de "validación de artefactos o especificaciones".
Construir correctamente el producto implica el uso de la Especificación de Requisitos como entrada para la próxima fase del proceso de desarrollo, el proceso de diseño, cuyo resultado es la Especificación del Diseño. Luego, también implica el uso de la especificación de diseño para alimentar el proceso de construcción. Cada vez que la salida de un proceso implementa correctamente su especificación de entrada, el producto de software está un paso más cerca de la verificación final. Si el resultado de un proceso es incorrecto, los desarrolladores no están creando el producto que las partes interesadas desean correctamente. Este tipo de verificación se denomina "artefacto o verificación de especificación".
Validación de software
La validación de software comprueba que el producto de software cumple o se ajusta al uso previsto (verificación de alto nivel), es decir, el software cumple con los requisitos del usuario, no como artefactos de especificación o como necesidades de aquellos que operarán el software únicamente; pero, como las necesidades de todas las partes interesadas (como usuarios, operadores, administradores, gerentes, inversores, etc.). Hay dos formas de realizar la validación del software: interna y externa. Durante la validación interna del software, se supone que los objetivos de los interesados se entendieron correctamente y que se expresaron en los artefactos necesarios de forma precisa y exhaustiva. Si el software cumple con la especificación de requisitos, ha sido validado internamente. La validación externa ocurre cuando se realiza preguntando a las partes interesadas si el software satisface sus necesidades. Las diferentes metodologías de desarrollo de software exigen diferentes niveles de participación y retroalimentación de los usuarios y partes interesadas; entonces, la validación externa puede ser un evento discreto o continuo. La validación externa final exitosa ocurre cuando todas las partes interesadas aceptan el producto de software y expresan que satisface sus necesidades. Tal validación externa final requiere el uso de unprueba de aceptación que es una prueba dinámica .
Sin embargo, también es posible realizar pruebas estáticas internas para determinar si cumple con la especificación de requisitos, pero eso cae dentro del alcance de la verificación estática porque el software no se está ejecutando.