AGILE TESTING
Qualidade do Discovery ao Deploy
Eduardo Cini

QA Analyst - Concrete Solutions

Certified Tester: BSTQB/CTFL

Certified Agile: ScrumMaster - ProductOwner - Kanban Trainning
eduardo.cini@concrete.com.br
https://www.linkedin.com/in/eduardocini/
@eduardocini - Facebook
"As organizações de alta performance gastam
22% menos tempo em atividades não planejadas
e retrabalho. Como resultado, elas são capazes de
gastar 29% mais tempo para investir em novas
features”
2016 State of DevOps Report
Procurar continuamente
maneiras do time fazer seu
melhor trabalho para entregar
software de qualidade.
CRISPIN & GREGORY (Agile Testing)
MindSet
Tradicional X Ágil
Procura Bug Previne Bug
Garante que os requisitos sejam
atendidos
Resistentes à mudança
Qualidade é responsabilidade
do testador
Trabalha separado do time
Teste é uma fase
Teste no final do desenvolvimento
Garante que as expectativas
sejam claras
Teste durante o desenvolvimento
Teste é uma atividade
Trabalha junto ao time
Qualidade é responsabilidade
do time
Aceita novas ideias
A Practical Guide to Testing in DevOps
Katrina Clokie
Especificação
Testes
Integração e Entrega
Contínua
Tríade de Qualidade.
A importância de testes
em diferentes níveis
Automated GUI Tests
Integration
Tests
Unit
Tests
Manual Tests
“Ideal”
Unit
Service
UI
Manual
X
“Sorvete” | Anti-padrão
Pirâmide | Automação de Testes
Pirâmide | Automação de Testes
Cupcacke | anti-padrão
QA
Como parte do time
Ajuda a descobrir o produto certo
Construir o produto certo
X
Construir certo o produto
Identificando Visão
de Produto É Não é
Faz Não faz
É…
Não é…
Faz…
Não faz…
Como você avalia se
uma funcionalidade está
especificada o suficiente?
Produto: Livraria Online
Funcionalidade: Conceder Descontos
Estoria:
Como gerente da Livraria XPTO,
Gostaria de conceder descontos,
Para aumentar a quantidade de
vendas online.
Conceder Descontos
- Existe um limite de desconto? 20%? 30%?
- Categorias com frete grátis terão desconto?
- Todas as categorias de livros poderão participar?
- Livros em pré-reserva entrarão nos descontos?
- Existirá uma quantidade mínima de livros para obter o
desconto?
Princípios de Testes Ágeis
! Forneça Feedback Contínuo;
! Entregue valor para o cliente;
! Buscar a comunicação olho no olho;
! Tenha coragem;
! Mantenha a simplicidade;
! Pratique a melhoria contínua;
! Responda a mudanças;
! Seja auto-organizado;
! Foque nas pessoas;
! Aproveite.
Testes
Automatizados
Testes
Automatizados
Feedback mais rápido;
Testes distribuídos pela Pipeline;
Garantia de regressão;
Especificação executável do sistema.
Testes Unitários
Feedback extremamente rápido.
10min. build (eXtreme Programming)
Testes de valores limite, diferentes
combinações etc
Cobertura de Código
Test Driven Development
Segurança para fazer mudanças (XP)
Ferramentas de Testes
Unitários
http://junit.org/junit4/
http://www.nunit.org/
http://testng.org/doc/index.html
https://phpunit.de/
http://jasmine.github.io/
https://mochajs.org/
http://robolectric.org/
http://rspec.info/
https://goo.gl/1zW1Ir
Cobertura & Análise
Estática
Porcentagem de código sendo
exercitado por testes
Análise de acordo com regras:
Estilo (indentação, comentários)
Boas práticas (duplicação de
código, tamanho de métodos)
Ferramentas de
Cobertura
https://coverage.readthedocs.io/en/coverage-4.0.3/
https://github.com/colszowka/simplecov
http://emma.sourceforge.net/
https://github.com/jacoco/jacoco
https://www.ncover.com/
http://blanketjs.org/ https://coveralls.io/
Ferramentas de Análise
Estática
http://www.sonarqube.org/
https://codeclimate.com/
https://github.com/es-analysis/plato/
http://checkstyle.sourceforge.net/
http://findbugs.sourceforge.net/
https://www.pylint.org/
https://stylecop.codeplex.com/
Testes de Mutação
Testar seus Testes Unitários
Ferramenta introduz mutações no seu
código e executa os testes unitários
Se os testes falharem = OK!
Se os testes passarem = NOK!
Ferramentas de Testes
de Mutação
http://pitest.org/
https://pypi.python.org/pypi/MutPy
http://visualmutator.github.io/web/
https://ninjaturtles.codeplex.com/
https://github.com/mbj/mutant
http://jumble.sourceforge.net/
Testes de Serviço
Depois dos Testes de Unidade e antes
dos Testes de UI
Testar seu app + módulos componentes,
banco de dados
Sem interface
Integração/Componentes
Contratos
API/Webservices
Ferramentas de Testes
de Serviço
Testes de User Interface
Lentos :(
Fluxos da aplicação
Diferentes browsers (IE, Firefox,
Chrome, Safari & Headless)
Mobile
Testes de User Interface
Testes de Capacidade
Carga
Stress
Ambiente de teste de capacidade
Métricas
Ferramentas de Testes
de Capacidade
Atuação na Sprint
Refinamento Planning Iteração Review
- Pensar em cenários
- Questionar os critérios
- Começar a pensar em
como testar
- Ajudar no mapeamento
dos fluxos
- Tarefas de Teste:
- Qual nível de automação
- Ambiente
- Massa de dados
- Regressão
- Novos tipos de teste?
- Escrever cenários
- Dividir os testes de
acordo com a pirâmide
- Implementar testes
automatizados
- Fazer testes
exploratórios
- Pair c/ desenvolvedores
- Apresentar os testes
automatizados de
interface e os cenários
-
- Testes sendo executados
no CI
Em conjunto
com Designer
Em conjunto
com DevOps Em conjunto com
Desenvolvedores
Em conjunto com
PO + Designer
Procurar continuamente
maneiras do time fazer seu
melhor trabalho para entregar
software de qualidade.
CRISPIN & GREGORY (Agile Testing)
“
OBRIGADO!
@eduardocini
eduardocini@gmail.com
eduardo.cini@concrete.com.br
Centro
Av. Presidente Wilson,
231 - 29º andar
(21) 2240-2030
Cidade Monções
Av. Nações Unidas,
11.541 - 3º andar
(11) 4119-0449
Savassi
Av. Getúlio Vargas, 671
Sala 800 - 8º andar
(31) 3360-8900
www.concrete.com.br

Agile Testing - Qualidade do Discovery ao Deploy