André Abe Vicente

Especialista de Qualidade PagSeguro
Julho/2017
Agile e Testes

Como estamos garantindo a Qualidade das nossas entregas
AGILE E TESTES @PAGSEGURO-UOL
‣ Testes & Agile (Msc. ICMC - USP)
‣ [2012 - Atual] PagSeguro@UOL
‣ Prover ferramentas para facilitar o trabalho
e melhorar a produtividade dos times
‣ Canais e Parcerias, novas bandeiras
bandeiras de Voucher, sandbox e devs
André Abe Vicente
TREINAMENTO AGILE TESTING AUTOMATION
Características Agile Testing
‣ Executado com frequência para detectar defeitos o mais cedo
possível (ciclos iterativos e curtos).
‣ Testando sob o ponto de vista do cliente (aceitação).
‣ Execução de testes manuais por meio de testes exploratórios.
‣ TDD: Explorar, projetar, desenvolver e testar
‣ Continuous Integration e Continuous Delivery
TREINAMENTO AGILE TESTING AUTOMATION
Características Agile Testing
‣ The Whole-Team-Approach: Todo mundo no time de
desenvolvimento é igualmente responsável pela
qualidade e sucesso do projeto
‣ Software de qualidade em um
prazo que maximize o valor para
o negócio.
‣ Trabalho de todo o time
‣ Guiar o código, ajudar o time a
aprender
‣ Como a aplicação deve
funcionar
‣ Definition of Done
AGILE E TESTES @PAGSEGURO-UOL
2012 - Atual
Escalabilidade: aumento dos times de P&D,
Produtos, Comercial...
Venda Presencial (2012): NFC, 

Leitor Tarja e Bluetooth, Pré-Pago e Moderninha
Agile & Testes no PagSeguro
Scrum (2008)*
AGILE E TESTES @PAGSEGURO-UOL
Evolução PagSeguro
2015 2016 2017 ...2007 2012
Inicio PS Mobile
Migração

Monolítico
Apache Mesos
http://bit.ly/ps-constelacao
http://bit.ly/ps-mesos
Monolítico

1.6 MLOC
+60 times
Quantidade de Requisições
≈29 MI

Requisições/dia
XP Novas Tecnologias

Right-Size Services
AGILE E TESTES @PAGSEGURO-UOL
Evolução PagSeguro
2015 2016 2017 ...2007 2012
Inicio PS Mobile
Migração

Monolítico
Apache Mesos XP Novas Tecnologias

Right-Size Services
http://bit.ly/ps-constelacao
http://bit.ly/ps-mesos
* Survey com devs PagSeguro (amostra)
Perfomance do time, confiança na entrega, experimentar…
AGILE E TESTES @PAGSEGURO-UOL
Práticas de Desenvolvimento e Qualidade
AGILE E TESTES @PAGSEGURO-UOL
Tipos de Teste
AGILE E TESTES @PAGSEGURO-UOL
Qualidade e Testes
Outros
‣ Mocks: Wire-mock, Mockito, Powermock, Hamcrest, Mock-server
‣ Documentação: TestLink, Confluence + Jira
‣ JS: casperjs, phantomjs, phantomcss, karma, ava, nyc, jasmine,
mocha, yadda (BDD), istanbul (coverage)
‣ Service/API Testing (Manual): Postman, SoapUI
‣ Mobile: Espresso
AGILE E TESTES @PAGSEGURO-UOL
Servidores de Aplicação e Servidores Web
‣ Jboss
‣ Tomcat
‣ Jetty
‣ Netty
‣ Apache Mina
Banco de dados
‣ Oracle
‣ MySQL
‣ Cassandra
‣ MongoDB
‣ Elasticsearch
Front-end
‣ React.js
‣ Angular.js
‣ Vue.js
‣ Handlebars.js
‣ Mustache.js
Linguagens de programação
‣ Java
‣ C
‣ JavaScript/Node.js
‣ Go
‣ Shell Script
‣ Groovy
‣ SQL
‣ CSS
‣ HTML
Tecnologias no PagSeguro
by @amaia e @astro
AGILE E TESTES @PAGSEGURO-UOL
Tecnologias no PagSeguro
Programação reativa
‣ Spring Reactor
‣ Vertx
‣ ReactiveX
Cache
‣ Memcached
‣ Infinispan
‣ Hazelcast
‣ Ehcache
Ferramentas de gerenciamento
de configuração
‣ Ansible
‣ Puppet
‣ Vagrant
‣ Terraform
Gerenciador de recursos distribuídos
‣ Apache Mesos
‣ Chronos
‣ Marathon
by @amaia e @astro
AGILE E TESTES @PAGSEGURO-UOL
Qualidade e Testes
‣ Ambiente Testes Monolítico
‣ Docker + Selenium Grid
‣ Continuous Delivery
‣ Microservices
‣ Jenkinsfile, Pipelines e Apache Mesos
‣ Testes Automatizados
‣ Flyway (Database Migrations)
‣ Sonar
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ QAs e Devs

Entendimento das Tecnologias (Ex.: Filas) + Arquitetura
‣ Reutilização (catálogo de serviços) e docs (Swagger)
‣ Mocks e Monitoramento para ambiente de testes
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
http://bit.ly/microservice-testing-mf
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ QAs e Devs

Entendimento das Tecnologias (Ex.: Filas) + Arquitetura
‣ Reutilização (catálogo de serviços) e docs (Swagger)
‣ Mocks e Monitoramento para ambiente de testes
Sam Newman - https://www.oreilly.com/learning/building-microservices-testing
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ Testes de Contrato (Contract Testing)
‣ "Quando fazemos o deploy de um novo serviço em produção,
nossas mudanças não podem quebrar os consumidores"
‣ Premissa: praticamente impossível saber todas as formas que
o consumidores irão utilizar os nossos serviços.
‣ Consumidor: fornece uma suite de testes que especifica as
iterações necessárias e o formato.
‣ Fornecedor: deve concordar com o contrato e por meio dos
testes verificar que não está quebrado.
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ Testes de Contrato (Contract Testing)
‣ https://www.thoughtworks.com/radar/techniques/consumer-driven-contract-
testing
http://bit.ly/microservice-testing-mf
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ Testes de Contrato (Contract Testing)
‣ https://www.thoughtworks.com/radar/techniques/consumer-driven-
contract-testing
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ Testes de Contrato (Contract Testing)
‣ http://bit.ly/contract-attlasian
‣ https://pact.io
AGILE E TESTES @PAGSEGURO-UOL
Microservice Testing
‣ Testes de Contrato (Contract Testing)
‣ http://bit.ly/contract-attlasian
‣ https://pact.io
Swager Validator
End-to-End Testing
http://bit.ly/microservice-testing-mf
AGILE E TESTES @PAGSEGURO-UOL
AGILE E TESTES @PAGSEGURO-UOL
Boas Práticas de Qualidade
‣ Entregas + Feature Toggles
‣ Releases separados
Fonte: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-2/
AGILE E TESTES @PAGSEGURO-UOL
Boas Práticas de Qualidade
‣ Entregas + Feature Toggles
‣ Releases separados
‣ Entregas (Trens de Entrega, Caronas)
Fonte: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-2/
AGILE E TESTES @PAGSEGURO-UOL
Boas Práticas de Qualidade
‣ Entregas + Feature Toggles
‣ Releases separados
‣ Entregas (Trens de Entrega, Caronas)
‣ Chaveamentos (Usuário, Porcentagem, Testes A/B)
AGILE E TESTES @PAGSEGURO-UOL
Testes A/B no PagSeguro
AGILE E TESTES @PAGSEGURO-UOL
Monitoração e Troubleshoot de problemas
‣ Acompanhamento Delivery e Pós
‣ Monitoração Operações, Relatórios de Erros 500, Banco
‣ Acompanhamento Funcionalidades (Business Dashboards,
Erros)
Payment Gateway Real - Time Monitoring with Splunk! 

Marcio Ghiraldelli @ SplunkConf 2013
AGILE E TESTES @PAGSEGURO-UOL
Perfil QA e Agile Testers
‣ Dimensão de Negócio
‣ BDD | Comunicação | Especificação
‣ Dimensão Técnica
‣ Skills desenvolvimento | Pair com Devs | TDD e Código Limpo
Automação de Testes| Testes de Perfomance e Segurança
‣ Dimensão DevOPS
‣ Pipelines | Continuous Integration | Tarefas Repetitivas

* https://www.thoughtworks.com/insights/blog/agile-tester-30
by Daniel Amorim - Thoughtworks
AGILE E TESTES @PAGSEGURO-UOL
Perfil QA e Agile Testers
‣ Formação sólida em TI

Conceitos de teste | Desenvolvimento | Automação

SQL | Agile | ...
‣ Investigação de Problemas

Arquitetura | Processamento Assíncrono | Logs 

Linux | Banco | ...
http://about.me/andvicente 

https://www.linkedin.com/in/andvicente
AGILE E TESTES @PAGSEGURO-UOL
http://bit.ly/buscandodesafiosuol

Agile e Testes no PagSeguro

  • 1.
    André Abe Vicente
 Especialistade Qualidade PagSeguro Julho/2017 Agile e Testes
 Como estamos garantindo a Qualidade das nossas entregas
  • 2.
    AGILE E TESTES@PAGSEGURO-UOL ‣ Testes & Agile (Msc. ICMC - USP) ‣ [2012 - Atual] PagSeguro@UOL ‣ Prover ferramentas para facilitar o trabalho e melhorar a produtividade dos times ‣ Canais e Parcerias, novas bandeiras bandeiras de Voucher, sandbox e devs André Abe Vicente
  • 3.
    TREINAMENTO AGILE TESTINGAUTOMATION Características Agile Testing ‣ Executado com frequência para detectar defeitos o mais cedo possível (ciclos iterativos e curtos). ‣ Testando sob o ponto de vista do cliente (aceitação). ‣ Execução de testes manuais por meio de testes exploratórios. ‣ TDD: Explorar, projetar, desenvolver e testar ‣ Continuous Integration e Continuous Delivery
  • 4.
    TREINAMENTO AGILE TESTINGAUTOMATION Características Agile Testing ‣ The Whole-Team-Approach: Todo mundo no time de desenvolvimento é igualmente responsável pela qualidade e sucesso do projeto ‣ Software de qualidade em um prazo que maximize o valor para o negócio. ‣ Trabalho de todo o time ‣ Guiar o código, ajudar o time a aprender ‣ Como a aplicação deve funcionar ‣ Definition of Done
  • 5.
    AGILE E TESTES@PAGSEGURO-UOL 2012 - Atual Escalabilidade: aumento dos times de P&D, Produtos, Comercial... Venda Presencial (2012): NFC, 
 Leitor Tarja e Bluetooth, Pré-Pago e Moderninha Agile & Testes no PagSeguro Scrum (2008)*
  • 6.
    AGILE E TESTES@PAGSEGURO-UOL Evolução PagSeguro 2015 2016 2017 ...2007 2012 Inicio PS Mobile Migração
 Monolítico Apache Mesos http://bit.ly/ps-constelacao http://bit.ly/ps-mesos Monolítico
 1.6 MLOC +60 times Quantidade de Requisições ≈29 MI
 Requisições/dia XP Novas Tecnologias
 Right-Size Services
  • 7.
    AGILE E TESTES@PAGSEGURO-UOL Evolução PagSeguro 2015 2016 2017 ...2007 2012 Inicio PS Mobile Migração
 Monolítico Apache Mesos XP Novas Tecnologias
 Right-Size Services http://bit.ly/ps-constelacao http://bit.ly/ps-mesos * Survey com devs PagSeguro (amostra) Perfomance do time, confiança na entrega, experimentar…
  • 8.
    AGILE E TESTES@PAGSEGURO-UOL Práticas de Desenvolvimento e Qualidade
  • 9.
    AGILE E TESTES@PAGSEGURO-UOL Tipos de Teste
  • 10.
    AGILE E TESTES@PAGSEGURO-UOL Qualidade e Testes Outros ‣ Mocks: Wire-mock, Mockito, Powermock, Hamcrest, Mock-server ‣ Documentação: TestLink, Confluence + Jira ‣ JS: casperjs, phantomjs, phantomcss, karma, ava, nyc, jasmine, mocha, yadda (BDD), istanbul (coverage) ‣ Service/API Testing (Manual): Postman, SoapUI ‣ Mobile: Espresso
  • 11.
    AGILE E TESTES@PAGSEGURO-UOL Servidores de Aplicação e Servidores Web ‣ Jboss ‣ Tomcat ‣ Jetty ‣ Netty ‣ Apache Mina Banco de dados ‣ Oracle ‣ MySQL ‣ Cassandra ‣ MongoDB ‣ Elasticsearch Front-end ‣ React.js ‣ Angular.js ‣ Vue.js ‣ Handlebars.js ‣ Mustache.js Linguagens de programação ‣ Java ‣ C ‣ JavaScript/Node.js ‣ Go ‣ Shell Script ‣ Groovy ‣ SQL ‣ CSS ‣ HTML Tecnologias no PagSeguro by @amaia e @astro
  • 12.
    AGILE E TESTES@PAGSEGURO-UOL Tecnologias no PagSeguro Programação reativa ‣ Spring Reactor ‣ Vertx ‣ ReactiveX Cache ‣ Memcached ‣ Infinispan ‣ Hazelcast ‣ Ehcache Ferramentas de gerenciamento de configuração ‣ Ansible ‣ Puppet ‣ Vagrant ‣ Terraform Gerenciador de recursos distribuídos ‣ Apache Mesos ‣ Chronos ‣ Marathon by @amaia e @astro
  • 13.
    AGILE E TESTES@PAGSEGURO-UOL Qualidade e Testes ‣ Ambiente Testes Monolítico ‣ Docker + Selenium Grid ‣ Continuous Delivery ‣ Microservices ‣ Jenkinsfile, Pipelines e Apache Mesos ‣ Testes Automatizados ‣ Flyway (Database Migrations) ‣ Sonar
  • 14.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ QAs e Devs
 Entendimento das Tecnologias (Ex.: Filas) + Arquitetura ‣ Reutilização (catálogo de serviços) e docs (Swagger) ‣ Mocks e Monitoramento para ambiente de testes
  • 15.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing http://bit.ly/microservice-testing-mf
  • 16.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ QAs e Devs
 Entendimento das Tecnologias (Ex.: Filas) + Arquitetura ‣ Reutilização (catálogo de serviços) e docs (Swagger) ‣ Mocks e Monitoramento para ambiente de testes Sam Newman - https://www.oreilly.com/learning/building-microservices-testing
  • 17.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ Testes de Contrato (Contract Testing) ‣ "Quando fazemos o deploy de um novo serviço em produção, nossas mudanças não podem quebrar os consumidores" ‣ Premissa: praticamente impossível saber todas as formas que o consumidores irão utilizar os nossos serviços. ‣ Consumidor: fornece uma suite de testes que especifica as iterações necessárias e o formato. ‣ Fornecedor: deve concordar com o contrato e por meio dos testes verificar que não está quebrado.
  • 18.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ Testes de Contrato (Contract Testing) ‣ https://www.thoughtworks.com/radar/techniques/consumer-driven-contract- testing http://bit.ly/microservice-testing-mf
  • 19.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ Testes de Contrato (Contract Testing) ‣ https://www.thoughtworks.com/radar/techniques/consumer-driven- contract-testing
  • 20.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ Testes de Contrato (Contract Testing) ‣ http://bit.ly/contract-attlasian ‣ https://pact.io
  • 21.
    AGILE E TESTES@PAGSEGURO-UOL Microservice Testing ‣ Testes de Contrato (Contract Testing) ‣ http://bit.ly/contract-attlasian ‣ https://pact.io Swager Validator
  • 22.
  • 23.
    AGILE E TESTES@PAGSEGURO-UOL Boas Práticas de Qualidade ‣ Entregas + Feature Toggles ‣ Releases separados Fonte: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-2/
  • 24.
    AGILE E TESTES@PAGSEGURO-UOL Boas Práticas de Qualidade ‣ Entregas + Feature Toggles ‣ Releases separados ‣ Entregas (Trens de Entrega, Caronas) Fonte: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-2/
  • 25.
    AGILE E TESTES@PAGSEGURO-UOL Boas Práticas de Qualidade ‣ Entregas + Feature Toggles ‣ Releases separados ‣ Entregas (Trens de Entrega, Caronas) ‣ Chaveamentos (Usuário, Porcentagem, Testes A/B)
  • 26.
    AGILE E TESTES@PAGSEGURO-UOL Testes A/B no PagSeguro
  • 27.
    AGILE E TESTES@PAGSEGURO-UOL Monitoração e Troubleshoot de problemas ‣ Acompanhamento Delivery e Pós ‣ Monitoração Operações, Relatórios de Erros 500, Banco ‣ Acompanhamento Funcionalidades (Business Dashboards, Erros) Payment Gateway Real - Time Monitoring with Splunk! 
 Marcio Ghiraldelli @ SplunkConf 2013
  • 28.
    AGILE E TESTES@PAGSEGURO-UOL Perfil QA e Agile Testers ‣ Dimensão de Negócio ‣ BDD | Comunicação | Especificação ‣ Dimensão Técnica ‣ Skills desenvolvimento | Pair com Devs | TDD e Código Limpo Automação de Testes| Testes de Perfomance e Segurança ‣ Dimensão DevOPS ‣ Pipelines | Continuous Integration | Tarefas Repetitivas
 * https://www.thoughtworks.com/insights/blog/agile-tester-30 by Daniel Amorim - Thoughtworks
  • 29.
    AGILE E TESTES@PAGSEGURO-UOL Perfil QA e Agile Testers ‣ Formação sólida em TI
 Conceitos de teste | Desenvolvimento | Automação
 SQL | Agile | ... ‣ Investigação de Problemas
 Arquitetura | Processamento Assíncrono | Logs 
 Linux | Banco | ...
  • 30.
    http://about.me/andvicente 
 https://www.linkedin.com/in/andvicente AGILE ETESTES @PAGSEGURO-UOL http://bit.ly/buscandodesafiosuol