testes ágeis

59
Agile testing: como aumentar a qualidade do produto

Upload: vitor-pelizza

Post on 27-Jun-2015

291 views

Category:

Technology


0 download

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.

TRANSCRIPT

Page 1: Testes ágeis

Agile  testing:  como  aumentar  a  

qualidade  do  produto

Page 2: Testes ágeis

Vitor  Pelizza  Co-­‐founder  @  Kanoah  Software

Page 3: Testes ágeis

Vitor  Pelizza  Co-­‐founder  @  Kanoah  Software

Ciências  da  Computação  -­‐  UFSC  MBA  em  Gerenciamento  de  Projetos  -­‐  FGV  Certified  ScrumMaster  (2008)

Page 4: Testes ágeis

Base  do  bolo Recheio Cobertura

Cupcake Bolo  simples Bolo  de  casamento

Fonte: http://blog.intercom.io/start-with-a-cupcake/

Page 5: Testes ágeis

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

Page 6: Testes ágeis

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

Page 7: Testes ágeis
Page 8: Testes ágeis

E  na  prática?

Page 9: Testes ágeis
Page 10: Testes ágeis
Page 11: Testes ágeis

TODO DOING TEST DONE

Page 12: Testes ágeis

xUnitTDD

Integração  contínua

Pair  programming

Revisão  de  código

Page 13: Testes ágeis

Boa  base  tecnológica

Iterações  com  entregas  funcionando

Cobertura  de  testes

Suporte  a  equipe

Feedback

Page 14: Testes ágeis
Page 15: Testes ágeis

E  as  FEATURES  mais  importantes?  

Manual  ou  AUTOMATIZADO?  

Será  que  está  ok  para  o  CLIENTE?

Page 16: Testes ágeis

Estratégia

Page 17: Testes ágeis

Saber  COMO  testar

Saber  QUANDO  testar

Saber  O  QUE  testar

Saber  QUEM  testa

Page 18: Testes ágeis

Agile  tester!!!

Page 19: Testes ágeis

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  é?

Page 20: Testes ágeis

Macaquinho

Estagiário  de  outra  área  profissional

Inexperiente

O  que  não  é?

Page 21: Testes ágeis

Por  onde  começar?

Page 22: Testes ágeis

Os  Quadrantes  do  Teste  Ágil

Page 23: Testes ágeis

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

Page 24: Testes ágeis

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

Page 25: Testes ágeis

Q1

Aux

iliam

 o  time

Tecnologia

Testes  unitáriosTestes  de  componentes

Automatizado

xUnitIntegração  Contínua

SCM

Page 26: Testes ágeis

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

Page 27: Testes ágeis

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

Page 28: Testes ágeis

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

Page 29: Testes ágeis

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

Page 30: Testes ágeis

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

Page 31: Testes ágeis

Manual  X  

Automatizado

Page 32: Testes ágeis

Mike Cohn - http://martinfowler.com/bliki/TestPyramid.html

Vola

tilid

ade

Cob

ertu

ra

Cus

to

Feed

back

Neg

ócio

Tecn

olog

ia

Page 33: Testes ágeis

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

Page 34: Testes ágeis

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"

Page 35: Testes ágeis

COMO

QUANDO

O  QUE

QUEM

Page 36: Testes ágeis

Product,  Release  e  Sprint

Roadmap  do  produto

Release  1 Release  2 Release  3

Sprint  0 Sprint  1 Sprint  2

Page 37: Testes ágeis

Risco,  impacto  e  custo

Page 38: Testes ágeis

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

Page 39: Testes ágeis

COMO

QUANDO

O  QUE

QUEM

Page 40: Testes ágeis

Ok.  Mas  eu  trabalho  com  software  legado.  E  agora?

Page 41: Testes ágeis

Estudo  de  Caso

Page 42: Testes ágeis

Software  legado:  mais  de  2  milhões  de  linhas  de  

código

Page 43: Testes ágeis

Cobertura  de  testes  <  1%

Page 44: Testes ágeis
Page 45: Testes ágeis

Inúmeras  configurações  específicas  por  cliente

Page 46: Testes ágeis

Ciclo  manual  de  testes  ad  hoc  na  release:  2  

semanas

Page 47: Testes ágeis
Page 48: Testes ágeis

Estratégia!!!

Page 49: Testes ágeis

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

Page 50: Testes ágeis

2)  Cobertura  do  sistema

Testers  da  equipe  do  produto  escrevendo  casos  de  teste

Equipe  paralela  implementando  testes  automatizados  de  UI

Page 51: Testes ágeis

3)  Integração  contínua

Page 52: Testes ágeis

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

Page 53: Testes ágeis

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

Page 54: Testes ágeis

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

Page 55: Testes ágeis

Agile  Testing

Lisa  CrispinJanet  Gregory

Page 56: Testes ágeis

Working  Effectively  with  Legacy  Code

Michael  Feathers

Page 57: Testes ágeis

Agile  Estimating  and  Planning

Mike  Cohn

Page 58: Testes ágeis
Page 59: Testes ágeis

Obrigado!

[email protected]

twitter.com/kanoahinc

facebook.com/kanoahinc

linkedin.com/company/kanoah

(48) 3285 5615

www.kanoah.com