O documento descreve a jornada de uma equipe de QA e desenvolvimento para adotar práticas DevOps. Inicialmente, havia pouca automação e integração entre os times. Atualmente, implementaram pipelines de entrega contínua com construção, testes e implantação automatizados, reduzindo tempo de teste regressivo de 2 dias para 7 minutos. A QA ganhou tempo para novas funcionalidades e melhorias contínuas.
3. DevOps - CAMS 2. Crie processos que permita a
você automatizar tudo que é
possível automatizar!
4. Compartilhe todo o
aprendizado e os resultados!
3. Meça os resultados e
aproveite das métricas
para prover ações de
melhoria contínua!
1. Mude o seu mindset e
foque nos princípios e boas
práticas DevOps!
#PraCegoVer A imagem mostra 4 círculos, um ligado ao outro formando um ciclo
contínuo, o 1º círculo representa a cultura, o 2º círculo representa a automação,
o 3º círculo representa as métricas e o 4º círculo representa o compartilhamento.
Ref.: https://www.telehouse.com/2016/03/devops-how-a-culture-of-empathy-creates-massive-productivity/e/
4. CICLO DE VIDA DEVOPS
#pracegover A imagem mostra um fluxo que não tem fim, são várias atividades uma após a outra e quando acaba a última, começa novamente a primeira, é um ciclo infinito. A 1ª atividade do ciclo é
planejamento, a 2ª é codificar, a 3ª é construir, a 4ª é testar, essas 4 atividades são do grupo “Dev” de desenvolver e a 5ª atividade é lançar, a 6ª é implantar, a 7ª é operar e a última é monitorar, essas
4 atividades são do grupo “Ops” de operações. Esses dois grupos se unem e formam o ciclo infinito chamado “DevOps”.
5. VAMOS FOCAR NO CICLO DEV
#pracegover A imagem mostra um ciclo com 4 atividades, a 1ª atividade do ciclo é planejamento, a 2ª é codificar, a 3ª é construir, a 4ª é testar, essas 4 atividades são do grupo “Dev” de desenvolver.
6. OS “CONTINUOUS”
#pracegover A imagem mostra 3 linhas que representam as fases de desenvolvimento, a 1ª é a integração contínua, a 2ª é entrega contínua e a 3ª fase é a implantação contínua. Cada fase tem 4
estágios, o 1º estágio é controle de versão do código, o 2º estágio é a construção da aplicação, o 3º estágio são os testes em ambiente controlado e o último estágio é produção.
7. Vamos exemplificar...
Suponha que somos um time com DEV e QA e desenvolvemos um
sistema web com front-end e back-end para geração de relatórios.
Esse sistema tem uma interface com vários campos para o usuário
preencher (front-end) e assim gerar um relatório específico computado
(back-end) conforme as escolhas dele.
8. NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
➔ Versões do sistema compiladas pelo desenvolvedor, na máquina dele
e o QA precisa pedir para o DEV criar e liberar a versão para ele.
Só que ... As vezes ele esquece, ou manda versão errada, ou demora
pra liberar...
#pracegover A imagem mostra um GIF animado de uma criança esperando
alguma coisa impaciente.
9. NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
#pracegover A imagem mostra um GIF animado com o personagem “Ace Ventura” dizendo “Tudo bem
então!”.
➔ Não há testes unitários e, se existe algum, não são executados.
➔ O QA tem um ambiente próprio na máquina dele.
➔ O QA executa os testes manualmente apenas pela interface do
sistema.
10. NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
#pracegover A imagem mostra um GIF animado com um personagem de desenho animado trabalhando
e dizendo “Nós trabalhamos muito. Nós jogamos muito.”
➔ A cada liberação de versão ao cliente, o QA precisa testar uma suíte
de 60 testes regressivos, isso hoje, pois esse número só vai
aumentar!! Leva em torno de 2 dias, isso quando são de fato
executados!
11. NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
#pracegover A imagem mostra emoji chateado.
➔ As vezes, quando implantamos a versão no cliente, ocorrem
problemas na aplicação por causa do ambiente dele!
“Na minha máquina funciona”... É, mas o cliente não vai comprar
a sua máquina!
12. Estágio 02: Construção (build) automático
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no segundo estágio: a construção da
aplicação e esse estágio tem um sinalizador de tempo de 40 segundos de duração.
13. NOSSO TIME HOJE!
➔ Versões do sistema compiladas pelo desenvolvedor, na máquina dele
e o QA precisa pedir para o DEV criar e liberar a versão para ele.
Só que ... As vezes ele esquece, ou manda versão errada, ou demora
pra liberar...
#pracegover A imagem mostra um GIF animado de uma mulher dizendo “Item
resolvido!” e fazendo o sinal de “check” com as mãos.
14. Estágio 03: Testes Unitários
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no terceiro estágio: os testes unitários e
esse estágio tem um sinalizador de tempo de 1 minuto para 200 testes.
15. Estágio 03: Testes Unitários
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no terceiro estágio: os testes unitários e esse
estágio tem um sinalizador de tempo de 1 minuto para 200 testes e também, o estágio está com um X vermelho indicando que houve falha na execução deste estágio.
16. Estágio 03: Testes Unitários
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no terceiro estágio: os testes unitários e esse
estágio tem um sinalizador de tempo de 1 minuto para 200 testes e também, o estágio está agora com um OK verde indicando que houve sucesso na execução deste estágio.
17. NOSSO TIME HOJE!
➔ Não há testes unitários e, se existe algum, não são executados.
#pracegover A imagem mostra um GIF animado de uma mulher dizendo “Item
resolvido!” e fazendo o sinal de “check” com as mãos.
18. Estágio 04: Ambiente de Testes Controlado
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no quarto estágio: o ambiente de testes
controlados e esse estágio tem um sinalizador de tempo de 1 minuto de duração, o estágio está agora com um OK verde indicando que houve sucesso na execução deste
estágio.
19. Estágio 04: Ambiente de Testes Controlado
★ Para fazer o deploy nesse ambiente de
testes controlado, tivemos que criar um
script de instalação e configuração da nossa
aplicação!!! Ou seja, um passo confiável
para termos um futuro deploy automatizado
em produção!!!
20. NOSSO TIME HOJE!
➔ O QA tem um ambiente próprio na máquina dele.
➔ As vezes, quando implantamos a versão no cliente, ocorrem
problemas na aplicação por causa do ambiente dele!
#pracegover A imagem mostra um GIF animado de uma mulher dizendo “Item
resolvido!” e fazendo o sinal de “check” com as mãos.
21. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no quinto estágio: os testes de API e esse
estágio tem um sinalizador de tempo de 30 segundos de duração para 40 testes. Dos 60 testes que o QA executava na interface da aplicação, 40 eram possíveis de se fazer via
API da aplicação.
Estágio 05: Testes de API (back-end)
22. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no quinto estágio: os testes de API e esse
estágio tem um sinalizador de tempo de 30 segundos de duração para 40 testes e também, o estágio está com um X vermelho indicando que houve falha na execução deste
estágio.
Estágio 05: Testes de API (back-end)
23. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no quinto estágio: os testes de API e esse
estágio tem um sinalizador de tempo de 30 segundos de duração para 40 testes, o estágio está agora com um OK verde indicando que houve sucesso na execução deste
estágio.
Estágio 05: Testes de API (back-end)
24. NOSSO TIME HOJE!
➔ O QA executa os testes manualmente apenas pela interface do
sistema.
#pracegover A imagem mostra um GIF animado de uma mulher dizendo “Item
resolvido!” e fazendo o sinal de “check” com as mãos.
25. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no sexto estágio: os testes de aceitação e esse
estágio tem um sinalizador de tempo de 10 minutos de duração para 20 testes.Dos 60 testes que o QA executava na interface da aplicação, apenas 20 necessitavam ser
testados via interface.
Estágio 06: Testes de Aceitação (front-end)
26. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no sexto estágio: os testes de aceitação e esse estágio tem um
sinalizador de tempo de 10 minutos de duração para 20 testes. Nesse estágio também há outros 2 círculos em cima dele, que representam sub-estágios paralelos a ele.
Estágio 06: Testes de Aceitação (front-end)
27. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no sexto estágio: os testes de aceitação e esse estágio tem um
sinalizador de tempo de 10 minutos de duração para 20 testes. Nesse estágio também há outros 2 círculos em cima dele, que representam sub-estágios paralelos a ele, porém um desses círculos
está com um X vermelho indicando que houve falha na execução deste estágio.
Estágio 06: Testes de Aceitação (front-end)
28. #pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem o foco está no sexto estágio: os testes de aceitação e esse estágio tem um
sinalizador de tempo de 10 minutos de duração para 20 testes. Nesse estágio também há outros 2 círculos em cima dele, que representam sub-estágios paralelos a ele, os 2 sub-estágios e o estágio
estão agora com um OK verde indicando que houve sucesso na execução deste estágio.
Estágio 06: Testes de Aceitação (front-end)
29. Pirâmide de Testes
#pracegover A imagem mostra um triângulo dividido em 3 partes. A parte de baixo é a parte maior e corresponde aos testes unitários, a parte do meio de tamanho médio representa os testes de API e
a parte de cima de tamanho menor representa os testes de interface. Há setas indicando que testes de interface são mais lentos e caros e os testes unitários são mais rápidos e baratos.
30. NOSSO TIME HOJE!
➔ A cada liberação de versão ao cliente, o QA precisa testar uma suíte
de 60 testes regressivos, isso hoje, pois esse número só vai
aumentar!! Leva em torno de 2 dias, isso quando são de fato
executados!
➔ Testes de Regressão:
Redução de 02 dias
para menos de 07 minutos!!!
#pracegover A imagem mostra um GIF animado de uma mulher dizendo “Item
resolvido!” e fazendo o sinal de “check” com as mãos.
31. EU COMO QA GANHEI...
★ 02 dias para automatizar as novas funcionalidades;
★ 02 dias para testes exploratórios, aumentando mais ainda a cobertura;
★ 02 dias para revisar a documentação;
★ Tranquilidade sabendo que testei em um ambiente parecido com o de
produção;
★ Ajuda dos desenvolvedores que agora têm feedback rápido dos bugs
encontrados no CI e eles mesmos se prontificam a analisar e corrigir;
32. Próximos estágios...
#pracegover A imagem tem 7 círculos em sequência que representam estágios da entrega contínua. Nessa imagem todos os estágios estão com um OK verde, indicando que todo o fluxo ocorreu com sucesso. O 7º
estágio é um círculo maior que os demais, indicando que há vários outros estágios que podem ser executados após os testes e antes de fazer a implantação da aplicação em produção. O primeiro estágio, não citado
nos slides anteriores, também aparece com OK em verde e representa a revisão de código feita pelos desenvolvedores após uma submissão de código.
33. PRIMEIROS PASSOS PARA O QA FAZER DEVOPS
➔ Gostar do que faz;
➔ Dialogar com Business, Devs e Ops;
➔ Saber programar (sim, tire da cabeça a frase “não gosto de
programar”!);
➔ Entender "por debaixo dos panos" como funciona a aplicação que
você está testando;
➔ DRY: don’t repeat yourself: tudo que você faz e é recorrente, você
deve automatizar;
➔ Entender como funciona o ambiente em que se encontra a aplicação;
Ref.: http://www.keeptesting.com.br/2014/12/01/7-passos-para-se-tornar-um-devops/