Bug Box

Qualidade e Testes de software

Testes exploratórios – Parte 2

.

Finalmente, o segundo post sobre Testes exploratórios….

Neste serão tratadas estratégias utilizadas para potencializar os seus benefícios, e realizar esta atividade de maneira mais assertiva, sendo elas: Estratégia de questionamento, Heurística, Fontes e Oráculos.

 

1.       ESTRATÉGIA DE QUESTIONAMENTO

 

A estratégia de questionamento consiste em escrever uma pergunta e tentar responde-la através de ações no software.

Kaner e Tinkham (2003) explicam que podemos ver cada caso de teste como uma pergunta que o testador faz ao produto. Estas perguntas geralmente são: “Você (o software) pode fazer isso?” ou “O que acontece se eu fizer isso?” Cada questão “respondida corretamente” pode representar o aumento da nossa confiança na qualidade deste software.

Ainda de acordo com os autores, quando consideramos os testes sendo realizados desta maneira, transformamos o problema de projetar um conjunto adequado de casos de testes em projetar um conjunto de questões que nos ajudam a obter um direcionamento dos testes que precisamos realizar. Contudo, assim como casos de teste, o conjunto de possíveis perguntas que poderíamos fazer é infinita, por isso é necessário determinar como gerar uma lista de perguntas produtivas e gerenciáveis. Isso pode ser feito através da percepção do que é importante/prioritário no produto, bem como quais funcionalidades apresentam maior risco.

De acordo com estas informações, pode-se utilizar como exemplos da estratégia de questionamento, as duas listas de questões genéricas abaixo:

Ao testar um relatório, podemos lhe fazer as seguintes perguntas:

  • O seu cabeçalho está exibindo as informações corretas?
  • Seus totais estão corretos?
  • Os dados que você está exibindo, estão consistentes com os dados que eu inseri no sistema?
  • Você está sendo exibido apenas para usuários credenciados? (Permissão de acesso)
  • Os dados que você está exibindo estão de acordo com o filtro/contexto que eu selecionei?
  • Se eu deixar de cadastrar no sistema uma informação necessária para sua geração, como você se comporta? (exibe mensagens tratadas, modifica a forma de geração, etc.)
  • Seus campos estão comportando a quantidade de caracteres necessária? (saindo informações cortadas, por exemplo)
  • Se eu possuir muitos dados, você respeita o tempo tolerável para ser gerado? (desempenho).

Ao testar uma tela de cadastro, podemos perguntá-la:

  • Você está validando corretamente os registros obrigatórios?
  • Os seus campos estão todos alinhados?
  • Você deveria me deixar cadastrar dois registros iguais?
  • O seu tab-order está correto?
  • Você poderia aceitar este tipo de caracteres neste(s) campo(s)?

 

 2.       HEURÍSTICA

 

Segundo o dicionário, Heurística significa:

  1. Arte de inventar ou descobrir.
  2. Método que pretende levar a inventar, descobrir ou a resolver problemas.
  3. Processo pedagógico que pretende encaminhar o aluno a descobrir por si mesmo o que se quer ensinar, geralmente através de perguntas.
  4. Procura de fontes documentais.

Portanto, mesmo que não  haja conhecimento do comportamento correto, um testador pode ser capaz de fazer um caso de comportamento incorreto com base em inconsistências no produto.

A avaliação heurística é possui a característica de poder ser contínua e de baixo custos. Envolve a avaliação de um conjunto de critérios de usabilidade ou heurística. Desta forma, o testador deve buscar situações onde os critérios estabelecidos são de alguma forma violados. Nielsen e Molich (1990) sugere a avaliação dos seguintes critérios:

1.       Diálogo simples e natural

  • Deve-se apresentar exatamente a informação que o usuário precisa no momento, nem mais nem menos;
  • A sequência da interação e o acesso aos objetos e operações devem ser compatíveis com o modo pelo qual o usuário realiza suas tarefas.

2.       Fala a língua do usuário

  • A terminologia deve ser baseada na linguagem do usuário e não orientada ao sistema.
  • As informações devem ser organizadas conforme o modelo mental do usuário.

3.       Minimiza a carga cognitiva do usuário

  • O sistema deve mostrar os elementos de diálogo e permitir que o usuário faça suas escolhas, sem a necessidade de lembrar um comando específico.

4.       Consistência

  • Um mesmo comando ou ação deve ter sempre o mesmo efeito.
  • A mesma operação deve ser apresentada na mesma localização e deve ser formatada/apresentada da mesma maneira para facilitar o reconhecimento.

5.       Feedback

  • O sistema deve informar continuamente ao usuário sobre o que ele está fazendo.
  • 10 segundos é o limite para manter a atenção do usuário focalizada no diálogo.

6.       Saídas marcadas claramente

  • O usuário controla o sistema, ele pode, a qualquer momento, abortar uma tarefa, ou desfazer uma operação e retornar ao estado anterior

7.       Atalhos

  • Para usuários experientes executarem as operações mais rapidamente.
  • Abreviações, teclas de função, duplo clique no mouse, função de volta em sistemas hipertexto.
  • Atalhos também servem para recuperar informações que estão numa profundidade na árvore navegacional a partir da interface principal.

8.       Mensagens de erro precisas e construtivas

  • Linguagem clara e sem códigos.
  • Devem ajudar o usuário a entender e resolver o problema.
  • Não devem culpar ou intimidar o usuário.

9.       Previne erros

  • Evitar situações de erro.
  • Conhecer as situações que mais provocam erros e modificar a interface para que estes erros não ocorram.

10.   Ajuda e documentação

  • O ideal é que um software seja tão fácil de usar (intuitivo) que não necessite de ajuda ou documentação.
  • Se for necessária a ajuda deve estar facilmente acessível on-line.

No entanto, sua simplicidade e rapidez depende do conhecimento do testador relacionado ao sistema a ser testado. Segundo estudos realizados, existe a necessidade de 3 a 5 envolvidos nesta atividade para que a mesma seja realizada de maneira assertiva.

Um exemplo de utilização, é fornecendo os critérios de avaliação para um determinado grupo, e o mesmo irá utilizar o sistema e avaliá-lo conforme planejado. Ao final, as avaliações são reunidas e assim, consolidada a avaliação e reportados os resultados obtidos.

 3.       FONTES E ORÁCULOS

O que o software deveria fazer? Ele está fazendo corretamente o que foi proposto?

São estas as perguntas fundamentais que norteiam as duas estratégias aqui enumeradas:

Fontes são “de onde” são obtidas as informações sobre o software em teste. Podemos tomar como exemplo experiências com softwares parecidos, intuição sobre o funcionamento, documentações existentes ou até mesmo o cliente.

Um oráculo é uma estratégia que supõe o funcionamento correto do software, e em seguida são realizados os testes necessário para comprovar este funcionamento.

De acordo com Azevedo (2002), um oráculo é um dispositivo (manual ou automático) que possui a capacidade de determinar se a execução de um teste foi bem sucedido. Portanto, toda a atividade de teste obrigatoriamente requer um oráculo (resultado esperado) para avaliar o resultado obtido.

REFERÊNCIAS

AMSTEL, Frederick van. As 10 heurísticas de Nielsen. 2007. Disponível em <http://usabilidoido.com.br/as_10_heuristicas_de_nielsen_.html > Acesso em 28/08/2012

Avaliação Heurística. Disponível em <http://www.cnptia.embrapa.br/~luciana/disciplinas/mo645/avaliacao.html> Acesso em 28/08/2012.

AZEVEDO, Edson Eustachio Oliveira de. OZJ – Uma Ferramenta para geração de oráculos para teste de software a partir de Especificação Formal. Dissertação de Mestrado. 2002. Porto Alegre: Universidade Federal do Rio Grande do Sul. 142 p.

Web Dicionário – Dicionário de Português Online: http://www.webdicionario.com/heur%C3%ADstica

KANER, Cem; TINKHAM, Andy. Exploring Exploratory Testing. 2003. Disponível em <http://www.testingeducation.org/a/explore.pdf>. Acesso em 28/08/2012

NIELSEN, J.; MOLICH, R.  Heuristic evaluation of user interfaces.  In: EMPOWERING PEOPLE – CHI’90 CONFERENCE Proceedings. New York: ACMPress, 1990.

COMMENTS

3 Comentário(s)

  1. pitter

    agosto 30th, 2012 10:04 PM

    Obrigado por essa nova publicação sobre testes exploratórios. Os quais são no geral pouco conhecidos/discutidos no Brasil, mas de uso cada vez mais crescente em projetos de metodologia ágil.

  2. Aldrea Malheiros

    novembro 28th, 2012 12:34 PM

    Muito bem explicado e sucinto. Parabéns!

  3. Sheila Godoi

    dezembro 12th, 2012 03:57 PM

    Adorei toda a explicação!

Deixe um comentário!


cinco − = 1