Baseada em experiência de projetos reais, esta palestra compila recomendações que agregam valor ao desenvolvimento de software. Essas recomendações tratam de problemas de suites de testes automatizados demoradas, dívida técnica e cobertura funcional dos testes, dificuldade em identificar por onde começar a automação dos testes, e dificuldades no uso de testes de contrato.
12. Projeto W: pirâmide
80 testesAPI: Serviço isolado
API: Serviço
integrado com outros
serviços
110 testes,
20 suites em paralelo,
2.5 min
Unitários
1922
testes,
5.5 min
Contrato do Serviço
Integração
1842 testes
40 testes, 9.3 min
14. Web Service Web Service
Projeto G: arquitetura
UI
Middle tier
Web Service
15. Projeto G: pirâmide
610 testes, 4 min
Unitários: UI
API: Serviço
integrado com outros
serviços
UI
120 testes, 3 min
738 testes, 8 min
Unitários: Serviço
Unitários: Middle tier
1754 testes, 27 seg
881 testes, 19 seg
1296 testes, 13 seg
3931 testes,
59 seg
5 testes, 1.5 minUI: isolado
5 testes, 6 min
10 testes, 7.5 min
API: Serviço isolado
API: Contrato do Serviço 8 testes, 1 min
16. 1922 testes
(unitários + API)
5.5 min
versus
Projeto W
3931 testes
unitários
59 seg
Projeto G
Quase o dobro de testes em menos de 20% do tempo
20. Projeto E: pirâmide
58 testes, 1 min
Unitários: Serviço 137 testes, 52 seg
API
Unitários: Cluster com 3 apps
Unitários: Cluster com 1 app 65 testes, 55 seg
123 testes, 64 seg
E2E: Cluster com 3 apps 6 testes, 1.5 min
202 testes
2.8 seg
64 testes
2.5 min
22. Projeto T: pirâmide
9 testes
9 seg
Unitários
Integração
116 testes
25 seg
UI
9 testes
4 seg
23. Não adiar
implementação de
jornada do usuário.
Quando for adicionar novos testes, checar se faz
sentido incrementar uma jornada de usuário
também para não acumular como dívida
24. O topo da pirâmide traz
confiança sobre o
funcionamento.
27. O topo da pirâmide traz
confiança sobre o
funcionamento.
Porém esses testes não guiam o design do novo
sistema e são mais difíceis de manter no longo
prazo
29. Testes de Contrato
❏ Teste de integração que garante que um provedor de
serviço cumpre o contrato com o consumidor
1. Consumidor define expectativas
consumer provider
pact
2. Expectativas verificadas no provedor
consumer provider
pact
30. Projeto P: pirâmide
396 testes, 3 minAPI: Serviço isolado
API: Serviço
integrado com outros
serviços
9 testes, 7 min
409 testes, 10+ min
Unitários
1835 testes, 18 seg
API: Contrato do Serviço 4 testes, 30 seg
32. Provedor e consumidor
devem poder iniciar os
testes de contrato.
Quando somente o provedor executa a
verificação do contrato, parece que apenas ele é a
causa da quebra.
34. 34
Separar os testes unitários dos testes de aceitação.
Não adiar implementação da jornada do usuário.
Testes no topo da pirâmide trazem mais confiança.
Provedor e consumidor devem poder iniciar os
testes de contrato.