DGERT   APCER
Relações de compromisso

Técnicas Associadas à Verificação e Validação de Produtos de Desenvolvimento de Software


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:

  • Verificar se os produtos de trabalho satisfazem correctamente as especificações estabelecidas nos produtos de trabalho precedentes, tais como, documentos de especificação de requisitos ou documentos de desenho;
  • Identificar qualquer desvio face aos standards, incluindo aspectos que possam afectar a manutenção do produto de trabalho;
  • Sugerir oportunidades de melhorias ao autor do produto de trabalho;
  • Promover a partilha de técnicas e experiências entre os participantes.

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:

  • Formais externas. Os produtos de trabalho são revistos juntamente com um stakeholder externo à organização, tipicamente o cliente ou o seu representante, tendo em vista a aprovação formal do produto de trabalho.
  • Formais internas. Os produtos de trabalho são revistos internamente, resultando na aprovação ou reprovação dos mesmos.
  • Informais. Os produtos de trabalho são revistos informalmente por recursos diferentes dos que os elaboraram.


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:

  • O correcto funcionamento dos componentes do sistema;
  • A correcta comunicação entre os diversos componentes;
  • O funcionamento correcto das interfaces entre os vários subsistemas que o compõem e com os sistemas de informação com os quais deverá comunicar;
  • O funcionamento correcto do sistema integrado de hardware e software no ambiente de utilização;
  • Que o sistema cumpre o funcionamento esperado, de acordo com os requisitos estabelecidos e com as expectativas geradas;
  • Que as mudanças sobre um componente do sistema não introduzem um comportamento indesejado ou erros adicionais noutros componentes não modificados (testes regressivos).

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:

  • Testes de integridade dos dados;
  • Testes funcionais;
  • Testes regressivos;
  • Testes de integração;
  • Testes de ciclo de negócio;
  • Testes de interface;
  • Testes de desempenho;
  • Testes de carga;
  • Testes de stress;
  • Testes de volume;
  • Testes de controlo de acesso e segurança.


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

Topo
Pesquisa
Agenda
Destaques