COMO	
  SE	
  TORNAR	
  UM

AGILE	
  TESTER
ELIAS	
  NOGUEIRA
Elias	
  Nogueira
Testador,	
  professor,	
  consultor,	
  blogueiro

@eliasnogueira
eliasnogueira.com
Testes	
  Tradicionais
Analistas

Entendem	
  o	
  produto	
  e	
  
escrevem	
  documentos

Desenvolvedores

Entendem	
  o	
  produto	
  e	
  
escrevem	
  documentos

Código
Testadores

Irão	
  escrever	
  
Plano	
  e	
  Casos	
  de	
  teste
Plano	
  
Teste
Casos	
  
Teste
Testes	
  Tradicionais
Terminou	
  o	
  
desenvolvimento

Início	
  dos	
  Testes

Testes	
  manuais
Reportar	
  bugs
Correção	
  de	
  Bugs

Automatizar
Regressão
Problemas	
  Testes	
  Tradicionais
• Teste	
  trabalha	
  separado	
  da	
  equipe	
  
!

• Não	
  se	
  comunica	
  ou	
  a	
  comunicação	
  é	
  feita	
  
de	
  forma	
  burocrática	
  
!

• Teste	
  depois	
  que	
  o	
  desenvolvedor	
  
terminou	
  	
  codificação	
  
!

• Quando	
  o	
  desenvolvimento	
  atrasa,	
  cortam	
  
tempo	
  de	
  teste
Transição
Agile
Scrum
OpenUp

Kanban

FDD
XP

Cristal
O	
  que	
  é	
  Agile	
  Testing
É	
  uma	
  prática	
  de	
  Teste	
  de	
  Software	
  
que	
  segue	
  os	
  princípios	
  do	
  
desenvolvimento	
  ágil
#1
Aprender	
  sobre	
  Agilidade
• Manifesto	
  Ágil	
  
!
!

• Metodologias	
  de	
  Desenvolvimento

SCRUM

KANBAN
#2
Aprender	
  sobre	
  Agile	
  Testing
Adicionar	
  Valor

Prover	
  Feedback	
  Contínuo
Entregar	
  Valor	
  para	
  Cliente
Comunicação	
  Frente-­‐a-­‐Frente

O	
  Que	
  é	
  um	
  Agile	
  
Tester

Os	
  10	
  Princípios	
  do	
  
Agile	
  Testing

Ter	
  Coragem
Manter-­‐se	
  Simples
Praticar	
  Melhoria	
  Contínua
Responder	
  a	
  mudanças
Auto-­‐Organizado
Focar	
  nas	
  Pessoas
Aproveitar

Aplicar	
  Práticas	
  e	
  
Princípios	
  Ágeis

O	
  MindSet	
  de	
  Agile	
  
Testing
#3
Aprender	
  a	
  trabalhar	
  (e	
  gerar)	
  com	
  
o	
  mínimo	
  de	
  documentação
Isso	
  é	
  um	
  documento	
  que	
  possamos	
  nos	
  basear	
  para	
  
desenvolver	
  e	
  testar	
  uma	
  funcionalidade?
Como	
  um	
  gerente	
  
Eu	
  desejo	
  consultar	
  a	
  quantidade	
  produzida	
  de	
  cupcakes	
  
Para	
  saber	
  o	
  lucro	
  de	
  cada	
  um
#4
Comunicação
3C

Cartão

Conversa

Confirmação
Dinâmica
• Desenhe	
  um	
  rosto	
  qualquer	
  
• 1	
  min	
  para	
  esta	
  tarefa
Dinâmica
• Agora	
  você	
  e	
  a	
  pessoa	
  do	
  seu	
  lado	
  irão	
  
desenhar	
  um	
  único	
  rosto	
  
– 2	
  min	
  para	
  conversarem	
  o	
  que	
  irão	
  desenhar	
  
– 1:30h	
  para	
  ambos	
  desenharem	
  o	
  rosto
Dinâmica
• Agora	
  comparem	
  o	
  rosto	
  que	
  você	
  desenhou	
  
sozinho	
  com	
  o	
  rosto	
  desenhado	
  em	
  conjunto

Adaptação	
  da	
  dinâmica	
  PairDraw:	
  http://www.industriallogic.com/blog/pairdraw-­‐2/
Não	
  ter	
  medo	
  de	
  interrogar	
  o	
  usuário

Para	
  conhecer	
  os	
  tipos	
  de	
  um	
  
triângulo,	
  como	
  um	
  aluno	
  de	
  
matemática,	
  eu	
  quero	
  informar	
  os	
  
lados	
  e	
  saber	
  seu	
  tipo

Vai	
  mostrar	
  na	
  tela?
Tem	
  que	
  desenhar	
  o	
  triângulo?
Se	
  o	
  aluno	
  colocar	
  um	
  lado	
  
inválido
Quais	
  são	
  os	
  tipos	
  de	
  um	
  triângulo
Descrever	
  o	
  resultado	
  do	
  3C
Mostra	
  na	
  tela	
  o	
  tipo	
  de	
  triângulo
Não	
  precisa	
  mostrar	
  graficamente	
  o	
  triângulo
Se	
  informar	
  algum	
  lado	
  inválido	
  apresentar:	
  um	
  dos	
  lados	
  é	
  inválido
Mostrar	
  apenas	
  estes	
  três	
  tipos:	
  
	
  	
  	
  -­‐	
  Isósceles:	
  dois	
  lados	
  iguais	
  
	
  	
  	
  -­‐	
  Escaleno:	
  todos	
  os	
  lados	
  diferentes	
  
	
  	
  	
  -­‐	
  Equilátero:	
  todos	
  os	
  lados	
  iguais
Levantar	
  possíveis	
  testes
Testes	
  Unitários
	
  	
  Informar	
  lados	
  inválidos
	
  	
  Testar	
  as	
  três	
  variações

Teste	
  Aceitação
	
  	
  Testar	
  as	
  três	
  variações
#5
Use	
  uma	
  linguagem	
  comum	
  para	
  
seus	
  casos	
  de	
  teste
BDD
Behavior	
  Driven	
  Development	
  pode	
  ser	
  visto	
  como	
  
uma	
  técnica	
  de	
  desenvolvimento	
  ágil	
  que	
  encoraja	
  
colaboração	
  entre	
  os	
  desenvolvedores,	
  analistas,	
  
QA	
  e	
  o	
  pessoal	
  não	
  técnico	
  (stackeholders)	
  para	
  o	
  
sucesso	
  de	
  um	
  projeto
Modelo
Cenário:	
  <descrição	
  do	
  teste>	
  
Dado	
  <uma	
  pré-­‐condição>	
  
Quando	
  <passo>	
  
Então	
  <resultado	
  esperado>

Aplicação
Cenário:	
  Consultando	
  um	
  triângulo	
  Escaleno	
  

!

Dado	
  que	
  eu	
  estou	
  na	
  página	
  de	
  consulta	
  de	
  triângulos	
  
Quando	
  quando	
  eu	
  informo	
  os	
  lados	
  do	
  triângulo	
  
	
  
|	
  	
  lado1	
   |	
  	
  lado	
  2	
  	
  |	
  	
  lado	
  3	
  	
  |	
  
	
  
|	
  	
  	
  	
  	
  3	
   |	
  	
  	
  	
  	
  	
  4	
  	
  	
   	
  |	
  	
  	
  	
  	
  5	
   	
  	
  |	
  

!

Então	
  o	
  sistema	
  informa	
  que	
  o	
  triângulo	
  é	
  “Escaleno”
#6
Entender	
  “coisas”	
  técnicas
Ruby

HTML

Integração	
  Contínua
Javascript
ATDD

CSS3
Java

Ajax
GIT

BigData
BDD
#7
Programar!!!
A	
  linguagem	
  que	
  o	
  time	
  utiliza	
  
!

Ferramenta	
  que	
  o	
  time	
  use
#6
Tester	
  manualmente	
  (pouco)	
  mas	
  
de	
  forma	
  eficaz!
Teste	
  Exploratório
Simultâneamente	
  ....	
  
...	
  aprender	
  sobre	
  o	
  software	
  
...	
  desenvolver	
  mais	
  testes	
  
...	
  executar	
  testes	
  
!

Usando	
  o	
  feedback	
  do	
  último	
  teste	
  para	
  executar	
  
o	
  próximo!
OBRIGADO!!!	
  
!

eliasnogueira.com	
  
@eliasnogueira

Como se tornar Agile Tester

  • 1.
    COMO  SE  TORNAR  UM
 AGILE  TESTER ELIAS  NOGUEIRA
  • 2.
    Elias  Nogueira Testador,  professor,  consultor,  blogueiro @eliasnogueira eliasnogueira.com
  • 4.
    Testes  Tradicionais Analistas
 Entendem  o  produto  e   escrevem  documentos Desenvolvedores
 Entendem  o  produto  e   escrevem  documentos Código Testadores
 Irão  escrever   Plano  e  Casos  de  teste Plano   Teste Casos   Teste
  • 5.
    Testes  Tradicionais Terminou  o   desenvolvimento Início  dos  Testes Testes  manuais Reportar  bugs Correção  de  Bugs Automatizar Regressão
  • 6.
    Problemas  Testes  Tradicionais •Teste  trabalha  separado  da  equipe   ! • Não  se  comunica  ou  a  comunicação  é  feita   de  forma  burocrática   ! • Teste  depois  que  o  desenvolvedor   terminou    codificação   ! • Quando  o  desenvolvimento  atrasa,  cortam   tempo  de  teste
  • 7.
  • 8.
  • 9.
    O  que  é  Agile  Testing É  uma  prática  de  Teste  de  Software   que  segue  os  princípios  do   desenvolvimento  ágil
  • 10.
  • 11.
    • Manifesto  Ágil   ! ! • Metodologias  de  Desenvolvimento SCRUM KANBAN
  • 12.
  • 13.
    Adicionar  Valor Prover  Feedback  Contínuo Entregar  Valor  para  Cliente Comunicação  Frente-­‐a-­‐Frente O  Que  é  um  Agile   Tester Os  10  Princípios  do   Agile  Testing Ter  Coragem Manter-­‐se  Simples Praticar  Melhoria  Contínua Responder  a  mudanças Auto-­‐Organizado Focar  nas  Pessoas Aproveitar Aplicar  Práticas  e   Princípios  Ágeis O  MindSet  de  Agile   Testing
  • 14.
    #3 Aprender  a  trabalhar  (e  gerar)  com   o  mínimo  de  documentação
  • 15.
    Isso  é  um  documento  que  possamos  nos  basear  para   desenvolver  e  testar  uma  funcionalidade? Como  um  gerente   Eu  desejo  consultar  a  quantidade  produzida  de  cupcakes   Para  saber  o  lucro  de  cada  um
  • 16.
  • 17.
  • 18.
    Dinâmica • Desenhe  um  rosto  qualquer   • 1  min  para  esta  tarefa
  • 19.
    Dinâmica • Agora  você  e  a  pessoa  do  seu  lado  irão   desenhar  um  único  rosto   – 2  min  para  conversarem  o  que  irão  desenhar   – 1:30h  para  ambos  desenharem  o  rosto
  • 20.
    Dinâmica • Agora  comparem  o  rosto  que  você  desenhou   sozinho  com  o  rosto  desenhado  em  conjunto Adaptação  da  dinâmica  PairDraw:  http://www.industriallogic.com/blog/pairdraw-­‐2/
  • 21.
    Não  ter  medo  de  interrogar  o  usuário Para  conhecer  os  tipos  de  um   triângulo,  como  um  aluno  de   matemática,  eu  quero  informar  os   lados  e  saber  seu  tipo Vai  mostrar  na  tela? Tem  que  desenhar  o  triângulo? Se  o  aluno  colocar  um  lado   inválido Quais  são  os  tipos  de  um  triângulo
  • 22.
    Descrever  o  resultado  do  3C Mostra  na  tela  o  tipo  de  triângulo Não  precisa  mostrar  graficamente  o  triângulo Se  informar  algum  lado  inválido  apresentar:  um  dos  lados  é  inválido Mostrar  apenas  estes  três  tipos:        -­‐  Isósceles:  dois  lados  iguais        -­‐  Escaleno:  todos  os  lados  diferentes        -­‐  Equilátero:  todos  os  lados  iguais
  • 23.
    Levantar  possíveis  testes Testes  Unitários    Informar  lados  inválidos    Testar  as  três  variações Teste  Aceitação    Testar  as  três  variações
  • 24.
    #5 Use  uma  linguagem  comum  para   seus  casos  de  teste
  • 25.
    BDD Behavior  Driven  Development  pode  ser  visto  como   uma  técnica  de  desenvolvimento  ágil  que  encoraja   colaboração  entre  os  desenvolvedores,  analistas,   QA  e  o  pessoal  não  técnico  (stackeholders)  para  o   sucesso  de  um  projeto
  • 26.
    Modelo Cenário:  <descrição  do  teste>   Dado  <uma  pré-­‐condição>   Quando  <passo>   Então  <resultado  esperado> Aplicação Cenário:  Consultando  um  triângulo  Escaleno   ! Dado  que  eu  estou  na  página  de  consulta  de  triângulos   Quando  quando  eu  informo  os  lados  do  triângulo     |    lado1   |    lado  2    |    lado  3    |     |          3   |            4        |          5      |   ! Então  o  sistema  informa  que  o  triângulo  é  “Escaleno”
  • 27.
  • 28.
  • 29.
  • 30.
    A  linguagem  que  o  time  utiliza   ! Ferramenta  que  o  time  use
  • 31.
    #6 Tester  manualmente  (pouco)  mas   de  forma  eficaz!
  • 32.
    Teste  Exploratório Simultâneamente  ....   ...  aprender  sobre  o  software   ...  desenvolver  mais  testes   ...  executar  testes   ! Usando  o  feedback  do  último  teste  para  executar   o  próximo!
  • 34.