Validação e verificação (ou simplesmente V&V) são denominações dadas a atividades que visam garantir que o produto está correto, de acordo com as necessidades do cliente. No entanto existem diferenças de interpretação do que seja cada uma delas.
Barry Boehm [Guidelines for Verifying and Validating Software Requirements and Design Specifications] define verificação como a atividade que avalia a correspondência entre o produto de software e a sua especificação. Define validação como a avaliação da correção do software em relação à sua operação pretendida.
Em outras palavras, a verificação garante que se está "desenvolvendo o produto corretamente" enquanto a validação garante que se está "desenvolvendo o produto correto". [CMMI]
Para a comunidade espacial ECSS, verificação diz respeito às atividades realizadas pela empresa que desenvolve o software ou por aquela contratada para fazer estas atividades (IV&V), até liberarem a versão final para o cliente. As atividades de verificação são realizadas em diversos níveis de integração, como testes de componentes de software isolados, módulos de software integrados ou mesmo o software integrado com o sistema completo. Veremos mais sobre níveis de integração de software adiante.
Após concluídas todas as atividades previstas pelo plano de verificação, o produto é entregue para o cliente (release). O cliente realizará os seus testes de aceitação (acceptance tests) no ambiente operacional confirmando a sua função, e a isso se dá o nome de validação. Portanto, a validação é vista como uma verificação no produto final, realizada pelo próprio solicitante, e não pelos desenvolvedores.
No ramo aeronáutico, o enfoque da norma RTCA DO-178 é diferente, mas tem em comum que a validação é algo relacionado ao cliente enquanto que verificação é relacionada ao desenvolvimento. A validação não é um teste final, mas sim uma comprovação de entendimento do que será necessário desenvolver. Portanto a validação desloca-se de uma fase final para uma fase inicial do projeto, onde se busca esclarecer com o cliente o que ele necessita. Este entendimento conceitual é registrado na forma de um documento com requisitos, que podem ser textuais, diagramas ou modelos simuláveis, e quando eles estão confirmados pelo cliente, dá se a isto o nome de requisitos validados. A boa prática de se validar com o cliente aquilo que se deseja realizar antes do início do processo aumenta as chances de sucesso do projeto, pois reduz o retrabalho ocasionado por falta de entendimento.
A verificação é equivalente à espacial, sendo atividades realizadas durante o ciclo de produção do software para garantir que o software está de acordo com os requisitos. Notar que o requisito assume um papel central na verificação. As atividades de verificação final são realizadas pela própria empresa, e não pelo cliente, por se tratarem de testes em voo ou em solo.
Combinando os dois conceitos, temos que a validação são atividades que podem acontecer no início e ao final do ciclo de desenvolvimento de software, garantindo que os insumos do processo de software correspondem à expectativa do cliente (requisitos validados) e que o produto final gerado pelo processo atende à necessidade operacional (testes de aceitação). Verificação é a atividade técnica executada ao longo do processo de software, baseada em requisitos.

Comentários
Postar um comentário