Você ja pensou que quando a sua suite de testes começa a apresentar falhas sem motivos, a causa disso pode estar em nós mesmos?
Por que isso acontece? Nessa palestra, baseados em uma apresentação do selenium conf de 2017, nós iremos abordar essa questão e boas maneiras que aprendemos para tentar lidar com isso e mitigar esse problema.
3. hello!
Sou Ramses Almeida
Eu estou aqui porque gosto de churrasco apresentações
Atualmente trabalho na Ilegra/Agibank
Você me encontra em:
@rsaccoll
rsaccoll
4. hello!
Sou André Mendes
Estou aqui porque acredito muito em comunidades
Atualmente trabalho na Concrete
Você me encontra em:
@ap_mendes
André Mendes
17. 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
18. 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
22. SACRED - State
✘ A aplicação deve estar em um determinado estado para que a
automação seja eficiente.
Atenção para:
✘ Massa de dados
✘ Configuração
Senão…
✘ Elementos e dados inexistentes
na execução
✘ Cenários fracamente validados
23. SACRED - Algorithm
✘ "...not training them to be programmers, we're training to learn how to use
the tools..."
Atenção para:
✘ Steps
✘ Decisões
✘ Validação assertiva
✘ Ferramentas
✘ Entender o funcionamento das
coisas
Senão…
✘ sleep();
✘ Overengineering
✘ Lentidão
Allister Scott (2015)
24. 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”
25. 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?
✘ Falta de visão do valor gerado
26. SACRED - Execution
✘ Onde nós devemos executar os nossos testes?
Atenção para:
✘ Onde rodar?
✘ Quando?
✘ Hardware
✘ Rede
Senão…
✘ Não roda bem no ambiente
XPTO
✘ Instabilidade
✘ Ambiente compartilhado
✘ Execução mais lenta
27. SACRED - deterministic
✘ “...In my conversations with our delivery teams, one recurring problem that we've run
into is tests which have become unreliable, so unreliable that people don't pay much
attention to whether they pass or fail.”
Atenção para:
✘ Objetivo
✘ Confiabilidade
✘ Resultado
Senão…
✘ “Como não vimos esse
problema?
✘ Itens importantes não testados
✘ Muitas coisas desnecessárias
Martin Fowler (2011)
29. O que aprendemos?
✘ Tente não re-executar seus testes cegamente
✘ Conhecimento teórico ajuda
✘ Trabalhe a testabilidade da aplicação. Testabilidade não se resume a ids
✘ Questione determinado teste deveria mesmo ser automatizado
✘ Entenda sobre o produto
✘ Use quarentena
✘ Organize seu tempo
✘ Isole seus testes
32. NÓS MOVEMOS O MUNDO.
Centro
Av. Presidente Wilson, 231
29º andar
(21) 2240-2030
Cidade Monções
Av. Nações Unidas, 11.541
3º andar
(11) 4119-0449
Savassi
Av. Getúlio Vargas, 671
Sala 800 - 8º andar
(31) 3360-8900
Ilha do Leite
Rua Sen. José Henrique, 199
2º andar
(81) 3018-6299
WWW.CONCRETE.COM.BR