O Que é Exploratory Testing?
Exploratory Testing (ET) é uma abordagem de teste onde o testador simultaneamente aprende sobre o sistema, projeta testes e os executa. É o oposto de testes scriptados – em vez de seguir um roteiro fixo, o testador usa sua criatividade e experiência para explorar o software.
Características Fundamentais
| Aspecto | Scripted Testing | Exploratory Testing |
|---|---|---|
| Planejamento | Detalhado antes | Simultâneo |
| Documentação | Antes da execução | Durante e depois |
| Abordagem | Repetitiva | Adaptativa |
| Criatividade | Limitada | Alta |
| Descoberta | Busca por defeitos específicos | Busca por defeitos inesperados |
| Melhor para | Regressão, compliance | Novos features, UX |
Por Que Exploratory Testing?
Quando ET Brilha
- Novos recursos – Quando você não sabe o que esperar
- UX testing – Avaliar experiência do usuário
- Complexidade – Sistemas com muitas interações
- Bugs difíceis – Defeitos que scripts não capturam
- Rapid feedback – Quando tempo é curto
- Decision making – Determinar se está “pronto”
Casos de Uso
Exemplo 1: Nova tela de checkout- O que fazer primeiro? → ET descobre fluxos
- O que esperar? → ET revela expectativas reais
- O que pode dar errado? → ET encontra edge cases
Exemplo 2: After refactoring- Funciona como antes? → ET verifica comportamento
- Há regressões? → ET busca inconsistências
- Performance está ok? → ET sente delays
Técnicas de Exploratory Testing
1. Touring Methods (James Whittaker)
Feature Tour
# Feature Tour
"Explore todas as funcionalidades do menu"
Ações:
- Navegar por cada opção do menu
- Ler tooltips e placeholders
- Verificar consistência visual
- Identificar funcionalidades duplicadas
landmarks Tour
# Landmarks Tour
"Identificar pontos de referência na aplicação"
Registrar:
- Telas principais (landmarks)
- Navegação entre elas
- Back button funciona?
- Breadcrumbs corretos?
####intellectual Tour
# Intellectual Tour
"Testar baseado em conhecimento do domínio"
Foco:
- Regras de negócio críticas
- Casos de uso principais
- Dados de fronteira
- Estados inválidos
2. CSIO (Clue, Specify, Implement, Operate)
# CSIO Checklist
C - Clue (Pista)
└── O que me chamou a atenção?
- Link com texto estranho
- Campo com validação incomum
- Performance lambatmática
S - Specify (Especificar)
└── O que testar?
- Teste específico para a pista
- Dados de teste necessários
- Resultado esperado
I - Implement (Implementar)
└── Como testar?
- Executar teste
- Observar resultado
- Documentar comportamento
O - Operate (Operar)
└── O que descobri?
- Bug encontrado?
- Comportamento inesperado?
- Oportunidade de melhoria?
3. Session-Based Testing
# Session-Based Testing
Estrutura
- Sessão: 60-90 minutos
- Charter: Objetivo claro
- Debrief: Resumo ao final
Template de Charter
Charter: Testar fluxo de checkout com múltiplos itens
===============================================
Cover: Checkout, carrinho, pagamento
Test: Adicionar itens, aplicar cupons, escolher frete
Oracle: Comportamento esperado de e-commerce
Session Log
Tempo Ação Observação
00:05 Adicionou 1 item Ok
00:08 Adicionou item2 Total atualiza
00:12 Removeu item1 Total recalcula
00:15 Aplicou cupom "CUPOM_VÁLIDO"
Charter de Testing
Template de Charter
# Charter de Testing
Identificação
- Testador: [Nome]
- Data: [Data]
- Sistema: [Nome do sistema]
- Versão: [Versão]
Objetivo
[Testar o quê?] - [Por quê?]
Cobertura
- Funcionalidades a testar
- Áreas de foco
Abordagem
- Técnicas a usar
- Dados de teste
Oracle
- Como saber se está certo?
- Comportamento esperado
Tempo Estimado
[ ] 30 min [ ] 60 min [ ] 90 min
Exemplos de Charters
Charter 1: Fluxo de Login
Testar o fluxo de login completo incluindo:- Login com credenciais válidas
- Login com credenciais inválidas
- Recuperação de senha
- Manter sessão ativa
- Logout
Abordagem: Use a técnica de percurso do usuário
Charter 2: Upload de Arquivos
Explorar limites de upload de arquivos:- Tipos de arquivo permitidos
- Tamanho máximo
- Nome com caracteres especiais
- Upload simultâneo
- Cancelamento de upload
Charter 3: Relatórios
Verificar geração de relatórios:- Filtros funcionam?
- Exportação para PDF/Excel
- Gráficos renderizam?
- Dados estão corretos?
- Performance com muitos dados?
Ferramentas de Apoio
Para Documentação
| Ferramenta | Uso |
|---|---|
| TestRail | Gerenciamento de casos e notas |
| qTest | Exploratory testing module |
| PractiTest | Gerenciamento de testes |
| Rapid Reporter | Tomar notas rapidamente |
| Trello | Tracking de sessões |
Para Gravação
# Rapid Reporter
# Ferramenta simples para Windows que:
# - Captura screenshots automaticamente
# - Log de ações com timestamps
# - Exportação para Excel/HTML
# Loom
# - Gravar tela durante sessão
# - Compartilhar com equipe
# - Revisar depois
Combinando ET com Automação
Estratégia Híbrida
┌─────────────────────────────────────────────┐
│ │
│ Exploratory Testing │
│ ├── Busca por bugs inesperados │
│ ├── Avaliação de UX │
│ └── Context-aware testing │
│ │
│ ↓ │
│ │
│ Automação de Testes │
│ ├── Regressão │
│ ├── Testes repetitivos │
│ └── Cobertura de edge cases │
│ │
└─────────────────────────────────────────────┘
Fluxo de Trabalho
- ET descobre bug → Automatizar para regressão
- ET valida fix → Executar teste automatizado
- ET explora novo feature → Criar charter
- ET identifica padrões → Criar testes automatizados
Exemplo: Bug Encontrado em ET
# Bug Report - Exploratory Testing
Descoberta
Durante sessão exploratory no checkout, encontrei um bug:- Usuário adiciona produto
- Aplica cupom "DESCONTO10"
- Remove o produto
- Cupom ainda aparece aplicado!
Prioridade
Alta - Usuário pode ser cobrado incorretamente
Steps to Reproduce
- Adicionar produto ao carrinho
- Clicar em "Aplicar Cupom"
- Inserir "DESCONTO10"
- Clicar em "Remover" no produto
- Observar que cupom permanece
Automação
Criar teste automatizado para prevenir regressão:
python
def test_cupom_removido_quando_produto_removido():
# Setup
checkout_page.add_product()
checkout_page.apply_coupon(“DESCONTO10”)
# Action
checkout_page.remove_product()
# Assert
assert not checkout_page.has_coupon_applied()
assert checkout_page.coupon_field_is_empty()
Matriz de Cobertura
Cobertura por Feature
| Feature | ET | Automatizado | Cobertura Total |
|---|---|---|---|
| Login | ✅ | ✅ | 100{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} |
| Cadastro | ✅ | ✅ | 100{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} |
| Checkout | ✅ | ⚠️ Parcial | 90{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} |
| Pagamento | ✅ | ✅ | 95{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} |
| Perfil | ⚠️ Parcial | ✅ | 85{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} |
Cobertura por Risco
| Risco | Probabilidade | Impacto | ET Recomendado |
|---|---|---|---|
| Processamento de pagamento | Alta | Crítico | 2 horas |
| Cálculo de frete | Média | Alto | 1 hora |
| Upload de imagem | Baixa | Médio | 30 min |
| Notificações | Média | Médio | 30 min |
Métricas de Exploratory Testing
Session Metrics
Métricas de Sessão
- Cobertura
- Funcionalidades exploradas: X/Y
- Tempo gasto por área
- Eficiência
- Bugs encontrados / hora
- Defeitos críticos encontrados
- Qualidade
- Bugs duplicados
- Bugs únicos válidos
- Documentation
- Notas tomadas
- Screenshots capturados
- Testes automatizados propostos
Report Template
# Relatório de Sessão ET
Informações Gerais
- Data: [Data]
- Testador: [Nome]
- Duração: [X horas]
- Sistema: [Sistema]
Resumo
[Brief description of what was tested and overall assessment]
Cobertura
- Áreas exploradas: [List]
- Funcionalidades testadas: [Count]
Defeitos Encontrados
ID Descrição Severidade Status
BUG-001 Cupom não removido Alta Aberto
BUG-002 ... ... ...
Opportunidades de Automação
- [Teste 1] - Prioridade Alta
- [Teste 2] - Prioridade Média
Avaliação Geral
- ✅ Sistema pronto para produção
- ⚠️ Sistema pronto com restrições
- ❌ Sistema NÃO pronto
Conclusão
Exploratory Testing é uma habilidade essencial que complementa testes automatizados. Suas vantagens são:
- Flexibilidade – Adapta-se a qualquer situação
- Criatividade – Encontra bugs inesperados
- Eficiência – Máximo de cobertura em pouco tempo
- Contexto – Avalia experiência real do usuário
- Descoberta – Identifica oportunidades de melhoria
FAQ
P: ET substitui testes automatizados?
R: Não. ET e automação são complementares. Use ET para descoberta, automação para regressão.
P: Quanto tempo dedicar a ET?
R: Recomenda-se 20-30{6727d158e4474b0847515bd23a8ee4bebd5f1aac7a18bc968e51d8985dccb442} do tempo de QA para ET em projetos maduros.
P: Como documentar ET?
R: Use charters, session logs, screenshots e bug reports estruturados.
P: ET funciona em agile?
R: Sim! ET é ideal para sprints curtos onde você precisa de feedback rápido.
