Oracle / Oráculo

Olá!

Depois do Coaching que tive com o James Bach, coloquei como próximo tema de estudo o Oracle… apesar de pesqusiar bastante, posso dizer que o melhor resumo que vi foi o comentário do Stefan Teixeira (indico darem uma olhada no site dele também) :

” Basicamente, o oráculo é no que você vai se basear para saber se um teste passou ou não. Pode ser uma especificação, documentação, um outro sistema, etc.”

Partindo disso nós sabemos que um oráculo é uma base “comparativa” (vamos trabalhar melhor o uso dessa palavra no decorrer do post), aonde vê o resultado do teste efetuado e compara ele com alguma outra coisa… Mas com o que exatamente?

Essa é a parte legal da história, de acordo com diversas opiniões que coletei, o oráculo pode ser um documento, um sistema, uma versão anterior do sistema sendo testado… e até mesmo algo abstrato, como o conhecimento do tester, ou considerar o público alvo da ferramenta…

Talvez você pense :

“Mas se você está se baseando na sua própria experiência, ou no que o público alvo está esperando… então não está sendo um teste comparativo!”

Nesse ponto que gostaria de trabalhar melhor o uso do verbo “comparar”, muitas vezes nós estamos tão acostumados a usar uma palavra de uma forma tão simples que esquecemos o quão abrangente ela é, e sim, você pode comparar uma experiência (como usar um software) com o seu conhecimento (no qual provavelmente envolve a utilização de outros softwares), estamos  constantemente comparando cada detalhe e situação que passamos com outras que já vivemos… [quis entrar nesse detalhe pois acho importante pararmos para pensar mais a fundo em alguns detalhes que podem passar despercebidos pela rotina, tentar pensar em detalhes e formas diferentes durante seu dia-a-dia pode parecer besteira…mas pode ajudar muito em horas improváveis, como por exemplo durante um teste, afinal se tornamos o “pensar diferente”  e o “pensar detalhadamente” parte da rotina ele se tornará natural na vida, e inclusive durante os testes…e sim, estou lendo “O livro dos cinco anéis”, por isso a empolgação rs]

Agora voltando ao oráculo, se podemos comparar o resultado do teste com tantas coisas, de tantas formas…como e por onde me basear?

Vou pedir para vocês não se prenderem aos  nomes/títulos que eu colocar, pois ao pesquisar você vai perceber que as vezes achamos nomes diferentes para a mesma situação, e você pode achar nomes/títulos muito mais formais e bonitinhos sem muito esforço, estou escolhendo os meus com o intuito de facilitar a compreensão.

Baseado em documentação – Acredito que essa é uma forma bem comum de testar e planejar os testes, quando temos um documento explicando as funcionalidades do software, um fluxograma e/ou layouts fica muito mais fácil saber  o que esperar.

Exemplo: Cliquei em salvar e está mostrando uma mensagem no centro da página “Conteúdo salvo!” com letras vermelhas.

Na documentação está escrito “Ao salvar deve-se aparecer a mensagem “O conteúdo foi salvo!” com letras amarelas na parte inferior da página.

Se compararmos as duas situações fica claro que tem alguma coisa errada…

Baseado em outro sistema – As vezes estamos testando um sistema que tem diversas similaridades com outros sistemas já criados, e nós podemos nos basear neles para ver se o resultado de um teste foi satisfatório ou não.

Exemplo: Digamos que vamos testar a função “Ligar” de  um novo modelo de smartphone, já usamos esses tipos de aparelhos a séculos e sabemos como eles se comportam… Digitamos o número, clicamos em ligar (normalmente aquele botão verde com um fone antigo desenhado), costuma aparecer a mensagem “Ligando para -número discado-“, se o número estiver salvo na agenda aparece a mensagem “Ligando para -nome da pessoa na agenda-“, o smartphone completa a ligação e começa a chamar… 

Se você clicar em “Ligar” e a tela ficar toda vermelha…bem alguma coisa está bem diferente do esperado, e não precisamos de nenhum documento pra chegar nessa conclusão, vale a pena se informar se aquele é o resultado esperado pelo desenvolvedor do celular (vai que ele quer inovar de um jeito que a gente não entende), ou se é realmente um bug.

Baseado em versões antigas do mesmo sistema – Outras vezes vamos testar alguma atualização, e bem… se já usamos aquela ferramenta alguma vez anteriormente provavelmente iremos ter alguns momentos “Opa, mas você nunca fez isso antes”, e isso pode ser algo positivo (como por exemplo a própria melhoria que veio com a atualização), ou um comportamento inesperado.

Exemplo: Vamos testar uma atualização de uma rede social?

Pra quem usa essa rede social direto, está acostumado com o botão “Salvar Status” do lado direito da caixa de texto “Status”, o botão tem a mesma altura da caixa de texto, e uma largura igual a sua altura, dessa forma ele parece um quadrado que é uma extensão da caixa de status, e ao clicar em “Salvar Status”  o texto digitado em “Status” fica cinza e sem a possibilidade de editar o mesmo.

Após a atualização percebemos que a primeira diferença é que o botão “Salvar Status” agora está abaixo da caixa “Status”, ainda parece uma extensão, mas por estar abaixo ele se tornou um retângulo bem fino para acompanhar o formato da caixa “Status”, ou seja ele tem a mesma largura que a caixa “Status”, mas uma altura bem menor. E ao salvar o status o texto ainda pode ser editado. São boas diferenças se formos comparar… se formos dar uma estudada sobre a atualização descobrimos que o alteração do botão “Salvar Status” era uma melhoria de layout prevista, mas não deveria ter alterado a questão do campo “Status” não ser mais editável, ou seja uma melhoria e um bug.

Baseado na experiência do tester – Ao meu ver isso fica com muita cara de teste informal, mas deve ser coisa minha… Mesmo que você pegue um aplicativo que é uma novidade, nunca usou nenhum aplicativo similar, e está sem nenhuma documentação… isso não te impede de testar, os aplicativos costumam ter características similares, independente das suas funções… e também sabemos onde determinados erros costumam aparecer

Exemplo: Bem…Normalmente campos “Senhas” pedem alguns critérios de segurança, por exemplo misturar letras e números… ter um tamanho mínimo… se digitamos como senha “A” e o sistema aceita…podemos nos atentar a um provável erro.

Baseado no que é esperado pelos usuários – Bem, da mesma forma que nós temos nossas experiências com softwares, os usuários também tem… não parece tão diferente do que o teste baseado na experiência do tester, mas acaba sendo algo menos técnico e mais voltado para a UX (User Experience), dificilmente um usuário faria o teste da senha que coloquei acima, mas ele também iria estranhar algumas coisas.

Exemplo: Os usuários sabem que um botão “Salvar” vai salvar alguma coisa, e provavelmente vai salvar o que foi alterado na tela em que ele está localizado, ou do campo em que ele está próximo, também imaginam que um aplicativo com o nome “Simulador de barulho de motor carro” deve simular o barulho de motor de um carro, se você apertar um botão vermelho no meio da tela e ele fizer o barulho de uma buzina… bem vai ser no mínimo estranho.

———-

Poderia colocar outros exemplos e formas de oráculo, mas espero que os exemplos acima já ajudem a dar uma clareada na mente de vocês, pelo menos o bastante para pensar no assunto 😉

Acho importante ressaltar que você não é obrigado a usar um tipo de oráculo em determinada em cada tipo de situação, as vezes você acaba juntando todos, por exemplo o teste baseado na sua experiência, você acaba usando ele em qualquer teste que fizer, independente das variaveis, no final das contas o oráculo pode ser algo bem abstrato

Um último exemplo: Se você for testar a atualização de um aplicativo de música para ser instalado Windows, você vai ter uma versão anterior do aplicativo como referência, assim como outros aplicativos similares (incluindo o próprio Media Player), pode ser que você tenha uma documentação com vários detalhes do que mudou no aplicativo, e durante o teste você decide apertar um “F1” (por padrão costuma ser o “Ajuda” do windows) e descobre que o botão não abre a “Ajuda”, mas sim o “controle de volume”, esse teste nunca foi feito em nenhuma outra versão do aplicativo, não está exemplificada na documentação… mas pela sua experiência, e que por se tratar de um atalho padrão do windows é algo que muitos usuários esperam… pra que mudar esse padrão?

Pode ser algo a ser levantado junto com o desenvolvedor do aplicativo, não é um erro, mas é uma possível melhoria. e você chegou nela numa mistura de todos os oráculos acima =]

Bem é isso pessoal, espero que o post ajude vocês, foi uma pesquisa bem agradável de fazer, aconselho a pesquisarem um pouco mais sobre o assunto além do que foi dito aqui 😉

Vejam esse post apenas como um ponto de partida.

Qualquer dúvida ou melhoria referente ao assunto abordado será muito bem vinda nos comentários

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s