O documento descreve estratégias de testes contínuos no desenvolvimento de software, incluindo a automatização de testes em diferentes níveis para fornecer feedback antecipado e reduzir custos. Ele explica os estágios do processo de integração contínua, como testes unitários, de aceitação, de serviço e ambientes de teste.
2. DEVOPS - CAMS
Ref.: https://www.telehouse.com/2016/03/devops-how-a-culture-of-empathy-creates-
Culture
Mude o seu mindset
e foque nos
princípios e boas
práticas DevOps!
Automate
Crie processos que
permita a você
automatizar tudo
que é possível
automatizar!
Measure
Meça os resultados e
aproveite das
métricas para prover
ações de melhoria
contínua!
Share
Compartilhe
todo o
aprendizado e
resultados!
5. CONTINUOUS TESTING
A estratégia é automatizar testes
desde os níveis mais baixos e executá-
los de forma contínua durante o
desenvolvimento do software, obtendo
feedbacks antecipados e reduzindo o
custo de entrega através da correção
antecipada de problemas.
6. Submit Code
Build Unit
Tests
40 s
Acceptance
Tests
1 m
200 testes
3 m
20 testes
Staging
Environment
Service
Tests
30 s
40 testes
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Code Review
INTEGRAÇÃO CONTÍNUA
2 m
7. Submit Code
Build Unit
Tests
40 s 1 m
200 testes
Code Review
INTEGRAÇÃO CONTÍNUA
Feedbacks
O fluxo da integração contínua é
interrompido quando ocorre falha em
algum estágio de teste, assim o
desenvolvedor deve imediatamente
tomar ações e corrigir o problema
para dar continuidade ao fluxo.
8. Build Unit
Tests
Acceptance
Tests
Staging
Environment
Service
Tests
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
40 s 1 m
200 testes
3 m
20 testes
30 s
40 testes
ESTÁGIOS
2 m
Submit Code
Code Review
Etapa de Revisão de
Código
Realizado por outros membros do
time e/ou ferramentas de teste
estático, o Code Review tem como
objetivo antecipar problemas de
código, arquitetura e contribuir para
aplicação de boas práticas.
9. 1 m
200 testes
3 m
20 testes
30 s
40 testes
2 m
Unit
Tests
Acceptance
Tests
Staging
Environment
Service
Tests
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Submit Code
Code Review
Build
ESTÁGIOS
Etapa de Construção
A automação do build do software
garante que os testes serão
realizados na versão correta, reduz
retrabalhos e dependência de um
desenvolvedor para liberar versão
para testes.
40 s
10. 40 s 3 m
20 testes
30 s
40 testes
2 m
Acceptance
Tests
Build Staging
Environment
Service
Tests
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Submit Code
Code Review
ESTÁGIOS
Testes Unitários
A automação da execução dos
testes unitários logo após o build
garante feedback rápido de
problemas no código. Por ser de
rápida execução, permite uma
grande cobertura de testes.
Unit
Tests
1 m
200 testes
11. Unit
Tests
40 s 1 m
200 testes
3 m
20 testes
30 s
40 testes
Acceptance
Tests
Build Service
Tests
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Submit Code
Code Review
ESTÁGIOS
Ambiente de Testes
A automação da criação de um ambiente
de testes garante que os testes serão
executados em ambiente confiável e
mais próximo da realidade dos
ambientes de produção. Também
permite testes de configuração e
implantação.
Staging
Environment
2 m
12. Staging
Environment
Unit
Tests
40 s 1 m
200 testes
3 m
20 testes
2 m
Acceptance
Tests
Build
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Submit Code
Code Review
ESTÁGIOS
Testes de Serviço/APIs
A automação dos testes na camada de
serviços garante feedbacks de problemas
nos fluxos de negócio realizados por
essa camada. Garante também
confiabilidade nos contratos desses
serviços. Também por ser de execução
rápida, permite uma boa cobertura de
testes.
Service
Tests
30 s
40 testes
13. Service
Tests
Staging
Environment
Unit
Tests
40 s 1 m
200 testes
30 s
40 testes
2 m
Build
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
Submit Code
Code Review
ESTÁGIOS
Testes de
Aceitação/UI/Funcionais
A automação dos testes funcionais
garantem que as principais regras de
negócio estão sendo testadas. Por ser
mais demorado, pode ser executado com
paralelismo para reduzindo o tempo de
execução e ainda sim garantir uma boa
cobertura. O ideal é focar nas
funcionalidades mais críticas.
Acceptance
Tests
3 m
20 testes
14. Acceptance
Tests
Service
Tests
Staging
Environment
Unit
Tests
40 s 1 m
200 testes
3 m
20 testes
30 s
40 testes
2 m
Build
Submit Code
Code Review
ESTÁGIOS
Outros Testes
E ainda é possível automatizar outros
tipos de testes, como os testes não-
funcionais, testes de regressão visual,
etc.
Others Tests
Automatic
Deploy to
Production
Publish
Documentation
15. • Criação da infraestrutura necessária
• Adoção de ferramenta de integração contínua
• Capacitação do time tecnicamente em novas
tecnologias: Containers, Cloud, Infraestrutura
como código, etc
• Capacitação de todos os QAs para automatizar
testes
ESFORÇOS
16. - Retrabalhos, garantindo mais agilidade com
qualidade na entrega
+ Tempo para os QAs focarem em testes
exploratórios, aumentando mais ainda a
cobertura
+ Tempo para revisar a documentação
+ Tranquilidade sabendo que os testes foram
executados em um ambiente mais parecido com
o de produção
GANHOS