QAOPS
O Q A C O M P É Z I N H O N O M U N D O D E VO P S
DEVOPS - CAMS
Ref.: https://www.telehouse.com/2016/03/devops-how-a-culture-of-empathy-creates-massive-productivity/e/
1. Mude o seu mindset e
foque nos princípios e
boas práticas DevOps!
2. Crie processos que
permita a você
automatizar tudo que é
possível automatizar!
3. Meça os resultados e
aproveite das métricas
para prover ações de
melhoria contínua!
4. Compartilhe todo
o aprendizado e
resultados!
CICLO DE VIDA DEVOPS
VAMOS FOCAR NO CICLO DEV
OS “CONTINUOUS”
v 1.1
Continuous Delivery
Continuous Integration
Continuous Deployment
Manual Deploy
Automatic Deploy
Source Control Build Staging Production
Commit Changes Run Build and
Unit Tests
Deploy toTest Environtment
Run Integration,Acceptance,
Load and othersTests
Deploy to Production
Environtment
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.
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.  As vezes ele esquece, ou manda versão errada,
ou demora pra liberar...
- 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.
NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
- 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
executados!
NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
- As vezes quando implanta a versão no cliente, ocorre
problemas por causa do ambiente dele!
“Na minha máquina funciona”... É, mas o cliente não
vai comprar a sua máquina!
NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
ESTÁGIO 01: VAMOS MELHORAR O BUILD
Submit
Code
Build
AGORA:
Versão correta automaticamente
disponível no repositório para
download
40 s
NOSSO TIME HOJE (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.  As vezes ele esquece, ou manda versão errada,
ou demora pra liberar...
ESTÁGIO 02: UNIT TESTS
Submit
Code
Build Unit
Tests
AGORA:
TemosTestes Unitários!!
40 s 01 m
200 testes
ESTÁGIO 02: UNIT TESTS
Submit
Code
Build Unit
Tests
FEEDBACK:
E falhou!!! Em menos de 2 minutos
o desenvolvedor já fica sabendo
que há problemas e nem libera
para testes... E também já sabe
onde é o problema pontualmente!
40 s 01 m
200 testes
ESTÁGIO 02: UNIT TESTS
Submit
Code
Build Unit
Tests
FEEDBACK:
Problema resolvido rapidamente e
com custo baixo! Bugs em
produção evitados!
40 s 01 m
200 testes
NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
- 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.
ESTÁGIO 03: DEPLOY STAGING
Submit
Code
Build Unit
Tests
AGORA:
Temos um ambiente com os requisitos
mínimos para rodar nossa aplicação.
Vamos executar nossos próximos
testes nele!
40 s
Staging
Environment
01 m
200 testes
1 m
ESTÁGIO 03: DEPLOY STAGING
Submit
Code
Build Unit
Tests
AGORA:
Para fazer o deploy nele, 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!!!
40 s
Staging
Environment
01 m
200 testes
1 m
NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
- 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.
- As vezes quando implanta a versão no cliente, ocorre
problemas por causa do ambiente dele!
“Na minha máquina funciona”... É, mas o cliente não
vai comprar a sua máquina!
NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
ESTÁGIO 04: API TESTS
Submit
Code
Build Unit
Tests
AGORA:
TemosTestes de API (ou integração, ou
serviços) !! Dos 60 que tínhamos, 40
eram possíveis de fazer via API.
40 s
API
Tests
01 m
200 testes
30 s
40 testes
Staging
Environment
1 m
ESTÁGIO 04: API TESTS
Submit
Code
Build Unit
Tests
40 s
API
Tests
01 m
200 testes
30 s
40 testes
Staging
Environment
1 m
FEEDBACK em menos de 04
minutos!
ESTÁGIO 04: API TESTS
Submit
Code
Build Unit
Tests
40 s
FEEDBACK:
Mais um problema resolvido
rapidamente e com custo baixo!
Mais bugs em produção evitados!
01 m
200 testes
API
Tests
30 s
40 testes
Staging
Environment
1 m
NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
- 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.
ESTÁGIO 05: ACCEPTANCE TESTS
Submit
Code
Build Unit
Tests
AGORA:
TemosTestes de Aceitação (ou/e
end2end, ou/e funcionais) !! Dos 60 que
tínhamos, apenas 20 necessitam ser
testados via interface.
40 s
Acceptance
Tests
01 m
200 testes
10 m
20 testes
Staging
Environment
1 m
API
Tests
30 s
40 testes
ESTÁGIO 05: ACCEPTANCE TESTS
Submit
Code
Build Unit
Tests
AGORA:
Achamos melhor paralelizar esses
testes para ganhar alguns minutos!!
Reduzimos 6 minutos!!!
40 s
Acceptance
Tests
01 m
200 testes
3 m
20 testes
Staging
Environment
1 m
API
Tests
30 s
40 testes
ESTÁGIO 05: ACCEPTANCE TESTS
Submit
Code
Build Unit
Tests
40 s
Acceptance
Tests
01 m
200 testes
3 m
20 testes
Staging
Environment
1 m
API
Tests
30 s
40 testes
FEEDBACK em menos de 07
minutos!
ESTÁGIO 05: ACCEPTANCE TESTS
Submit
Code
Build Unit
Tests
40 s
Acceptance
Tests
01 m
200 testes
3 m
20 testes
Staging
Environment
1 m
API
Tests
30 s
40 testes
FEEDBACK:
Mais um problema resolvido rapidamente e
com custo baixo! Mais bugs em produção
evitados!
PIRÂMIDE DE TESTES
- 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
executados!
NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
Redução de 02
dias para menos
de 07
minutos!!!!!!!!!!!!
- 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;
EU COMO QA GANHEI...
PRÓXIMOS ESTÁGIOS...
Merge Request
Build Unit
Tests
40 s
Acceptance
Tests
01 m
200 testes
3 m
20 testes
Staging
Environment
1 m
API
Tests
30 s
40 testes
OthersTests
Automatic
Deploy to
Production
Publish
Documentation
Code Review
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: dont 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/
OBRIGADA!
https://www.linkedin.com/in/mayfernandes/
https://github.com/mayribeirofernandes
https://gitlab.com/robot-framework-may-fernandes

QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)

  • 1.
    QAOPS O Q AC O M P É Z I N H O N O M U N D O D E VO P S
  • 2.
    DEVOPS - CAMS Ref.:https://www.telehouse.com/2016/03/devops-how-a-culture-of-empathy-creates-massive-productivity/e/ 1. Mude o seu mindset e foque nos princípios e boas práticas DevOps! 2. Crie processos que permita a você automatizar tudo que é possível automatizar! 3. Meça os resultados e aproveite das métricas para prover ações de melhoria contínua! 4. Compartilhe todo o aprendizado e resultados!
  • 3.
  • 4.
    VAMOS FOCAR NOCICLO DEV
  • 5.
    OS “CONTINUOUS” v 1.1 ContinuousDelivery Continuous Integration Continuous Deployment Manual Deploy Automatic Deploy Source Control Build Staging Production Commit Changes Run Build and Unit Tests Deploy toTest Environtment Run Integration,Acceptance, Load and othersTests Deploy to Production Environtment
  • 6.
    VAMOS EXEMPLIFICAR... Suponha quesomos 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.
  • 7.
    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.  As vezes ele esquece, ou manda versão errada, ou demora pra liberar...
  • 8.
    - 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. NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
  • 9.
    - A cadaliberaçã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 executados! NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
  • 10.
    - As vezesquando implanta a versão no cliente, ocorre problemas por causa do ambiente dele! “Na minha máquina funciona”... É, mas o cliente não vai comprar a sua máquina! NOSSO TIME ANTES (BASEADO EM FATOS REAIS)...
  • 11.
    ESTÁGIO 01: VAMOSMELHORAR O BUILD Submit Code Build AGORA: Versão correta automaticamente disponível no repositório para download 40 s
  • 12.
    NOSSO TIME HOJE(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.  As vezes ele esquece, ou manda versão errada, ou demora pra liberar...
  • 13.
    ESTÁGIO 02: UNITTESTS Submit Code Build Unit Tests AGORA: TemosTestes Unitários!! 40 s 01 m 200 testes
  • 14.
    ESTÁGIO 02: UNITTESTS Submit Code Build Unit Tests FEEDBACK: E falhou!!! Em menos de 2 minutos o desenvolvedor já fica sabendo que há problemas e nem libera para testes... E também já sabe onde é o problema pontualmente! 40 s 01 m 200 testes
  • 15.
    ESTÁGIO 02: UNITTESTS Submit Code Build Unit Tests FEEDBACK: Problema resolvido rapidamente e com custo baixo! Bugs em produção evitados! 40 s 01 m 200 testes
  • 16.
    NOSSO TIME HOJE(BASEADO EM FATOS REAIS)... - 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.
  • 17.
    ESTÁGIO 03: DEPLOYSTAGING Submit Code Build Unit Tests AGORA: Temos um ambiente com os requisitos mínimos para rodar nossa aplicação. Vamos executar nossos próximos testes nele! 40 s Staging Environment 01 m 200 testes 1 m
  • 18.
    ESTÁGIO 03: DEPLOYSTAGING Submit Code Build Unit Tests AGORA: Para fazer o deploy nele, 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!!! 40 s Staging Environment 01 m 200 testes 1 m
  • 19.
    NOSSO TIME HOJE(BASEADO EM FATOS REAIS)... - 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.
  • 20.
    - As vezesquando implanta a versão no cliente, ocorre problemas por causa do ambiente dele! “Na minha máquina funciona”... É, mas o cliente não vai comprar a sua máquina! NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
  • 21.
    ESTÁGIO 04: APITESTS Submit Code Build Unit Tests AGORA: TemosTestes de API (ou integração, ou serviços) !! Dos 60 que tínhamos, 40 eram possíveis de fazer via API. 40 s API Tests 01 m 200 testes 30 s 40 testes Staging Environment 1 m
  • 22.
    ESTÁGIO 04: APITESTS Submit Code Build Unit Tests 40 s API Tests 01 m 200 testes 30 s 40 testes Staging Environment 1 m FEEDBACK em menos de 04 minutos!
  • 23.
    ESTÁGIO 04: APITESTS Submit Code Build Unit Tests 40 s FEEDBACK: Mais um problema resolvido rapidamente e com custo baixo! Mais bugs em produção evitados! 01 m 200 testes API Tests 30 s 40 testes Staging Environment 1 m
  • 24.
    NOSSO TIME HOJE(BASEADO EM FATOS REAIS)... - 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.
  • 25.
    ESTÁGIO 05: ACCEPTANCETESTS Submit Code Build Unit Tests AGORA: TemosTestes de Aceitação (ou/e end2end, ou/e funcionais) !! Dos 60 que tínhamos, apenas 20 necessitam ser testados via interface. 40 s Acceptance Tests 01 m 200 testes 10 m 20 testes Staging Environment 1 m API Tests 30 s 40 testes
  • 26.
    ESTÁGIO 05: ACCEPTANCETESTS Submit Code Build Unit Tests AGORA: Achamos melhor paralelizar esses testes para ganhar alguns minutos!! Reduzimos 6 minutos!!! 40 s Acceptance Tests 01 m 200 testes 3 m 20 testes Staging Environment 1 m API Tests 30 s 40 testes
  • 27.
    ESTÁGIO 05: ACCEPTANCETESTS Submit Code Build Unit Tests 40 s Acceptance Tests 01 m 200 testes 3 m 20 testes Staging Environment 1 m API Tests 30 s 40 testes FEEDBACK em menos de 07 minutos!
  • 28.
    ESTÁGIO 05: ACCEPTANCETESTS Submit Code Build Unit Tests 40 s Acceptance Tests 01 m 200 testes 3 m 20 testes Staging Environment 1 m API Tests 30 s 40 testes FEEDBACK: Mais um problema resolvido rapidamente e com custo baixo! Mais bugs em produção evitados!
  • 29.
  • 30.
    - A cadaliberaçã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 executados! NOSSO TIME HOJE (BASEADO EM FATOS REAIS)...
  • 31.
    Redução de 02 diaspara menos de 07 minutos!!!!!!!!!!!!
  • 32.
    - 02 diaspara 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; EU COMO QA GANHEI...
  • 33.
    PRÓXIMOS ESTÁGIOS... Merge Request BuildUnit Tests 40 s Acceptance Tests 01 m 200 testes 3 m 20 testes Staging Environment 1 m API Tests 30 s 40 testes OthersTests Automatic Deploy to Production Publish Documentation Code Review
  • 34.
    PRIMEIROS PASSOS PARAO 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: dont 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/
  • 35.