Teste exploratório?

Muito se fala sobre testes exploratórios, mas pouco se conhece a seu respeito. Alguns profissionais consideram que trata-se de uma atividade amadora e que não deve ser abordada, outras defendem como a tábua de salvação, e muita gente nem sabe do que se trata.

Uma boa e básica definição de teste exploratório seria a criação e a execução ao mesmo tempo de um teste. Isso significa que não foram realizados estudos anteriores nem mesmo planejamento para sua execução. É por isso  que neste tipo de teste a experiência e o conhecimento do testador é de grande valia, talvez a maior das habilidades esperadas, porque quando ele é realizado, normalmente o testador não tem muitas informações sobre o que vai testar, como vai testar e do próprio software, isto quer dizer que, curiosidade, criatividade, concentração, abstração, organização e experiência são fundamentais para o sucesso dos testes e as principais ferramentas do testador.

Para realizar testes exploratórios, o testador não precisa ser especialista porque testes exploratórios, na maioria das vezes, são realizados de maneira tácita ou informal.

Também chamado de ad-hoc, o teste exploratório, foi durante muito tempo desacreditado e desencorajado pelos especialistas, mas nos últimos anos ele passou a ser reconhecido como uma técnica de teste de software que pode ser utilizada em paralelo a técnicas de teste convencionais.

Se de um lado os testes convencionais conduzem o testador a fazer o que foi planejado e especificado pelo analista de teste, por sua vez, o exploratório não depende tanto dos requisitos e nem exige documentação nem planejamento prévio.

Além de descobrir erros o teste exploratório pode servir de base para a criação de testes estruturados convencionais. Ele ganha importância quando, por exemplo,  se deseja reproduzir um defeito aleatório não coberto no planejamento inicial ou quando se deseja obter o nível inicial de qualidade de determinada aplicação.

Apesar de muito útil o teste exploratório sofre discriminação, por isso gostaria de destacar algumas boas razões para executá-lo:

·        Realização de testes quando não existem requisitos ou documentação incompleta ou falha;

·        Realização de testes quando existe pouco tempo disponível e o planejamento está sacrificado;

·        Realização de testes quando não se conhece o aplicativo a ser testado;

·        Identificação dos passos para tentar reproduzir um defeito aleatório;

·        Investigação de efeitos colaterais ou defeitos semelhantes;

·        Apoiar o planejamento estruturado antes do seu começo;

·        Determinação de defeitos críticos rapidamente;

·        Complementando os testes planejados servindo de varredura na aplicação visando resgatar falhas que tenham passado pelos testes planejados.

Planejar os testes é importante, mas o foco principal é sempre testar o software, se não dá para ser da forma planejada, estruturada, que seja com testes exploratórios. Não importa a técnica, e sim não deixar de testar.