O documento discute estratégias de testes automatizados, como a pirâmide de testes e anti-padrões como o cone de sorvete. Apresenta formas de implementar testes em diferentes níveis mesmo sem a pirâmide ideal, como focar em testes unitários e separar funcionalidades por prioridade. Discute também a validade atual da pirâmide com a evolução de técnicas de teste e arquiteturas de microsserviços.
2. Temos que ser bons
em previnir bugs e
não em achá-los
3. Integração Contínua e Entrega Contínua
Imagem no formato de um 8 deitado.
Do lado esquerdo é o Dev, e segue a ordem da linha do 8: plan -> code -> build -> test
Do lado directo é o Ops e segue a ordem: release -> deploy -> operate-> monitor
No X do 8 tem plan (Dev) e release (Ops)
4. Integração Contínua e Entrega Contínua
CI
Mesma imagem do primeiro slide de Integração Contínua e Entrega Contínua
5. Integração Contínua e Entrega Contínua
CI CD
Mesma imagem do primeiro slide de Integração Contínua e Entrega Contínua
7. Component -> testes de um modulo ou pacote. Ex: Testar o controller e os métodos do
mesmo pacote que ele chama
Integration -> testes com o DB ou com dependências de outros pacotes
Incompleta -> tá faltando testes UI isolados, testes de contrato, testes de UI caixa
branca
Imagem da pirâmide de testes ideal do site watirmelon.blog. O formato dela é um
triângulo
Pirâmide de Testes
Pirâmide Ideal
26. Pirâmide de Testes
Cone de Sorvete
- Image do Anti-padrão da pirâmide de testes no formato de cone de sorvete do site
watirmelon.com.
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração automáticos
27. Pirâmide de Testes
Cone de Sorvete
- - Mesma imagem do primeiro slide da Pirâmide Cone de Sorvete
+int
+iso
$$$
¢
28. • Todo teste novo ter testes
Unitários
Pirâmide Cone de Sorvete
O que fazer?
29. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
Pirâmide Cone de Sorvete
O que fazer?
30. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
Pirâmide Cone de Sorvete
O que fazer?
31. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
Pirâmide Cone de Sorvete
O que fazer?
32. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Pirâmide Cone de Sorvete
O que fazer?
33. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Separar UI de API
Pirâmide Cone de Sorvete
O que fazer?
34. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Separar UI de API
Funcionalidade a ser lançada
Pirâmide Cone de Sorvete
O que fazer?
35. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Separar UI de API
Funcionalidade a ser lançada
Funcionalidade com mais
retorno financeiro
Pirâmide Cone de Sorvete
O que fazer?
36. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Separar UI de API
Funcionalidade a ser lançada
Funcionalidade com mais
retorno financeiro
Funcionalidade com mais
problemas
Pirâmide Cone de Sorvete
O que fazer?
37. • Todo teste novo ter testes
Unitários (teste unitário é débito
técnico)
• Paralelizar os testes (selenium
grid)
• Se seu sistema possui uma API,
use essa API nos seus testes de
UI
• Separar os testes funcionais por
tarefas
Separar UI de API
Funcionalidade a ser lançada
Funcionalidade com mais
retorno financeiro
Funcionalidade com mais
problemas
Testes de sanidade
Pirâmide Cone de Sorvete
O que fazer?
39. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Repo Push
40. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Func
mais lucrativaRepo Push
41. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Func
para lançar
Func
mais lucrativaRepo Push
42. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Func
para lançar
Func
mais lucrativa RegressãoRepo Push
43. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Func
para lançar
Func
mais lucrativa Regressão
Deploy
QA
Repo Push
44. Pirâmide Cone de Sorvete
Pipeline de testes de UI
Teste de
Sanidade
Func
para lançar
Func
mais lucrativa Regressão
Deploy
QA
Exploratório
Repo Push
46. Pirâmide de Testes
Bolinho (Cupcake)
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
47. Pirâmide de Testes
Bolinho (Cupcake)
- - Mesma imagem do primeiro slide da Pirâmide Cone de Sorvete
+int
+iso
$$$
¢
54. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
55. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
56. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
57. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
são rápidos e baratos
58. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
são rápidos e baratos
Esse formato ideal ainda é válido?
59. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
Build and
Unit test
Node Unit
test
Repo Push Mais testes
60. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
são rápidos e baratos
Esse formato padrão ainda é válido?
• Seu projeto é um monolito
61. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
são rápidos e baratos
Esse formato padrão ainda é válido?
• Seu projeto é um monolito
• Seu projeto possui micro serviços
62. Pirâmide de Testes
Utilidade nos dias atuais
- Image do Anti-padrão da pirâmide de testes no formato de um Bolinho (Cupcake).
- Na base tem testes Unitários automáticos
- Depois tem Testes de integração (API, contrato, componente)
• Martin Fowler falou dela em 2012
• Os artigos mais recentes falam mais do mesmo
• UI hoje em dia tem testes de caixa branca
são rápidos e baratos
Esse formato padrão ainda é válido?
• Seu projeto é um monolito
• Seu projeto possui micro serviços