[Cascavel-pm] Testar módulos

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Fevereiro 14 23:58:26 PST 2007


On Feb 15, 2007, at 12:52 AM, Iberê O. Kuntz de Souza wrote:
> Fala pessoal..

   Grande Iberê!
   Olha, antes de mais nada, quero sua chave pública. Algum lugar  
onde eu posso pegar?

> bom, eu sei que existem vários módulos para testes de outros módulos
> (Test, Test::Simple, Teste::More, Test::Harness, etc).. eu já entendi
> bem o que fazer, porém tem uma única coisa que me faz não escrever os
> testes.. eu não sei o que testar. Eu só quero saber o que devo  
> testar em
>  meu(s) módulo(s). Se alguém puder me ajudar, agredeço desde já.  
> Obrigado.

   O quê testar é uma pergunta capiciosa... :-)
   A resposta curta seria "tudo".
   Claro, esta não ajuda muito.

   Se você consultar a wikipedia, eles definem "Test Driven  
Development", e mencionam que você deveria testar cada um dos seus  
"Use Cases", construindo pelo menos um "Test Case" (todas as  
expressões entre parêntesis levam a artigos sobre testes na  
wikipedia, links por conta do leitor).

   Objetivamente, o que você precisa testar é que o seu "Use Case"  
foi corretamente implementado. Pode fazer isso com uma sequência do  
tipo:

   a. Testar se o módulo pode ser encontrado, em condições de produção;
   b. Testar se o módulo pode ser importado (carregado, "loaded");
   c. Determinar se as funcionalidades esperadas do seu módulo estão  
no lugar;
   d. Exercitar cada uma das funcionalidades oferecidas, com pelo menos:
     I. Um teste bem-sucedido (entrada conhecida, resposta conhecida);
     II. Um teste mal-sucedido (entrada declaradamente ruim, erro  
esperado e conhecido);
     III. Um teste vazio (nenhuma entrada, erro esperado e conhecido).

   Isto dá uma média de 4*N+2 testes, com N sendo o número de  
funcionalidades que você implementou.

   Se você tem algum tipo de depósito de dados (base, arquivo, SOAP,  
qualquer coisa) envolvido no seu processo, ou algum outro tipo de  
serviço externo, pode exercitar que as respostas obtidas deste  
serviço pelo seu módulo contém dados no formato esperado (use  
Test::Deep).

   Acho que o básico para testes de unidade é isso.
   Depois, quando você tiver implementado todos estes, conversamos  
sobre os testes de integração, envolvendo a forma como diferentes  
módulos conversam entre si...

   Putamplexos!
--
Luis Motta Campos is a software engineer,
perl fanatic evangelist, and amateur {cook, photographer}




Mais detalhes sobre a lista de discussão Cascavel-pm