Upload
vitor-pelizza
View
291
Download
0
Embed Size (px)
DESCRIPTION
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.
Citation preview
Agile testing: como aumentar a
qualidade do produto
Vitor Pelizza Co-‐founder @ Kanoah Software
Vitor Pelizza Co-‐founder @ Kanoah Software
Ciências da Computação -‐ UFSC MBA em Gerenciamento de Projetos -‐ FGV Certified ScrumMaster (2008)
Base do bolo Recheio Cobertura
Cupcake Bolo simples Bolo de casamento
Fonte: http://blog.intercom.io/start-with-a-cupcake/
Fonte: http://www.targetprocess.com/blog/2008/09/waterfall-got-you-down-with.html
Foco na atividade. Fatia horizontal
Foco na funcionalidade. Fatia vertical
Várias funcionalidades no ciclo de produção
Poucas funcionalidades no ciclo de produção
Waterfall
Agile
Output
Outpu
t
Validar se o que foi desenvolvido atende aos requisitos e corrigir
desvios
Suporte a equipe de desenvolvimento e ao processo de descoberta através do feedback
E na prática?
TODO DOING TEST DONE
xUnitTDD
Integração contínua
Pair programming
Revisão de código
Boa base tecnológica
Iterações com entregas funcionando
Cobertura de testes
Suporte a equipe
Feedback
E as FEATURES mais importantes?
Manual ou AUTOMATIZADO?
Será que está ok para o CLIENTE?
Estratégia
Saber COMO testar
Saber QUANDO testar
Saber O QUE testar
Saber QUEM testa
Agile tester!!!
Abraça a MUDANÇA
Colabora tanto com o pessoal TÉCNICO quando de NEGÓCIO
Entende o conceito de se utilizar testes para documentar REQUISITOS
e guiar o DESENVOLVIMENTO
O que é?
Macaquinho
Estagiário de outra área profissional
Inexperiente
O que não é?
Por onde começar?
Os Quadrantes do Teste Ágil
Q1Q2 Q3
Q4
Aux
iliam
o time
Critica
m o produ
to
Tecnologia
Negócio
Testes unitáriosTestes de componentes
Testes exploratórios
Testes de UXTestes A/B
Testes de Performance
Testes de Carga
Testes de Segurança
Automatizado e Manual
Automatizado
Manual
Ferramentas
Testes funcionais
Exemplos
Protótipos
Simulações
Q1
Aux
iliam
o time
Tecnologia
Testes unitáriosTestes de componentes
Automatizado
Qualidade interna
DESENVOLVEDOR Design do código
Confiança para alterar
Feedback contínuo e rápido
Deve ser considerado parte do
desenvolvimento
Integração contínua
Q1
Aux
iliam
o time
Tecnologia
Testes unitáriosTestes de componentes
Automatizado
xUnitIntegração Contínua
SCM
Q2
Aux
iliam
o timeNegócio
Testes funcionais
Exemplos
Protótipos
Simulações
Automatizado e Manual
Confirmam o comportamento desejado
Qualidade externaPodem ter intersecção com testes baixo nível
A maioria necessita automação: cenário
controlado
Regra de negócio versus UI
Feedback razoável
Integração contínua
DESENVOLVEDORAGILE TESTER
Q2
Aux
iliam
o timeNegócio
Testes funcionais
Exemplos
Protótipos
Simulações
Automatizado e Manual
Elicitar requisitos e exemplosChecklists
Mapas mentais Planilhas
Testes "abaixo da UI"
Testes através da UIDiagramas de fluxo Mock-‐ups
Q3
Critica
m o produ
to
Negócio Manual
Design do produto
Somente pessoas podem fazê-‐lo
Simulam o usuário real
Oportunidade para novas ideias e melhorias de user stories
AGILE TESTER
Testes exploratórios
Testes de UXTestes A/B
Q4
Critica
m o produ
to
Tecnologia
Testes de Performance
Testes de Carga
Testes de Segurança
Ferramentas
Testam características não funcionais
Necessitam de ferramentas específicas
Guia de arquitetura e escolha de tecnologias
Não devem ser deixados para o final pois pode ser tarde demais para realizar mudanças necessárias
DESENVOLVEDOR
Q1Q2 Q3
Q4
Aux
iliam
o time
Critica
m o produ
to
Tecnologia
Negócio
Testes unitáriosTestes de componentes
Testes de Performance
Testes de Carga
Testes de Segurança
Automatizado e Manual
Automatizado
Manual
Ferramentas
Testes funcionais
Exemplos
Protótipos
Simulações
Testes exploratórios
Testes de UXTestes A/B
Manual X
Automatizado
Mike Cohn - http://martinfowler.com/bliki/TestPyramid.html
Vola
tilid
ade
Cob
ertu
ra
Cus
to
Feed
back
Neg
ócio
Tecn
olog
ia
Dan North - https://speakerdeck.com/tastapod/accelerating-agile-testing
Determinístic
o
Aleatório
Automatizado
Manual
Testes unitários
BDD
TDD
Scripts
Voláteis
Caros
Carga / Performance
Exploratórios
Usabilidade
Testes A/B
Nebuloso"God data"
Caótico
Dan North - https://speakerdeck.com/tastapod/accelerating-agile-testing
Determinístic
o
Aleatório
Automatizado
Manual
Testes unitários
BDD
TDD
Carga / Performance
Exploratórios
Usabilidade
Testes A/B
Agile Developer
Agile TesterScripts
Voláteis
Caros
Nebuloso"God data"
Caótico
"Chato"
"Estranho"
COMO
QUANDO
O QUE
QUEM
Product, Release e Sprint
Roadmap do produto
Release 1 Release 2 Release 3
Sprint 0 Sprint 1 Sprint 2
Risco, impacto e custo
Plano de teste
Análise de risco e plano de mitigação
Ambiente e infraestrutura
Considera marcos e entregas
Lightweight
Considera diferentes tipos de testes
Dados necessários para os testes
Resultados esperados
COMO
QUANDO
O QUE
QUEM
Ok. Mas eu trabalho com software legado. E agora?
Estudo de Caso
Software legado: mais de 2 milhões de linhas de
código
Cobertura de testes < 1%
Inúmeras configurações específicas por cliente
Ciclo manual de testes ad hoc na release: 2
semanas
Estratégia!!!
1) Análise de riscosFuncionalidade Risco Impacto Frequência de
alteração Prioridade
Consolidação de pagamentos Médio Alto Média 2
Recebimento de pagamentos Alto Alto Alta 1
Transferência de recursos Alto Baixo Baixa 3
Relatório de despesas Baixo Médio Alta 4
2) Cobertura do sistema
Testers da equipe do produto escrevendo casos de teste
Equipe paralela implementando testes automatizados de UI
3) Integração contínua
4) Visibilidade e feedback
• Consolidação de pagamentos • CT1: bônus extra (passed) • CT2: diferentes cargos (passed) • CT3: ex-funcionários (fail)
• Stacktrace: … • Screenshot: …
• Transferência de recursos: • CT1: …
d) Relatórios customizados:
b) Análise do Sonar
a) Número de defeitos
c) Percentual de cobertura
5) Manutenção
A equipe do produto recebe os testes automatizados rodando na integração contínua e
passa a dar suporte
Com uma rede de segurança garantindo o funcionamento em alto nível, ganha-‐se confiança
para realizar refactorings e testes baixo nível
Finalizando…
Explore as diversas técnicas de teste, priorize e faça uma análise de risco
Todos tem responsabilidade pela qualidade
Faça o planejamento de seus testes de acordo com seu cenário: como, quando, o que e quem
O testador ágil é um profissional experiente com habilidades de teste específicas
Agile Testing
Lisa CrispinJanet Gregory
Working Effectively with Legacy Code
Michael Feathers
Agile Estimating and Planning
Mike Cohn
Obrigado!
twitter.com/kanoahinc
facebook.com/kanoahinc
linkedin.com/company/kanoah
(48) 3285 5615
www.kanoah.com