QA Learning / Fundamentos

Módulo 4: Teste exploratório

A técnica que acha o que o roteiro não previu, feita com método, carta de teste e tempo marcado

Aquecimento: 2 perguntas do Módulo 3

1. A regra diz "frete grátis acima de R$ 300". Quais três valores você testa primeiro?
299,99 / 300,00 / 300,01: a fronteira e os dois vizinhos. E o 300,00 obriga a reler o requisito: "acima de" inclui o 300?

2. Qual técnica você usa quando o resultado depende da combinação de várias condições?
Tabela de decisão: ela força olhar todas as combinações, inclusive as que ninguém especificou.

O que é (e o que não é)

Teste exploratório é aprender, projetar e executar o teste ao mesmo tempo. Cada coisa que você descobre muda o que você testa em seguida. É o oposto de seguir um roteiro escrito ontem.

O que não é: clicar à toa, "dar uma mexida", testar sem registrar nada. Exploratório feito direito tem objetivo, tempo marcado e anotação, e por isso é auditável e repetível como qualquer outro trabalho sério. A diferença não é ausência de método; é que o método está no como você investiga, não numa lista de passos definida de antemão.

Por que isso não é opcional

Volte ao Módulo 1: teste exaustivo é impossível e a suíte automatizada sofre do paradoxo do pesticida: ela só acha o que alguém já imaginou. O defeito que ninguém imaginou não está em nenhum roteiro, por definição. Só aparece se alguém for lá procurar com a cabeça aberta. Time que só executa roteiro entrega o que já sabia; time que também explora descobre.

A sessão: a unidade de trabalho

A forma mais usada de organizar isso se chama teste baseado em sessões. Uma sessão tem quatro partes:

  • Carta (charter): uma frase dizendo o que você vai investigar e com que olhar. É o contrato da sessão.
  • Tempo marcado: 45, 60 ou 90 minutos, sem interrupção. Tempo demais cansa e vira clique automático; tempo de menos não deixa você entrar no assunto.
  • Anotação: o que você fez, o que viu de estranho, o que ficou de fora, as perguntas que surgiram.
  • Fechamento (debrief): cinco minutos com alguém do time contando o que achou e o que merece uma próxima sessão.

O formato da carta que funciona bem:

Explorar   <área ou funcionalidade>
com        <recursos, dados, ferramentas>
para       <que tipo de informação ou risco>

Uma carta de verdade

Explorar  o cupom de desconto no carrinho
com       contas nova e antiga, cupom expirado, cupom já usado,
          e o painel de rede do navegador aberto
para      descobrir se dá pra burlar a regra de "um cupom por pedido"
          ou aplicar desconto abaixo do valor mínimo

Tempo: 60 min          Ambiente: homolog, v2.14

Repare: a carta é específica o bastante pra focar e aberta o bastante pra você descobrir o que não esperava. Uma carta como "explorar o carrinho" é vaga demais; "clicar no botão aplicar e conferir os 10%" é um caso de teste, não uma carta.

Heurísticas: o que fazer quando você trava

Vinte minutos de sessão e acabaram as ideias, acontece com todo mundo. Heurística é uma lista de provocações que devolve o rumo.

Os "passeios" (tours)

  • Passeio do dinheiro: siga tudo que envolve valor: preço, desconto, frete, imposto, estorno. É onde o defeito custa caro.
  • Passeio do CRUD: para cada entidade: criar, ler, atualizar, apagar. E depois: apagar e tentar ler de novo; atualizar duas vezes seguidas.
  • Passeio do turista: visite as telas que ninguém visita: erro 404, página de termos, recuperação de senha, estado vazio ("você não tem pedidos").
  • Passeio do sabotador: desligue a internet no meio, aperte o botão duas vezes, volte pelo botão do navegador, atualize a página no meio do fluxo.
  • Passeio do supermercado: encha o carrinho: 99 itens, nome com 300 caracteres, upload de arquivo gigante.

O pente SFDIPOT

Uma varredura por sete ângulos, pra não ficar só no fluxo feliz:

LetraÂnguloPergunta que ele provoca
SEstruturade que partes isso é feito? o que existe além da tela?
FFunçãoo que isso faz? e o que faz quando dá errado?
DDadosque dados entram e saem? vazio, enorme, estranho, duplicado?
IInterfacescom que outros sistemas conversa? e se um cair?
PPlataformanavegador, celular, sistema, resolução, conexão ruim
OOperaçõescomo as pessoas realmente usam isso no dia a dia?
TTempoordem dos eventos, simultaneidade, timeout, fuso, data virando

Dica: T de tempo é o ângulo mais esquecido e o que rende mais defeito: dois cliques rápidos, duas abas abertas, sessão expirando no meio do pagamento.

Oráculo: como você sabe que está errado?

Oráculo é o que te permite dizer "isso aí está errado". Sem oráculo você está só passeando pelo sistema. Você tem mais oráculos do que imagina:

  • Especificação: a história, o contrato da API, o desenho no Figma.
  • Consistência interna: a mesma data aparece em dois formatos em duas telas; o total da lista não bate com o total do resumo.
  • Consistência com o passado: antes funcionava assim, e ninguém pediu pra mudar.
  • Comparável: o concorrente, ou outra parte do mesmo produto, faz de um jeito claramente melhor.
  • Propósito: atende ao que a pessoa realmente precisa fazer ali?
  • Os dados: o que o banco diz. Este é o oráculo mais forte que existe, e é o que as trilhas de SQL e de API te ensinam a usar: a tela mostra "pedido confirmado", mas a linha em pedidos ficou com valor_total = 0.

Quando você não tem oráculo pra alguma coisa, isso em si é um achado da sessão: "ninguém sabe dizer qual é o comportamento correto aqui" é uma informação que o time precisa ouvir.

Exploratório × roteirizado: não é ou/ou

Use exploratório quando…Use roteiro / automação quando…
a funcionalidade é nova e você ainda está entendendoo fluxo é estável e vai ser conferido muitas vezes
a especificação é vaga ou não existeo resultado é objetivo e a regra é clara
o risco é alto e você quer olhar com calmaé regressão: precisa rodar a cada entrega
tem pouco tempo e você precisa cobrir muita áreaprecisa de prova auditável e repetível
já corrigiram um bug e você desconfia da vizinhançavai rodar no CI e reprovar o build

O fluxo saudável costuma ser: explorar primeiro pra descobrir o que importa, roteirizar depois os casos que valem repetir, e automatizar os que vão rodar sempre. Exploratório alimenta a automação, não compete com ela.

Olhar de QA

Quando terminar uma sessão, o entregável não é "testei". É um resumo curto: o que cobri, o que achei, o que não deu tempo, e o que me preocupa. Esse último item é o mais valioso e o que quase ninguém escreve: é ele que transforma você de executor em alguém que o time consulta antes de decidir se sobe pra produção.

Sua vez

Escolha um site ou app que você usa (banco, delivery, streaming, e-mail) e faça uma sessão de verdade:

  1. Escreva a carta no formato Explorar… com… para….
  2. Marque 30 minutos no relógio. Sem celular, sem outra aba.
  3. Explore usando dois passeios e o pente SFDIPOT quando travar.
  4. Anote tudo que estranhar, inclusive o que você não tem certeza se é bug.
  5. Feche com os quatro itens: cobri / achei / não deu tempo / me preocupa.

Guarde essas anotações: no Módulo 5 você transforma um desses achados num relatório de bug de verdade.

Terminou este módulo? Marque: o ✓ aparece no índice da trilha e a barra de progresso anda no começo do site. Fica salvo só no seu navegador.