testando
so!ware como um verdadeiro profissional

             @andrefaria
Referências
No mundo real
usuários fazem
coisas malucas
Lançamos so!ware que
não está preparado para
   lidar com o que se
  encontra depois do
         release
Você tenta antecipar
todas as fontes de falhas,
    mantém potenciais
  problemas em mente,
escreve testes para validar
 todas as condições que
      pode imaginar.

  Ainda assim há espaço
para falhas, você não pode
        testar tudo.

  São variações demais.
Testes exploratórios são
   uma maneira de se
   navegar por essas
   variações infinitas
Você utiliza suas
 habilidades para
observar e analisar
 para adaptar sua
 investigação em
    tempo real
Não trata-se apenas
de testar sem casos de
testes documentados
 ou planos de testes
“Exploratory Testing is a style of
 so!ware testing that emphasizes
      the personal freedom and
   responsibility of the individual
tester to continually optimize the
quality of his/her work by treating
    testing related learning, test
  design, test execution, and test
  result interpretation as mutualy
  supportive activities that run in
  parallel thoughout the project.”
                  James Bach
Executar um conjunto de
 testes pré-planejados de
forma repetível (testes de
   regressão) e realizar
 testes exploratórios são
    duas coisas que se
   completam, não que
         competem
Testes de
Regressão tocam
   apenas uma
pequena parte de
  um mundo de
 possibilidades.
Faça testes exploratórios em
sessões com tempo definido

      Experimente e
    tome notas de suas
descobertas para uso futuro
Toda aventura
  começa com um
mapa, prepare suas
jornadas, e começe
     a explorar
lora r o
 E xp            de
        imento
 re ceb           com
        ado rias         de
 m  erc            ção
            de inje
   aqu es           Sc ript
at              ava
            e J
    S  QL
ane  iras
     obr ir m
Desc           r u   ma
       rec ebe
   de
                cal   com
            fis
    no  ta
                     inválida.
          uta ção
     trib
Na Medida Certa
 nem muito genérico, nem muito específico
Impacto nos
Requisitos não
  funcionais
   performance
  escalabilidade
  confiabilidade
Dados Legados
Pense no
que poderia
 dar errado
Pense nas interações com
funcionalidades já existentes
É difícil de ver aquilo que você
     não está procurando
      http://www.youtube.com/watch?v=IGQmdoK_ZfY
Observar bem é uma das habilidades
   mais difíceis de desenvolver
Ao testar você
deve ir além das
   perguntas
    óbvias e
  superficiais
Fique Atento ao
Console e aos Logs
aprenda a alterar os níveis
   de log da Aplicação
Procure por variáveis que podem
      afetar o comportamento do
   sistema de formas interessantes
       campos        espaço em disco
memória         querystrings
         parâmetros configurações
     inputs cliques SO
versões                       browser
          velocida de entrada
Teste com Dados e Sem Dados
Troque as
  Posições,
  Ordens, e
 Formatos, e
Tamanhos das
   Coisas
Cuidado com Coisas Escondidas
  que podem ser Manipuladas
Testes
Exploratórios tem
 há ver com fazer
  perguntas que
   nunca foram
perguntadas antes
Quais são os
maiores riscos do
  seu sistema?
 Começe por aí.
Teste a Consistência
 Busque por coisas que
você consegue fazer em
   uma tela mas não
   consegue fazer em
   outra semelhante
Fique de olho na
  segurança dos
dados: assegure-se
 que informações
   confidenciais
   sempre sejam
  criptografadas
Identifique os
 Sempres e os
Nuncas de seu
   Sistema
Cuidado com os
botões de voltar e
avançar (e teclas
especiais) na Web
Personas
  de forma o uso do
sistemas varia de uma
 persona para outra?
Teste Eventos
    Simultâenos
 Enquanto Apura o
Resultado, exclui-se
  uma nota fiscal...
Fique de Olho nos
      Estados
   Ativo, Inativo,
 Cancelado, Pago,
    Pendente,
Auditado, Quitado,
 Prorrogado, Vivo,
    Morto, etc.
Verbos e Estados
Pense nas ações do
 sistema, e quais
  são válidas em
 cada um estados
     possíveis
Teste Interrupções

Tempo esgotado,
 logout, matar o
    processo,
    hibernar,
   desconectar
Explore Bugs
Conhecidos para
Descobrir a Causa
Escreva Testes de
    Aceitação
 Automatizados
     usando Fitnesse,
        Cucumber,
      Selenium, etc.
“Todo defeito é
100% reprodutível
   se você puder
    descobrir e
controlar todas as
   variáveis que
     afetam o
 comportamento”
             Explore It
Pergunte: E se?
Muito
Obrigado!


                  @andrefaria
       http://blog.andrefaria.com
       http://blog.blueso!.com.br

Testando como um profissional