Visão geral sobre Teste Exploratório

Introdução

O que é teste exploratório

Como o próprio nome sugere, teste exploratório tem o foco em explorar (vasculhar) um software para entender o que ele faz, o que não faz, o que funciona e o que não funciona. Pode também ser descrito como aprendizado simultâneo, onde design e execução de testes são realizados ao mesmo tempo.

O teste exploratório é uma abordagem prática onde os testadores estão envolvidos em um planejamento mínimo e na execução máxima.

Cem Kaner, quem inventou o termo em 1984, define teste exploratório como:

“Um estilo de teste de software que enfatiza a liberdade e a responsabilidade pessoal do testador individual de otimizar continuamente a qualidade de seu trabalho, tratando o aprendizado relacionado ao teste, o design do teste, a execução do teste e a interpretação dos resultados do teste como atividades de apoio mútuo executadas em paralelo ao longo do projeto.”

Quando devemos executar

No início e no fim do ciclo de desenvolvimento do software. Quando o código passa por mudanças rápidas, os testes exploratórios podem ser altamente eficazes.

Os desenvolvedores podem usar essa técnica para realizar testes de unidade, enquanto os testadores podem se familiarizar com o aplicativo usando essa abordagem de teste.

A experiência adquirida com o teste exploratório pode ser valiosa na preparação de scripts de teste e na realização de testes adicionais nos estágios posteriores do ciclo de vida de desenvolvimento de software.

Durante a execução de testes exploratórios, são desenvolvidos planos de teste dinamicamente, o que economiza muito tempo para o testador. No final de cada ciclo scrum, testes exploratórios críticos podem ser capturados para scrums subsequentes.

Como executar

Utiliza a capacidade do testador de aprender algo sozinho para realizar o teste.

É importante criar um Charter, onde vai conter as informações necessárias para realizar o teste. Um Charter pode conter as seguintes informações:

  • Ator
  • O que testar
  • Como pode ser testado
  • Áreas de concentração
  • Tempo para realizar
  • Erros conhecidos
  • Outras informações importantes

Na imagem a seguir podemos ver um exemplo de Charter:

Os testadores podem aplicar suas ideias e nunca se perder de sua missão.

O teste exploratório não usa automação de teste, mas se concentra no conhecimento, observação e experiência do testador.

Tipos de teste exploratório

Baseado em sessões

O teste exploratório baseado em sessões é uma estratégia utilizada para tornar o teste exploratório mais efetivo e com objetivos mais claros. Nesta abordagem o teste exploratório é realizado em sessões de cerca de 60 minutos, podendo variar de 45 a 90 minutos. A ideia principal de uma sessão é garantir que durante esse período de tempo o testador fique totalmente concentrado na execução de testes e não seja interrompido para atender ligações telefônicas, reuniões, etc.

Estilo livre

Nos testes exploratórios de estilo livre, o aplicativo é testado de maneira ad-hoc e não há muitas diretrizes ou procedimentos para o teste.

Habilidades necessárias

Conhecimento de Design de Teste

Um testador exploratório deve ter conhecimento sobre a técnica de design de teste mais adequada ao produto, para que os casos de teste sejam capazes de encontrar defeitos. Para conseguir isso, um testador exploratório deve possuir habilidades como o uso de diferentes ferramentas e a capacidade de avaliar riscos, analisar o produto e pensar criticamente.

Habilidades de observação

Excelentes testadores exploratórios são observadores mais cuidadosos do que iniciantes. Os testadores iniciantes ou menos experientes observam apenas o que a funcionalidade lhes diz, enquanto um testador exploratório deve procurar qualquer comportamento incomum ou misterioso no sistema.

Vamos assistir a um pequeno vídeo. Não se trata de testes, mas é muito relevante para o que fazemos.

O ponto é que, se não procuramos algo, geralmente não vemos detalhes muito óbvios. Não execute testes sem pensar, olhe em volta!

Tente se aprofundar (verifique se o usuário após o login possui um sistema totalmente funcional, não verifique se o usuário pode efetuar o login). Faça perguntas mais profundas: quantos usuários totalmente funcionais podem usar o software em paralelo, em vez de quantos usuários podem entrar / iniciar o aplicativo.

Procure pistas sutis — contadores, avisos, aumento de memória. Ouça, veja, toque! Use consoles e logs. Você vê uma linha de log inesperada? Avisos? Você vê um erro que não se manifesta em nenhum outro lugar?

Pensamento crítico

O pensamento crítico é o tipo de pensamento que procura especificamente problemas e erros. Para ser um bom testador exploratório, você precisa ser um bom pensador crítico. Testadores que pensam criticamente salvam projetos de suposições perigosas e, finalmente, de desastres. Excelentes testadores exploratórios devem poder revisar e explicar sua lógica e procurar erros em seus próprios pensamentos.

Vantagens e desvantagens

Vantagens

  • Menos preparação é necessária e erros importantes são encontrados rapidamente.
  • Esse tipo teste é muito útil quando os documentos de requisitos não estão disponíveis ou estão parcialmente disponíveis.
  • Envolve um processo de investigação que ajuda a encontrar mais erros do que outras técnicas.
  • Ajuda a expandir a imaginação dos testadores executando cada vez mais casos de teste, o que também melhora a produtividade.
  • Em caso de tempo limitado, o teste exploratório pode ser usado para testar novos recursos.

Desvantagens

  • Esse tipo de teste depende das habilidades do testador.
  • Limitado pelo conhecimento do domínio do testador.
  • Não é adequado para um longo tempo de execução.
  • Familiarizar-se com um sistema leva tempo, portanto, existe a possibilidade de defeitos serem perdidos se o testador tiver menos conhecimento do sistema.

Teste exploratório em projetos ágeis

Os testes exploratórios são muito úteis em projetos ágeis por causa de prazos apertados e foco em resultados rápidos. Uma vez que os requisitos são entendidos pelo testador, ele pode realizar os testes com base em sua habilidade e intuição.

Quando o testador se familiarizar com os recursos e o comportamento do aplicativo, ele poderá criar casos de teste adicionais para testes adicionais e poderá encontrar mais erros.

Como o teste exploratório na metodologia ágil está livre de processos rígidos e requisitos de documentação, o testador não precisa manter documentos para tudo, mas seria bom se um breve relatório sobre itens testados, bugs encontrados etc. fosse mantido para fins de referência futura.

Teste exploratório vs. teste automatizado

Conclusão

O teste exploratório não é uma maneira convencional de testar, mas ainda assim é uma maneira muito poderosa de testar uma aplicação. Isso leva os bons testadores a pensar fora da caixa e a criar casos de teste em tempo real para encontrar defeitos.

Sendo de estilo livre, os testes exploratórios podem ser realizados em qualquer projeto que exija documentação mínima, independentemente de estar usando metodologia ágil, modelo em cascata ou qualquer outro modelo de ciclo de vida de desenvolvimento de software.

O sucesso dos testes exploratórios depende de números intangíveis, como a habilidade de um testador, a capacidade de criar casos de teste eficazes, sua experiência e a habilidade de seguir seus instintos.

É importante lembrar que o teste exploratório é um processo adaptativo, e não preditivo, e é essencial manter um equilíbrio saudável entre testes exploratórios e outros tipos de teste. É um complemento, em vez de uma substituição dos testes manuais, automatizados, entre outros.

Referências:

--

--