V&V é uma sigla bastante utilizada em engenharia. Refere-se a procedimentos de garantia de qualidade. Esses procedimentos são de dois tipos distintos: verificação e validação.
Em Engenharia de Software foi Barry Boehm quem procurou definir V&V. Verificação ele associou ao texto “Are we building the product right?” e para validação ele usou o texto “Are we building the right product?”.
Saber distinguir que estratégias usamos para garantir qualidade de produtos de software passa por entender a diferença entre esses dois conceitos. Por diversas razões, a literatura de engenharia de software costuma confundir os leitores e usa os dois conceitos de maneira pouco cuidadosa.
A diferença é importante porque, de modo geral o processo de produção de software, prioriza a validação através de testes e deixa de investir em verificação. A verificação está relacionada ao conceito de consistência enquanto a validação está associada ao conceito de coerência.
A verificação pode ser feita no domínio da engenharia de software, mas a validação requer a participação de clientes, afinal são deles as expectativas que o software deve atender.
Abaixo vai uma Figura que uso para tentar explicar a diferença entre esses conceitos. Voltarei a esse tema no futuro.