domingo, 2 de maio de 2010

Dando poder aos testes existentes

O post abaixo foi retirado de um artigo de Dawn Haynes que é consultora em teste e instrutora da SQE Trainning.
O artigo pode ser encontrado em http://www.sqetraining.com/file/DawnHaynesArticle.pdf
Vou colocar o artigo na íntegra em português, que apresenta dez maneiras de dar poder aos seus testes de forma mais eficiente e valiosa sem ter diversas alterações na estratégia de teste.


1. Deja vú
A partir de um estado conhecido limpo ou estado inicial, execute um teste ou um cenário. Então, imediatamente, repita o mesmo teste ou cenário, utilizando os mesmos dados (se possível) sem reiniciar ou limpar qualquer dado ou configuração. Isso pode expor problemas com valores-padrão ou estados, fazendo com que a aplicação apresente um diferente comportamento ou saída devido a pequenas variáveis.


2. Ensaboar, enxugar e repetir, e repetir, e repetir
A repetição freqüentemente imita o modelo do uso real do aplicativo ou software. A maioria dos usuários fazem vários ciclos de um pequeno número de operações várias vezes ao dia. Se não testarmos a utilização real da aplicação podemos ter surpresas indesejáveis na aplicação (como o vazamento de memória)


3. A estrada menos viajada
Não siga sempre as instruções, os processos, os passos, ou caminhos óbvios. Muitos de seus usuários não farão esse caminho. Alguns dos defeitos mais caros em produção que eu ví foram encontrados, mas rejeitados como "falta de conhecimento da aplicação" ou não resolvidas pelo motivo "o usuário nunca faria isso".  Mesmo que o seu software só esteja sendo acessado por outros sistemas, é arriscado presumir que os outros sistemas sempre irão interagir com a sua usando o mesmo padrão ou seguindo exatamente os caminhos da especificação ou design.


4. Eu sou um gênio
Utilize a abordagem de perito ou super-usuário. Pegue atalhos, pule etapas, utilize interfaces de linhas de comando, entre pela porta dos fundos, personalize trechos, utilize funcionalidades não documentadas ou use a interface/sistema rapidamente. Muitas vezes sistemas e interfaces com o usuário são projetado para um uso médio (esperado). Procure maneiras de "passar a marcha" na utilização da interface/sistema.


5. Doh
Ao passar por cenários óbvios, comuns ou críticos pare, beije a si mesmo na testa e então tente voltar e corrigir qualquer coisa no caminho, fazer algo que você esqueceu de fazer, editar uma entrada, etc..  Basicamente interrompa a aplicação e mude algo que você fez ao tentar voltar, refaça, substitua, desfaça,ou mude a perspectiva ou modo de utilização. Se seu aplicativo tem uma interface do usuário, especialmente se for baseada em navegador, você pode contar com usuários fazendo algumas destas coisas quando for o mínimo desejado.


6. Pense grande
Especialmente, pense em uma grande quantidade de dados. Durante a vida do seu software é provável encontrar um grande banco de dados, um grande conjunto de dados, arquivos grandes, entradas de valores grandes e grande volume de transações. Encontrando os limites e restrições que são suscetíveis de serem encontradas na produção, a curto prazo, ou no futuro pode ser extremamente valioso em termos de planejamento e execução de implementações de um software de sucesso.


7. Peças do Quebra-Cabeça
Os sistemas são muitas vezes concebidos e construídos em pedaços que são posteriormente montados em uma forma destinada a fornecer um valor para o negócio, usuários ou clientes. Como as peças se encaixam quando o quebra-cabeça é concluído? Pense em amarras as peças juntas em caminhos que podem ou não podem ter sido planejados na fase de criação ou do workflow.


8. Liquidificador: misture, pulse, adicione café e bebida
Misture variáveis, funções, operações, e cenários de uso em vários graus. (misture o normal x o caos)


9. Variações no espaço e tempo continuo
Utilize o sistema de forma lenta (como um novo usuário, usuário 'catando milho', usuário curioso, motorista de domingo) ou muito rápido (como o Ligeirinho). Cada uma destas taxas do sistema em diferentes caminhos. Alterne entre a utilização rápida e lenta. Interrompa um dos modos como uma "pausa para o café", abandone uma operação em fluxo sem salvar ou fechar. Ao viajar através de buracos para chegar lá e para cá entre universos lentos e rápidos, coisas interessantes podem acontecer.


10. Desastres naturais
Considere alguns cenários relacionados com a utilização contrária das funcionalidades ou propósito de uso.  Tente o "teste do sapato no teclado". Ponha um sapato (ou a mão ou uma caneca de café) no teclado (de preferência na tecla Enter) e observe o que vai acontecer. Claro que o teste de "derramar o café sobre o teclado" ou  "arrancar o cabo de alimentação" pode custar um pouco mais caro que os acontecimentos inesperados. Escolha-os sabiamente.

Um comentário:

  1. Olá Elias,

    Muito bom esse post. Particularmente já encontrei alguns problemas em sistemas utilizando algumas dessas estratégias. Claro que nem sempre a gente utiliza uma ou outra, vale da análise do caso.

    Abraços.

    ResponderExcluir