O documento discute as práticas de teste e qualidade no PagSeguro, incluindo: 1) testes ágeis executados frequentemente para detectar defeitos cedo; 2) testes de contrato para garantir a qualidade das entregas de microserviços; 3) monitoramento e acompanhamento de problemas para apoiar entregas contínuas.
III Mesa Redonda - Teste de Software na Prática - Andre Abe VicenteAndré Abe Vicente
O que tem sido feito no mercado em relação a ferramentas e boas práticas na área de qualidade e testes, quais são as dificuldades na contratação de profissionais da área e quais as oportunidades de cooperação academia e indústria.
Evento: III Mesa Redonda - Teste de Software na Prática: Reduzindo a Lacuna entre a Academia e a Indústria (Edição 2016)
Organização: Departamento de Computação UFSCAR (LaPES)
Site: http://lapes.dc.ufscar.br/projects-and-cooperation/events/iii-mesa-redonda-teste-na-industria-2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
Essa palestra aborda sobre o planejamento de testes em equipes ágeis e mostra como isso impacta na qualidade final do produto, inserindo o papel do Agile Tester na equipe de desenvolvimento. Serão abordados os diferentes tipos e categorias de testes e como são introduzidos no processo de desenvolvimento de software de uma forma colaborativa, responsável e sem desperdícios.
III Mesa Redonda - Teste de Software na Prática - Andre Abe VicenteAndré Abe Vicente
O que tem sido feito no mercado em relação a ferramentas e boas práticas na área de qualidade e testes, quais são as dificuldades na contratação de profissionais da área e quais as oportunidades de cooperação academia e indústria.
Evento: III Mesa Redonda - Teste de Software na Prática: Reduzindo a Lacuna entre a Academia e a Indústria (Edição 2016)
Organização: Departamento de Computação UFSCAR (LaPES)
Site: http://lapes.dc.ufscar.br/projects-and-cooperation/events/iii-mesa-redonda-teste-na-industria-2016
TDC - Testes e Sistemas legados #quemNunca - SC/2016Fernando Santiago
Esta apresentação aborda um estudo sobre testes de software, seus paradigmas e a aplicação da automação de testes em um sistema legado. Para a aplicação da metodologia de testes apresentada, foi utilizado como estudo de caso o sistema Sienge, sistema de gestão voltado a Indústria da Construção, desenvolvido em ambiente web. Este estudo apresenta e aplica técnicas de testes relacionadas a sistemas isentos de padrões que impedem a garantia da qualidade do sistema ao todo. Entretanto, o trabalho visa compreender como inserir as práticas de testes automatizados no ciclo de vida de desenvolvimento de um software utilizando uma abordagem pragmática.
Essa palestra aborda sobre o planejamento de testes em equipes ágeis e mostra como isso impacta na qualidade final do produto, inserindo o papel do Agile Tester na equipe de desenvolvimento. Serão abordados os diferentes tipos e categorias de testes e como são introduzidos no processo de desenvolvimento de software de uma forma colaborativa, responsável e sem desperdícios.
Medindo a performance de aplicações web com JMeterJúlio de Lima
Palestra ministrada por mim na XI EngTec no UniSalesiano Araçatuba (São Paulo) no dia 08 de outubro de 2014 via Qualister.
A intenção foi apresentar aos alunos conceitos em testes de performance e um hands-on apresentando a ferramenta JMeter.
Tem como objetivo mostrar a importância de investir na qualidade de software.
Nela terá casos onde a qualidade está diretamente ligada ao sucesso ou insucesso de um projeto de software.
Versão 2 - 2019
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
Especificação por exemplo é um conjunto de patterns que ajudam a construir o produto certo da maneira certa. Muitas pessoas atribuem sua utilização apenas a parte de teste de software, porém ela vai muito além disso e tem dicas valiosas sobre o quanto a colaboração pode nos ajudar a descobrir o que nossos clientes realmente precisam.
1) Tópicos que serão abordados:
- O que é REST?
- Como testar manualmente?
- Validando respostas (Esquema, Corpo e Cabeçalho)
- Sobre o Rest-Assured
- Componentes auxiliares
- Hands-On
2) O Hands-On demonstrará, na prática:
- Como montar o ambiente para utilização da ferramenta
- Como criar um novo projeto
- Criando um novo teste
- Executando os testes
- Analisando os relatórios
Assista o Hands-on aqui:
http://bit.ly/1QMZ3od
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
A comunidade vem falando sobre Agile Testing já faz algum tempo. Termos como Testes Automatizados e Integração Contínua já estão no sangue dos times, mas isso é suficiente? Agile Testing é muito mais que apenas automatizar testes: é enfrentar os desafios e propor soluções que agreguem valor ao produto. Nessa palestra vamos falar de alguns desafios: - Estratégias para data setup em projetos de automação - Como distribuir (na prática) os testes dentro da Pirâmide de Automação de Testes - Desafios que já enfrentamos (por exemplo: como automatizar um login de aplicativo que precisa de um token que chega por SMS?) - Como pensar fora da caixa e agregar valor ao produto usando o mindset de testes
Medindo a performance de aplicações web com JMeterJúlio de Lima
Palestra ministrada por mim na XI EngTec no UniSalesiano Araçatuba (São Paulo) no dia 08 de outubro de 2014 via Qualister.
A intenção foi apresentar aos alunos conceitos em testes de performance e um hands-on apresentando a ferramenta JMeter.
Tem como objetivo mostrar a importância de investir na qualidade de software.
Nela terá casos onde a qualidade está diretamente ligada ao sucesso ou insucesso de um projeto de software.
Versão 2 - 2019
Meetup SP - O QA & a Especificação Por ExemploSamanta Cicilia
Especificação por exemplo é um conjunto de patterns que ajudam a construir o produto certo da maneira certa. Muitas pessoas atribuem sua utilização apenas a parte de teste de software, porém ela vai muito além disso e tem dicas valiosas sobre o quanto a colaboração pode nos ajudar a descobrir o que nossos clientes realmente precisam.
1) Tópicos que serão abordados:
- O que é REST?
- Como testar manualmente?
- Validando respostas (Esquema, Corpo e Cabeçalho)
- Sobre o Rest-Assured
- Componentes auxiliares
- Hands-On
2) O Hands-On demonstrará, na prática:
- Como montar o ambiente para utilização da ferramenta
- Como criar um novo projeto
- Criando um novo teste
- Executando os testes
- Analisando os relatórios
Assista o Hands-on aqui:
http://bit.ly/1QMZ3od
DevOps Summit Brasil - O que não te contaram sobre Agile TestingSamanta Cicilia
A comunidade vem falando sobre Agile Testing já faz algum tempo. Termos como Testes Automatizados e Integração Contínua já estão no sangue dos times, mas isso é suficiente? Agile Testing é muito mais que apenas automatizar testes: é enfrentar os desafios e propor soluções que agreguem valor ao produto. Nessa palestra vamos falar de alguns desafios: - Estratégias para data setup em projetos de automação - Como distribuir (na prática) os testes dentro da Pirâmide de Automação de Testes - Desafios que já enfrentamos (por exemplo: como automatizar um login de aplicativo que precisa de um token que chega por SMS?) - Como pensar fora da caixa e agregar valor ao produto usando o mindset de testes
Android Dev Conference 2017 - Automação de Testes na CloudiMasters
Mauro Tardivo Filho - Software Architect na CI&T, fala sobre Automação de Testes na Cloud no Android Dev Conference 2017.
https://eventos.imasters.com.br/android-devconference/
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
O mercado tem exigido cada vez mais rapidez nas entregas dos times de desenvolvimento, para atender as demandas de negócio e manter a competitividade. Para garantir que essas entregas aconteçam no tempo esperado e com qualidade, é muito importante investir em todos os níveis de teste automatizados. Vamos ver quais são esses níveis de teste e alguns exemplos práticos usando Python de testes unitários, integração, funcionais, performance e mutação.
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
Muitas empresas tem adotado uma arquitetura de microserviços em seus projetos, devido a capacidade de fazermos o deploy de cada serviço de forma independente, escalar e manter cada microserviço, além de paralelizar o desenvolvimento entre múltiplos times. Nesse contexto, pretende-se mostrar desafios que temos encontrado na área de qualidade e quais técnicas de desenvolvimento e testes podem ser utilizados.
Obs.: Evolução da apresentação feita originalmente no TDC 2018 (Trilha Testes)
The twelve factor app - Princípios e boas práticas aplicados no mundo realJosé Filipe Lyra
O sucesso no desenvolvimento de software se baseia em boas práticas e simplicidade acima de tudo.
Assim, desenvolvemos nossos projetos baseados nos princípios do "The twelve factor app" (https://12factor.net).
Nesta apresentação mostramos como usamos estes princípios no desenvolvimento da API de anúncios do VivaReal usando tecnologias como Spring Boot, Docker e Kubernetes.
Autores: Glendon Leitão e José Filipe Lyra
Todas as abordagens de testes dentro do ágilElias Nogueira
Palestra apresentada dia 10/11/2012 no Rio Agile Talks (@rioagile) mostrando a importância do Agile Testing e das visões que mudam sobre modelos, como o quadrande de Brian Merick que pode ser mudado/atualizado pelo novo uadrante proposto por Elisabeth Hendrickson, mas onde uma coida não muda: a pirâmide de automação de teste
Material utilizado na primeira parte do evento Viabilidade e Conceitos Básicos de Automação com o QTP, promovido pelo GUTS-RS em 28/abril/2010. Mais em http://guts-rs.blogspot.com
Com a adoção de princípios ágeis, os clientes se deparam com a necessidade de desenvolver, construir e implantar aplicações em larga escala. Junte-se a nós nesta sessão, focada em como usar os serviços da AWS para criar uma plataforma de DevOps para fornecer serviços de Integração contínua (CI) e entrega contínua (CD) que se adaptam à sua necessidade. Uma abordagem de DevOps corporativa é um ponto vital para a adoção de nuvem em escala e, portanto, analisaremos como o CI/CD pode acelerar sua adoção de forma integrada.
Palestrante: Alex Coqueiro
Palestra realizada na Semana Acadêmica do Instituto de Informática da UFRGS. Conteúdo baseado nos conceitos e técnicas propostos no livro Agile Testing de Lisa Crispin e Janet Gregory.
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
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
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
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 | ...