Como deixar seus casos de testes vivos

A grande maioria das pessoas que estão lendo este post já devem ter passado pela situação de ter uma suíte de testes no Testlink que praticamente “não serve mais”, o motivo dessa não serventia deve-se ao dia-a-dia dinâmico de desenvolvimento de software. As alterações nos requisitos do sistema podem ocorrer a qualquer momento e devido a priorização de tarefas, os casos de testes acabam ficando desatualizados.

A proposta deste post é mostrar como a utilização de especificação de cenários em features utilizando a técnica de BDD, pode deixar nossos casos de testes “vivos”, para conseguir mantê-los atualizados com mais facilidade.

A proposta é escrever um caso de testes no seguinte formato:

Mas você deve está se perguntando: Vou transformar BDD em casos de testes?

A proposta é: Transformar os casos de testes automatizáveis em cenários e não fazer de uma feature um amontoado de "casos de testes", com milhares de combinações. O que eu quero dizer com isto é:

Se tenho a seguinte tela:





Não vou fazer os cenários:

  • Logar na aplicação;
  • Nome de usuário inválido;
  • Senha de usuário inválida;
  • Deixar campo “Nome” e “Senha” em branco;
  • Colocar caracteres especiais nos campos “Nome” e “Senha”; Etc.

Se terei uma funcionalidade “Cadastrar pessoa” e para cadastrar uma pessoa terei que logar na aplicação, então não preciso ficar fazendo milhares de combinações na Tela de login, afinal, isso não vai gerar valor de negócio ao cliente, ninguém desenvolve somente uma Tela de login para um cliente.

Agora vendo o cenário abaixo:

Qual ganho teríamos colocando os casos de testes em features ao invés de criá-los no Testlink?

Ao optar por escrever um cenário em uma feature este deve ser automatizado, caso não seja, praticamente não terá ganho algum em relação aos casos de testes criados no Testlink. Ao adicionar esses cenários automatizados no pipeline do servidor de integração contínua, toda vez que seus testes falharem, eles irão impedir a geração de uma nova release e com isso obrigatoriamente os cenários terão que ser atualizados. Vale lembrar que a automação dos cenários de uma feature deve utilizar boas práticas de desenvolvimento, nada de:

Thread.sleep(1000);

Afinal, se seu teste por algum motivo demorar 2 segundos, não quer dizer que sua funcionalidade quebrou, pode ser um indicador que seus testes talvez não estejam bons. Em um outro momento, farei um outro post relacionado a como configurar o ambiente e como executar os testes no servidor de integração contínua.

Rafael Chiavegatto

Analista de testes na FPF tech, possui mais de 7 anos de experiência em testes. Conhecimento em metodologias ágeis, automatização de testes, agile testing e da cultura DevOps.

Manaus - Amazonas