Testes exploratórios

Normalmente, quando pensamos na execução de testes de software atribuímos a atividade ao tester. No entanto, é algo que todo o time pode colaborar. Neste breve texto, explicarei o que são Testes Exploratórios de Software e como você pode adotá-los em sua equipe.

O que é teste exploratório?

Se você está pensando que o tester executa diferentes ações em um aplicativo por meio de uma sequência aleatória, sem nenhuma lógica, como no Monkey Testing 1, tenho que dizer que você está enganado. Na verdade, é exatamente o contrário.

Os testers precisam aprender sobre a aplicação, elaborar os casos e executá-los manualmente. Todas essas ações são feitas ao mesmo tempo e pela mesma pessoa. Os testes exploratórios são precisos, ou seja, devem ser executados dentro de um escopo, o que pode ser, por exemplo, validar uma história de um usuário ou testar uma funcionalidade completa. Para a execução ser mais efetiva, deve ser programado um tempo limite, que normalmente é curto, cerca de algumas horas.

Quem pode executar os testes?

Essa é uma pergunta fácil de responder! Como disse ali em cima, todas as pessoas do time podem executá-los! Elas têm acesso a todos os requisitos (e outras documentações do projeto), à aplicação (sistema a ser testado) e estão interessadas em entregar essa aplicação com qualidade.

Não quero dizer que os testers não são indicados para executar essa tarefa, pois na verdade eles são os experts nessa área e, na realidade, já fazem isso. O que eu realmente gostaria de propor é que todos tentem. E, a partir deste ponto, vou me referir a eles como os “novos testers”.

Como executar os testes exploratórios?

Os “novos testers” devem tentar responder pelos menos duas questões: o que testar e como testar?

Pode-se encontrar ideias sobre o que será testado nas documentações do projeto (como requisitos, escopos, etc.), nas descrições das histórias dos usuários e em seus critérios de aceitação.

Essas informações nos trazem a possibilidade de testarmos múltiplos cenários que a aplicação deve suportar, sem trazer surpresas desagradáveis para os usuários.

As reuniões de review, com todos os envolvidos do projeto, são outro momento em que podemos tomar notas dos cenários mais utilizados.

Um item a ser lembrado é o “Happy Path”, que já foi intensivamente testado pelos outros testers e por outras técnicas de testes, como a verificação unitária. Por conta disso, nesse momento esses cenários dificilmente estarão “quebrados”.

Sendo assim, uma dica muito importante: fuja dos padrões!

  • Em campos numéricos, explore por números igual a 0, 1 e muitos;
  • Valores dentro e fora dos limites dos campos;
  • Extrapole com valores insuficientes;
  • Experimente testar sua aplicação em conexões com qualidade muito baixa ou sem conexão;
  • Envie arquivos com diferentes formatos e tamanhos;

E se durante os testes você encontrar algum bug é necessário reportá-lo (após verificar se já não existe esse bug reportado). Para isso é necessária organizar as informações e anotar todos os detalhes (como passos para reproduzir, logs, screenshots ou vídeos). O melhor momento para se fazer isso é assim que você encontrá-lo, para evitar a perda de qualquer detalhe fundamental.

Um outro ponto importante sobre os bugs encontrados é saber se essa falha sempre ocorre ou se ela é intermitente.

Quando executar os testes exploratórios?

Eles cabem muito bem em times ágeis, como no final da Sprint. Ou também podem ser executados quando uma funcionalidade é completamente desenvolvida ou alterada, por exemplo.

Quais os benefícios em executá-los?

Precisamos admitir que a primeira intenção da utilização dos testes exploratórios é encontrar bugs para evitar que eles cheguem até os usuários. Mas essa experiência traz também outras vantagens, como:

  • os “novos testers” podem trazer a sua opinião ao utilizar esses sistemas e assim melhorar a sua qualidade.
  • como os “novos testers” atuam um pouco fora de sua área principal, essa interação possibilita uma difusão do conhecimento sobre a aplicação. E eles acabam se deparando com situações que testers profissionais não enxergam, uma vez que estão acostumados com a tarefa.
  • e finalmente, desenvolve o envolvimento e a colaboração dentro desse time.

Para fechar esse assunto, executar testes de software é uma atividade que envolve muita observação e criatividade. Saia do roteiro para garantir os melhores resultados!

Você também pode gostar de ler: Entendendo a automação de testes