Utilizando Cucumber para um ContinuousUtilizando Cucumber para um Continuous
DeliveryDelivery
RobsonAgapitoCorrea
18deMarçode2017
Robson Agapito
I love to work as QA
@robsonagapito
robsonagapito@gmail.com
http://www.slideshare.net/robsonagapito/
https://br.linkedin.com/in/robsonagapito
Continuous DeliveryContinuous Delivery
Continuous IntegrationContinuous Integration
Qual a diferença para Continuous Deployment?Qual a diferença para Continuous Deployment?
Como era antes:Como era antes:
Monolito
Poucos Testes Unitários
Código complexo
Muitos testes funcionais
intermitentes
Muitos testes manuais
Demora na Entrega
Muitas pessoas mexendo
no mesmo ponto
Código com muitos donos
Micro ServiçoMicro Serviço
Nosso negócio:Nosso negócio:
MonolitoMonolito
Micro ServiçoMicro Serviço
Vantagens:Vantagens:
 Podemos relizar o delivery a qualquer momento
 Bugs identificados mais rápidos
 Bugs corrigidos mais rápidos
 Alteração de regras de negócios podem ser realizadas com maior agilidade
 Processo se tornou mais ágil
 Planejamento semanal
 Time se tornou DevOps
 Mais testes unitários (possibilidade de realizar TDD)
 Mais testes integrados e funcionais (possibilidade de realizar BDD)
 Todos ficaram responsáveis pela qualidade
 Time mais independente
 Time ficou responsável/dono do código desenvolvido
 Time entregando mais e com mais agilidade
 Melhoria constante no Quadro de Kanban e nos Processos
Importância dos Testes:Importância dos Testes:
CLONECLONE CLEANCLEAN BUILDBUILD
RELEASERELEASE APPROVALAPPROVAL DEPLOY PRODDEPLOY PROD
DOC ITILDOC ITIL
INTEGRATIONINTEGRATION
TESTINGTESTING DEPLOY QADEPLOY QA
UNIT
UNIT
TESTING
TESTING
SMOKE TEST PRODSMOKE TEST PROD
INTEGRATION TESTINGINTEGRATION TESTING
Importância do Banco de Dados:Importância do Banco de Dados:
CLONECLONE CLEANCLEAN BUILDBUILD
RELEASERELEASE APPROVALAPPROVAL
DOC ITILDOC ITIL
DEPLOY QADEPLOY QA
SMOKE TEST PRODSMOKE TEST PROD
DELIVERY BANCO
QA
DELIVERY BANCO
PROD DEPLOY PRODDEPLOY PROD
UNIT
UNIT
TESTING
TESTING
INTEGRATIONINTEGRATION
TESTINGTESTING
Processo de Delivery:Processo de Delivery:
PULL REQUESTPULL REQUEST MERGEMERGE
Cobertura de TestesCobertura de Testes
Unit Testing => 25%Unit Testing => 25%
Integration Testing => ??%Integration Testing => ??%
Testing TechniquesTesting Techniques
Dificuldades:Dificuldades:
 Falta da confiança da equipe de banco
 Ambiente do Mesos era um pouco instável, por ser algo novo.
 Não ter certeza da cobertura dos testes
 Confiança inicial da área de negócios
 Não ter um P.O. no início
 Confiança da equipe de operações
 Não tínhamos acesso a produção, mas somente a gente tinha
conhecimento para agir se necessário
 Falta de Endomarketing do time
 Sonar neste momento mais atrapalhou que ajudou
 A configuração do Sonar estava com a criticidade equivocada,
precisaria de um tempo enorme para configurar o mesmo.
Tem que melhorar:Tem que melhorar:
 Métricas sobre cobertura de Testes
 Utilização de técnicas de testes pelo desenvolvimento para evitar
desperdício de tempo
 Testes após o deploy
 Ambiente será cada vez mais crítico para suportar tantos deliveries
 A independência as vezes faz o time olhar mais o seu lado e não para a
empresa como um todo
 Testes funcionais de UI no processo de delivery. (Happy Path)
 Aprovação do Delivery após delivery de banco
 Rollback Manual
Exemplo PráticoExemplo Prático
Dúvidas?
Robson Agapito Correa
robsonagapito@gmail.com
http://pt.slideshare.net/robsonagapito
https://github.com/robsonagapito
Muito Obrigado!
Utilizando Cucumber para um ContinuousUtilizando Cucumber para um Continuous
DeliveryDelivery
RobsonAgapitoCorrea
18deMarçode2017

Utilizando Cucumber para um Continuous Delivery

  • 1.
    Utilizando Cucumber paraum ContinuousUtilizando Cucumber para um Continuous DeliveryDelivery RobsonAgapitoCorrea 18deMarçode2017
  • 2.
    Robson Agapito I loveto work as QA @robsonagapito robsonagapito@gmail.com http://www.slideshare.net/robsonagapito/ https://br.linkedin.com/in/robsonagapito
  • 3.
  • 4.
  • 5.
    Qual a diferençapara Continuous Deployment?Qual a diferença para Continuous Deployment?
  • 6.
    Como era antes:Comoera antes: Monolito Poucos Testes Unitários Código complexo Muitos testes funcionais intermitentes Muitos testes manuais Demora na Entrega Muitas pessoas mexendo no mesmo ponto Código com muitos donos
  • 7.
  • 8.
  • 9.
    Vantagens:Vantagens:  Podemos relizaro delivery a qualquer momento  Bugs identificados mais rápidos  Bugs corrigidos mais rápidos  Alteração de regras de negócios podem ser realizadas com maior agilidade  Processo se tornou mais ágil  Planejamento semanal  Time se tornou DevOps  Mais testes unitários (possibilidade de realizar TDD)  Mais testes integrados e funcionais (possibilidade de realizar BDD)  Todos ficaram responsáveis pela qualidade  Time mais independente  Time ficou responsável/dono do código desenvolvido  Time entregando mais e com mais agilidade  Melhoria constante no Quadro de Kanban e nos Processos
  • 10.
    Importância dos Testes:Importânciados Testes: CLONECLONE CLEANCLEAN BUILDBUILD RELEASERELEASE APPROVALAPPROVAL DEPLOY PRODDEPLOY PROD DOC ITILDOC ITIL INTEGRATIONINTEGRATION TESTINGTESTING DEPLOY QADEPLOY QA UNIT UNIT TESTING TESTING SMOKE TEST PRODSMOKE TEST PROD
  • 11.
  • 13.
    Importância do Bancode Dados:Importância do Banco de Dados: CLONECLONE CLEANCLEAN BUILDBUILD RELEASERELEASE APPROVALAPPROVAL DOC ITILDOC ITIL DEPLOY QADEPLOY QA SMOKE TEST PRODSMOKE TEST PROD DELIVERY BANCO QA DELIVERY BANCO PROD DEPLOY PRODDEPLOY PROD UNIT UNIT TESTING TESTING INTEGRATIONINTEGRATION TESTINGTESTING
  • 15.
    Processo de Delivery:Processode Delivery: PULL REQUESTPULL REQUEST MERGEMERGE
  • 16.
  • 17.
    Unit Testing =>25%Unit Testing => 25% Integration Testing => ??%Integration Testing => ??%
  • 18.
  • 19.
    Dificuldades:Dificuldades:  Falta daconfiança da equipe de banco  Ambiente do Mesos era um pouco instável, por ser algo novo.  Não ter certeza da cobertura dos testes  Confiança inicial da área de negócios  Não ter um P.O. no início  Confiança da equipe de operações  Não tínhamos acesso a produção, mas somente a gente tinha conhecimento para agir se necessário  Falta de Endomarketing do time  Sonar neste momento mais atrapalhou que ajudou  A configuração do Sonar estava com a criticidade equivocada, precisaria de um tempo enorme para configurar o mesmo.
  • 20.
    Tem que melhorar:Temque melhorar:  Métricas sobre cobertura de Testes  Utilização de técnicas de testes pelo desenvolvimento para evitar desperdício de tempo  Testes após o deploy  Ambiente será cada vez mais crítico para suportar tantos deliveries  A independência as vezes faz o time olhar mais o seu lado e não para a empresa como um todo  Testes funcionais de UI no processo de delivery. (Happy Path)  Aprovação do Delivery após delivery de banco  Rollback Manual
  • 21.
  • 22.
  • 23.
  • 24.
    Utilizando Cucumber paraum ContinuousUtilizando Cucumber para um Continuous DeliveryDelivery RobsonAgapitoCorrea 18deMarçode2017