testes ágeis

Post on 27-Jun-2015

292 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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!

vitor.pelizza@kanoah.com

twitter.com/kanoahinc

facebook.com/kanoahinc

linkedin.com/company/kanoah

(48) 3285 5615

www.kanoah.com

top related