SlideShare a Scribd company logo
1 of 30
Download to read offline
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

More Related Content

What's hot

Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeisQualister
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterJúlio de Lima
 
Palestra teste de software Univel
Palestra teste de software UnivelPalestra teste de software Univel
Palestra teste de software UnivelCristiano Caetano
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoValquíria Duarte D'Amato
 
Uma Sprint na Vida do Tester
Uma Sprint na Vida do TesterUma Sprint na Vida do Tester
Uma Sprint na Vida do TesterVitor Pelizza
 
Agile testing
Agile testingAgile testing
Agile testingQualister
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword drivenQualister
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizadosCristiano Caetano
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdadesCristiano Caetano
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de softwareQualister
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitQualister
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicarQualister
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeterCristiano Caetano
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebRodrigo Veiga
 

What's hot (20)

Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
Medindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeterMedindo a performance de aplicações web com JMeter
Medindo a performance de aplicações web com JMeter
 
Palestra teste de software Univel
Palestra teste de software UnivelPalestra teste de software Univel
Palestra teste de software Univel
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Uma Sprint na Vida do Tester
Uma Sprint na Vida do TesterUma Sprint na Vida do Tester
Uma Sprint na Vida do Tester
 
Agile testing
Agile testingAgile testing
Agile testing
 
Automacao de testes com keyword driven
Automacao de testes com keyword drivenAutomacao de testes com keyword driven
Automacao de testes com keyword driven
 
Automacao testes automatizados
Automacao testes automatizadosAutomacao testes automatizados
Automacao testes automatizados
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Automacao de testes mitos e verdades
Automacao de testes mitos e verdadesAutomacao de testes mitos e verdades
Automacao de testes mitos e verdades
 
Perspectivas em teste de software
Perspectivas em teste de softwarePerspectivas em teste de software
Perspectivas em teste de software
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por Exemplo
 
Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
Juntando para multiplicar
Juntando para multiplicarJuntando para multiplicar
Juntando para multiplicar
 
Teste performance carga stress jmeter
Teste performance carga stress jmeterTeste performance carga stress jmeter
Teste performance carga stress jmeter
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
 

Similar to Agile e Testes no PagSeguro

Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryRodrigo Russo
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudiMasters
 
#Javou10 - Testes E2E com JavaScript
#Javou10 - Testes E2E com JavaScript#Javou10 - Testes E2E com JavaScript
#Javou10 - Testes E2E com JavaScriptHenrique Luz
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
K6 - Teste de Carga e Desempenho.pptx
K6 - Teste de Carga e Desempenho.pptxK6 - Teste de Carga e Desempenho.pptx
K6 - Teste de Carga e Desempenho.pptxGdfr2
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
Métodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreMétodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreDionatan default
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaGabriela Patuci
 

Similar to Agile e Testes no PagSeguro (20)

Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
Android Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na CloudAndroid Dev Conference 2017 - Automação de Testes na Cloud
Android Dev Conference 2017 - Automação de Testes na Cloud
 
#Javou10 - Testes E2E com JavaScript
#Javou10 - Testes E2E com JavaScript#Javou10 - Testes E2E com JavaScript
#Javou10 - Testes E2E com JavaScript
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
TDC 2015 Florianopolis
TDC 2015 FlorianopolisTDC 2015 Florianopolis
TDC 2015 Florianopolis
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
The twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo realThe twelve factor app - Princípios e boas práticas aplicados no mundo real
The twelve factor app - Princípios e boas práticas aplicados no mundo real
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
K6 - Teste de Carga e Desempenho.pptx
K6 - Teste de Carga e Desempenho.pptxK6 - Teste de Carga e Desempenho.pptx
K6 - Teste de Carga e Desempenho.pptx
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
DevOps@Scale [Portuguese]
DevOps@Scale [Portuguese]DevOps@Scale [Portuguese]
DevOps@Scale [Portuguese]
 
Métodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreMétodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software Livre
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Palestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGSPalestra Testes Ágeis - SEMAC INF UFRGS
Palestra Testes Ágeis - SEMAC INF UFRGS
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 

Agile e Testes no PagSeguro

  • 1. André Abe Vicente
 Especialista de 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 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
  • 4. 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
  • 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
  • 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 E TESTES @PAGSEGURO-UOL http://bit.ly/buscandodesafiosuol