9. Culpados
Internet
“A internet está caindo”
“Nossa, essa rede está muito
lenta”
Ferramenta
“Esse framework não tem nada
que preciso”
“A comunidade não
implementou funcionalidade
XPTO na framework”
“Selenium resolve tudo”
Tempo
“Esse build tá demorando
muito, vou executar alguns
testes somente.
“Ah, demorou apenas 8 horas
para fazer esse botão ser
clicado
10. Colegas
“Ah, não acredito que o Ramsés fez isso para
selecionar um item… -_- “
“Pra que usar isso para automatizar!!”
Cobertura fraca
“Acho que preciso melhorar essa cobertura de
testes….Quando der…”
“Ah, usaram o meu test data denovo!!”
Culpados
17. SACRED - State
✘ A aplicação deve estar em um determinado estado para que a
automação seja aplicável.
Atenção para:
✘ Massa de dados
✘ Configuração
Senão…
✘ Elementos e dados inexistentes
na execução
✘ Cenários incoerentes com a
aplicação
18. SACRED - Algorithm
✘ "...not training them to be programmers, we're training to learn how to use
the tools..."
Atenção para:
✘ Steps
✘ Fluxo
✘ Decisões
✘ Validação assertiva
✘ Entender o funcionamento das
coisas
Senão…
✘ sleep();
✘ Overengineering
✘ Lentidão
19. SACRED - Codified oracles
✘ “Como definimos o que é um problema”
Atenção para:
✘ Validações
✘ Fluxo como um todo
✘ Mudanças no produto
✘ Decisão de ser um problema
Senão…
✘ Manutenção excessiva
✘ Muitas validações
desnecessárias
✘ “Problemas não identificados”
20. SACRED - reporting
✘ O que o projeto quer da suite de testes?
✘ Quem quer saber o quê?
Atenção para:
✘ Estado da aplicação
✘ Logs
✘ Resultado
Senão…
✘ Demorar mais para entender e
corrigir o problema
✘ Quem precisa saber sobre o
que descobrimos?
21. SACRED - Execution
✘ Onde nós devemos executar os nossos testes?
Atenção para:
✘ Onde rodar?
✘ Quando?
✘ Hardware
Senão…
✘ Não roda bem no ambiente
XPTO
✘ Instabilidade
✘ Ambiente compartilhado
✘ Execução mais lenta
22. SACRED - deterministic
✘ Objetivo de tudo isso no final de contas
Atenção para:
✘ Objetivo
✘ Confiabilidade
✘ Resultado
Senão…
✘ “Como não vimos esse
problema?
✘ Itens importantes não testados
✘ Muitas coisas desnecessárias
24. O que mais pensamos sobre isso?
✘ Não re-execute seus testes cegamente.
✘ Se você não consegue testar a aplicação
manualmente, certamente não conseguirá
automatizar os testes.
✘ Trabalhe a testabilidade da aplicação.
Testabilidade não se resume a ids.
✘ Reflita, se determinado teste deveria mesmo
ser automatizado.