Glossário · Fundamentos de testes
Teste exploratório
Em inglês: Exploratory testing
Também chamado de: testes exploratórios, teste exploratório baseado em sessão, session-based testing
Definição
Teste em que o tester projeta e executa os testes ao mesmo tempo, usando o que cada resultado revela para decidir o que tentar em seguida.
Teste exploratório é aprendizado, projeto de teste e execução de teste acontecendo ao mesmo tempo. Em vez de seguir passos escritos previamente, o tester investiga o produto, formula uma hipótese sobre onde ele pode falhar, testa essa hipótese e deixa o resultado guiar o próximo teste. É pensamento estruturado, não clicar aleatoriamente, e ele encontra os bugs para os quais ninguém pensou em escrever um caso de teste.
Exemplo: uma sessão com tempo definido
Os times normalmente fazem teste exploratório em sessões com um charter escrito:
Charter: Explorar o upload de arquivos na página de perfil com arquivos incomuns, para descobrir como ele lida com entradas inválidas. 60 minutos.
Durante a sessão, o tester pode tentar um arquivo de 0 byte, uma imagem de 50 MB, um .png que na verdade é um PDF, um nome de arquivo com emoji ou com 255 caracteres, dois uploads em sequência rápida e cancelar no meio. Cada surpresa leva a testes de acompanhamento. As anotações registram o que foi coberto, os bugs encontrados, as dúvidas levantadas e as áreas que ficaram para outra sessão.
Exploratório vs roteirizado
| Exploratório | Roteirizado | |
|---|---|---|
| Projeto | Durante a execução | Antes da execução |
| Ponto forte | Encontra bugs inesperados, adapta-se rápido | Repetível, auditável, fácil de automatizar |
| Ponto fraco | Depende da habilidade do tester, mais difícil de repetir | Só encontra o que foi previsto |
Os dois se complementam. Testes roteirizados e automatizados protegem o comportamento conhecido. A exploração encontra o desconhecido, e suas melhores descobertas muitas vezes viram novos testes de regressão automatizados.
Erros comuns
- Sem charter e sem anotações. Sem um foco e um registro, ninguém consegue saber o que foi coberto e a sessão não pode ser reportada.
- Confundir com teste ad hoc. O teste ad hoc é informal e não documentado. O teste exploratório é deliberado, tem tempo definido e termina com um debriefing.
- Deixar para o final. Explorar uma funcionalidade cedo, enquanto ela ainda está sendo construída, dá feedback aos desenvolvedores quando agir é mais barato.