Glosario · Fundamentos de testing
Verificación y validación
En inglés: Verification and validation
También llamado: V&V, verificación vs validación, diferencia entre verificación y validación, verification vs validation
Definición
La verificación pregunta "¿estamos construyendo el producto correctamente?" según la especificación; la validación, "¿estamos construyendo el producto correcto?".
La verificación y la validación son dos comprobaciones complementarias que suelen describirse con la formulación de Barry Boehm. La verificación comprueba que un producto de trabajo se ajusta a su especificación: ¿estamos construyendo el producto correctamente? La validación comprueba que el producto satisface las necesidades reales de sus usuarios en el entorno previsto: ¿estamos construyendo el producto correcto? Un sistema puede superar por completo la verificación y aun así fallar la validación si la especificación era errónea.
Ejemplo
Un requisito dice: “El botón de exportar genera un archivo CSV con todos los pedidos”.
- Verificación: el equipo revisa el diseño, inspecciona el código y prueba que al hacer clic en Exportar se genera un CSV con el formato correcto que contiene todos los pedidos. Así es, de modo que la verificación se supera.
- Validación: el equipo de finanzas intenta usarlo y descubre que en realidad necesita los pedidos filtrados por mes, con los impuestos en una columna aparte, y que su plantilla de hoja de cálculo espera el punto y coma como separador. La funcionalidad cumple la especificación, pero no la necesidad. La validación falla.
La diferencia de un vistazo
| Verificación | Validación | |
|---|---|---|
| Pregunta | ¿Construimos el producto correctamente? | ¿Construimos el producto correcto? |
| Se compara con | Requisitos, diseño, estándares | Necesidades de los usuarios y uso previsto |
| Actividades típicas | Revisiones, walkthroughs, inspecciones, análisis estático, pruebas unitarias, de integración y de sistema | Pruebas de aceptación de usuario, pruebas beta, estudios de usabilidad, demos, feedback de producción |
| ¿Necesita software en ejecución? | No siempre: las revisiones son verificación | Por lo general sí, o un prototipo realista |
| La realizan principalmente | Desarrolladores y QA | Usuarios, clientes, product owners |
Las técnicas estáticas, como las revisiones de requisitos y de código, son siempre verificación. La mayor parte de las pruebas dinámicas que hace QA contra la especificación también son verificación. La validación implica a las personas para las que se crea el producto.
Por qué importa
Los equipos que se centran solo en la verificación pueden entregar software que coincide exactamente con un requisito defectuoso. Las prácticas shift-left ayudan con ambas: revisar pronto los criterios de aceptación con los usuarios es una validación barata, y los tests automatizados en cada commit son una verificación continua. En sectores regulados como el de los dispositivos médicos, la V&V son actividades separadas y documentadas, y los auditores esperan evidencias de cada una.