Adhoc Testing: Uma breve nota com exemplos

FacebookTwitterLinkedInShare

Testes ad-hoc são normalmente realizados para quebrar o sistema e usando formas não convencionais. A característica mais surpreendente do teste Adhoc é que ele não tem nenhuma técnica de desenho de teste para criar casos de teste.

O processo é normalmente realizado para encontrar brechas de um software. Uma vez que os testes Adhoc não têm casos de teste, eles são frequentemente realizados sem qualquer documentação.

Dê uma olhada no processo em detalhes

Testes Ad Hoc é uma técnica que se enquadra na categoria ‘Unstructured Testing’.

Princípio ad-hoc

O que são Testes Estruturados e Não Estruturados?

Testes Estruturados

Nesta abordagem, todas as actividades que ocorrem durante o procedimento de teste, desde a criação de casos de teste até à sua execução sequencial, tudo é roteirizado. Os testadores seguem este script para conduzir testes de acordo com ele.

Testes não-estruturados

Nesta abordagem, os testes são normalmente feitos através de adivinhação de erros, onde os testadores criam os casos de teste, durante o próprio processo de teste.

O que é teste ad hoc?

Diagrama de teste ad hoc

Como discutido acima, é um tipo de abordagem de teste não-estruturado, onde nenhum plano organizado é criado antes de iniciar o processo de teste.

Por isso, antes do teste, nenhuma documentação de requisitos ou planejamento e desenho de casos de teste são feitos.

Teste ad-hoc é normalmente conduzido por um testador que tem um forte conhecimento do software em teste, sobre o que ele faz e como ele funciona.

Este teste é feito criando aleatoriamente casos de teste através da adivinhação de erros e executando-os, sem seguir quaisquer requisitos para o teste.

Uma parte importante deste teste é descobrir as áreas potenciais do software, onde erros poderiam estar presentes.

Por isso também é às vezes conhecido como Monkey Testing ou Random Testing. É por isso que é importante apenas para os testadores que têm bom conhecimento do software conduzir este teste.

Uma vantagem do teste Ad-Hoc é que ele economiza bastante tempo, o que de outra forma vai para a criação de documentos como requisitos de teste, planejamento de casos de teste, design, etc.

É também geralmente conduzido após o teste estruturado já ter sido realizado. Isto é feito para descobrir falhas incomuns no software que não puderam ser detectadas, seguindo os casos de testes escritos anteriormente.

Tipos de testes ad hoc

1) Buddy Testing

Neste tipo de teste ad hoc, os testes são conduzidos com o esforço de equipe de pelo menos duas pessoas. Esta equipe é normalmente composta de pelo menos um testador de software e um desenvolvedor de software.

Este tipo de teste ocorre após a realização do teste unitário de um módulo estar concluído.

A equipe dos dois ‘amigos’ trabalha em conjunto nesse módulo para criar casos de teste válidos.

Isto é feito para que o testador não acabe reportando erros gerados através de casos de teste inválidos. Este tipo de teste também pode ser considerado como a combinação de ambos, unidade e sistema de teste.

2) Monkey Testing

A aleatoriedade da abordagem usada neste teste é o motivo pelo qual é chamado de ‘teste com macacos’.

Aqui, o software em teste é fornecido por entradas aleatórias, para as quais suas saídas correspondentes são observadas.

Na base das saídas obtidas, qualquer ocorrência de erros, inconsistências ou falhas do sistema é determinada.

3) Teste de Par

Este teste é muito parecido com o teste de amigo. Entretanto, aqui, apenas um par dos testadores trabalha em conjunto nos módulos para testes.

Eles trabalham juntos para compartilhar idéias, opiniões e conhecimentos sobre a mesma máquina para identificar erros e defeitos.

Os testadores são emparelhados de acordo com seus níveis de conhecimento e experiência, para obter uma visão diferente sobre qualquer problema.

Características dos testes ad hoc

  • Estes testes são feitos após técnicas de testes formais já terem sido conduzidas no software. A razão para isto é que testes ad-hoc são feitos para descobrir as anomalias na aplicação, que não podem ser previstas antes do teste.
  • Este teste só pode ser conduzido por aqueles testadores que têm um bom e profundo conhecimento do funcionamento da aplicação. Isto porque a ‘adivinhação eficaz de erros’ só pode ser feita quando o testador sabe o que o aplicativo faz e como ele funciona.
  • A técnica de teste ad-hoc é mais adequada para encontrar bugs e inconsistências que dão origem a lacunas críticas em um aplicativo. Tais erros são geralmente muito difíceis de descobrir.
  • Este teste leva comparativamente menos tempo do que outras técnicas de teste. Isto porque é feito sem planejamento, desenho e estruturação prévios.
  • Testes ad hoc são conduzidos apenas uma vez, já que quaisquer erros encontrados requerem ser testados novamente.

Exemplos de testes ad hoc

  • Testes para o bom funcionamento de uma aplicação quando as configurações do navegador são diferentes. Por exemplo, identificando erros que ocorrem quando a opção para JavaScript está desabilitada em diferentes navegadores, etc.
  • Testar a aplicação através de plataformas. É essencial verificar se a aplicação desenvolvida pode rodar fluentemente em diferentes sistemas operacionais ou navegadores.
  • Fornecer entradas ao sistema que estejam fora do intervalo de entradas válidas, para verificar se a ação resultante tomada pela aplicação é apropriada ou não.
  • Copiar a URL da aplicação e manipulá-la para rodar em um navegador diferente. Isto é feito para verificar se qualquer usuário não autorizado não é capaz de obter acesso não autenticado ao sistema.
  • Viajando através de uma série de passos aleatórios ou navegando aleatoriamente pela aplicação de modo a verificar os resultados obtidos através de uma certa combinação de entradas incomuns.

Quando se deve realizar testes ad hoc

Usualmente, os testes ad hoc são realizados quando não há tempo suficiente para realizar testes exaustivos e completos, o que inclui a preparação do documento de requisitos de teste, casos de teste e projetos de casos de teste.

O momento perfeito para realizar este tipo de testes é após a conclusão das técnicas de testes formais.

No entanto, os testes ad-hoc também podem ser conduzidos no meio do desenvolvimento do software.

Pode ser realizado após o desenvolvimento completo do software, ou mesmo após alguns módulos terem sido desenvolvidos.

Pode também ser realizado durante o processo de testes formais.

Existem algumas situações em que este tipo de testes, no entanto, não deve ser realizado. Portanto, todo testador deve saber quando evitar este teste.

Existem algumas condições em que os testes ad hoc não devem ser realizados:

  • Testes ad hoc não devem ser realizados quando os testes Beta estão sendo realizados. Isto porque o teste Beta envolve os clientes, que testam o software desenvolvido para fornecer sugestões de novos recursos que precisam ser adicionados ou para alterar os requisitos para ele.
  • Este teste também é aconselhado a não ser conduzido nos casos de teste que já têm erros existentes nos mesmos. Os erros devem ser primeiramente documentados corretamente antes de serem removidos do sistema. Após serem corrigidos, os casos de teste devem ser testados novamente, para garantir seu bom funcionamento.

Quais são as vantagens dos testes ad-hoc?

  • Uma vantagem dos testes ad-hoc é que muitos erros, que normalmente passam despercebidos quando apenas métodos de teste formais são usados, podem ser encontrados testando aleatoriamente a aplicação.
  • Os testadores exploram a aplicação livremente, de acordo com sua intuição e compreensão da aplicação. Eles podem então executar os testes à medida que vão, ajudando-os a descobrir erros durante este processo.
  • Testes e os desenvolvedores da aplicação podem facilmente testar a aplicação, já que não são necessários casos de teste para serem planejados e projetados. Isto ajuda os desenvolvedores a gerar códigos mais eficazes e livres de erros facilmente.
  • Este teste também pode ajudar na criação de casos de teste únicos que podem detectar erros de forma ineficaz. Portanto, tais casos de teste podem ser adicionados a testes formais com outros casos de teste planejados.
  • Testes ad-hoc podem ser realizados a qualquer momento durante o ciclo de vida de desenvolvimento de software porque não seguem nenhum processo formal.
  • Pode ser combinado com outras técnicas de teste e executado para produzir resultados mais informativos e eficazes.

Quais são as desvantagens dos testes ad hoc?

  • Desde que o processo de teste não esteja documentado e nenhum caso de teste em particular seja seguido, torna-se muito difícil para o testador regenerar um erro. Isto porque o testador precisa lembrar os passos exatos que ele seguiu para obter esse erro, o que não é possível toda vez.
  • Por vezes, devido à execução de casos de teste inválidos desenvolvidos aleatoriamente pelo testador, erros inválidos são relatados, o que se torna um problema nos processos subsequentes de correção de erros.
  • Se os testadores não tiverem conhecimento prévio sobre o funcionamento da aplicação em teste, então realizar testes ad-hoc não será capaz de descobrir muitos erros. Isto porque os testadores precisam trabalhar através de adivinhação de erros e intuitivamente criar e executar casos de teste no local.
  • Testes ad-hoc não oferecem garantia de que os erros serão encontrados. A adivinhação proativa de erros para testes depende totalmente da habilidade e conhecimento do testador.
  • Desde que não existam casos de teste previamente criados e documentados, a quantidade de tempo e esforços que vão para este teste permanece incerta. Às vezes, encontrar até mesmo um erro pode levar muito tempo.

Best Practices to Conduct Adhoc Testing

Para conduzir eficazmente a técnica de testes ad hoc, é importante conhecer as formas mais eficazes e eficientes de o fazer.

Isso é porque se os testes não forem conduzidos de forma adequada, então o esforço e o tempo investido nos testes será desperdiçado.

Por isso, para conduzir este tipo de teste, é preciso conhecer as melhores práticas que podem ajudar numa abordagem mais abrangente aos testes:

1) Bom conhecimento de software

Certifique-se de que o testador designado para o teste da aplicação através da abordagem ad-hoc tem um bom controle sobre a aplicação.

O testador deve estar familiarizado com todas as características do aplicativo para facilitar uma melhor ‘adivinhação de erros’ no aplicativo.

Com conhecimento suficiente para apoiar o processo de teste do testador, encontrar mais erros, bugs e inconsistências torna-se mais fácil.

2) Encontrar áreas com tendência a erros

Se os testadores, como não estão familiarizados com o aplicativo, então a melhor prática para iniciar o processo de teste é verificar a parte do aplicativo onde se encontra a maioria dos erros.

Apagar essas áreas sensíveis para realizar testes ad-hoc pode ajudá-los a encontrar erros mais facilmente.

3) Priorizar Áreas de Teste

É sempre melhor começar a testar a partir das áreas do aplicativo que são mais utilizadas pelos usuários finais ou clientes. Isto ajuda a assegurar os recursos importantes e reportar qualquer bug antes.

4) Planeje o plano de teste de forma aproximada

Embora o teste ad hoc não requeira nenhum planejamento ou documentação prévia, ele prova ser muito útil e eficiente se um plano aproximado for criado antes.

Apenas anotar os principais indicadores e áreas que requerem teste podem ajudar os testadores a cobrir a parte máxima da aplicação em um curto espaço de tempo.

5) Ferramentas

É essencial fazer uso do tipo certo de ferramentas como depuradores, monitores de tarefas e profilers para facilitar o processo de teste.

Isso é porque há momentos em que bugs e exceções específicas não podem ser vistos e não são capturados durante o teste.

No entanto, usar as ferramentas certas pode ajudar a isolar o erro em pouco tempo.

Testes ad hoc vs Testes exploratórios

>

Testes ad hoc Testes exploratórios
Testes devem ter uma ideia clara sobre o fluxo de trabalho da aplicação Testes devem aprender sobre o aplicação em movimento
Mais sobre o aperfeiçoamento do processo de teste É um método de aprendizagem a conhecer sobre a aplicação
Uma forma de teste positivo Uma forma de sistema negativo
Não há plano Será posto em uso um plano baseado na carta
Não há limite de tempo proposto Vetorial de tempo/caracteres
Pode ser executado pelo engenheiro de testes do software Deixar de ser feito pelo especialista
Focus está no processo de aplicação As áreas de entrada de dados serão o foco principal
Complexidades dos testes não irão incomodar muito este processo Desafios envolvidos

Deixe uma resposta

O seu endereço de email não será publicado.