A execução de actividades de verificação e validação envolve técnicas de análise presentes em três grandes classes: estáticas, dinâmicas e análises formais.
As técnicas de análise estáticas são todas aquelas que analisam directamente a forma e a estrutura de um produto de trabalho, tendo como exemplo as peer reviews (inspecções e revisões), auditorias e análise de fluxos de dados. Estas técnicas são habitualmente aplicadas a documentos de requisitos do produto, a planos de projecto, a modelos de arquitectura do produto, e ao código fonte. As técnicas de análise estáticas poderão ainda ser utilizadas para analisar a documentação de testes, especialmente os casos de teste, de modo a verificar a sua rastreabilidade com os requisitos do produto, a sua capacidade de testar completamente os requisitos e a sua precisão.
As técnicas de análise dinâmicas, envolvem a execução ou simulação de um produto ou componente do produto, de modo a detectar problemas através da análise da resposta do mesmo face à introdução de vários dados. Os protótipos e os testes são exemplos de técnicas de análise dinâmicas, devendo ser utilizadas para a avaliação do correcto funcionamento do produto construído ou em construção.
As técnicas de análise formais recorrem a técnicas matemáticas rigorosas para analisar os algoritmos de uma solução. Por vezes, os requisitos do produto podem ser escritos com uma linguagem de especificação formal (por exemplo, VDM), podendo ser verificados através de demonstrações (proof-of-correctness). As técnicas de análise formais, encontram-se menos disseminadas do que as duas técnicas anteriores, provavelmente devido ao maior grau de complexidade de implementação e execução (mais dispendioso). Contudo, esta técnica apresenta várias vantagens, nomeadamente devido à sua natureza matemática e lógica, que leva a que os factores de análise sejam únicos e consistentes durante os vários projectos de desenvolvimento, podendo desta forma haver uma base comparativa entre os indicadores dos vários projectos.
As técnicas que apresentamos a seguir são as mais utilizadas no âmbito da verificação e validação.
a) Peer reviews
A execução das peer reviews centra-se na análise de produtos de trabalho, recorrendo à realização de inspecções e revisões, e tendo em consideração os seguintes aspectos:
Um produto de trabalho é considerado de baixo risco se não afectar a capacidade do projecto para cumprir o seu plano, custos e objectivos (requisitos e qualidade). Caso o produto de trabalho apresente um risco elevado ou moderado para o projecto, deverão ser utilizadas inspecções de modo a analisá-lo pormenorizadamente, permitindo desta forma minimizar o índice de risco inerente à sua construção.
A revisão é uma técnica geralmente mais utilizada do que as inspecções, devido ao seu menor formalismo, menor quantidade de recursos necessários, e maior flexibilidade. Desta forma as revisões podem assumir as seguintes características:
b) Testes de sistema
Os testes de sistema têm como objectivo a monitorização e o controlo da qualidade funcional do produto em desenvolvimento. As actividades associadas aos testes deverão ser realizadas ao longo do ciclo de vida do projecto, de modo a verificar:
Os testes a serem executados durante o ciclo de vida do projecto variam de acordo com as suas características, devendo ser utilizado o bom senso na sua escolha. Estes devem ir ao encontro dos objectivos do projecto e ser executados no timming adequado do ciclo de vida. Os testes que suportam a execução das acções de verificação e de validação são:
c) Testes de aceitação
O objectivo dos testes de aceitação consiste em validar se o produto cumpre com o funcionamento esperado e se permite ao cliente determinar a sua aceitação do ponto de vista da sua funcionalidade e rendimento. Os requisitos dos testes de aceitação são identificados e definidos pelo cliente ou utilizador e preparados pela equipa de projecto, embora a execução e aprovação final correspondam ao cliente e/ou ao utilizador.
Estes testes estão vocacionados para verificar se o produto cumpre os requisitos de funcionamento esperados, abrangidos na especificação de requisitos e nos critérios de aceitação do produto, e conseguir deste modo a sua aceitação final por parte do cliente. Este último deve analisar os critérios de aceitação e dirigir os testes de aceitação final.
A validação do produto consegue-se através da realização de testes de caixa negra que demonstrem a conformidade com os requisitos. O plano deverá estar concebido para assegurar que se satisfazem todos os requisitos funcionais acordados com o cliente, tendo em conta também os requisitos não funcionais relacionados com o desempenho, segurança de acesso ao sistema, aos dados e processos, bem como aos diversos recursos do produto.
Os testes de aceitação também podem ser realizados pela equipa de projecto, que poderá simular um ambiente de testes similar ao ambiente em exploração do cliente e verificar o cumprimento dos critérios de aceitação. O objectivo da realização destes testes pela equipa de projecto é analisar se o produto já se encontra preparado, ou não, para ser entregue ao cliente.
As organizações devem apostar em suportar as técnicas de verificação e de validação com ferramentas, nomeadamente as técnicas de testes, devido à sua natureza e complexidade. Para isto, os processos organizacionais de verificação e validação devem encontrar-se estabelecidos, maduros, disseminados, e geridos, enquanto que os recursos associados à área de testes devem apresentar as competências necessárias para a sua gestão e execução.
Carlos Grosso, consultor em gestão da qualidade na Sinfic.
Produzido em 2006