O que é teste exploratório?
O que é teste exploratório?
Teste Exploratório é um tipo de teste de software em que os casos de teste não são criados com antecedência, mas os testadores verificam o sistema em tempo real. Eles podem anotar ideias sobre o que testar antes da execução do teste. O foco dos testes exploratórios está mais no teste como uma atividade de “pensamento”.
O teste exploratório é amplamente utilizado em modelos ágeis e trata de descoberta, investigação e aprendizado. Enfatiza a liberdade pessoal e a responsabilidade do testador individual.
Por que testes exploratórios?
No teste com script, você projeta primeiro os casos de teste e depois prossegue com a execução do teste. Pelo contrário, o teste exploratório é um processo simultâneo de design e execução de teste, tudo feito ao mesmo tempo.
A execução de teste com script geralmente é uma atividade sem reflexão, em que os testadores executam as etapas do teste e comparam os resultados reais com os resultados esperados. Essa atividade de execução de teste pode ser automatizada e não requer muitas habilidades cognitivas.
Embora a tendência atual em testes de software seja pressionar por automação, os testes exploratórios são uma nova maneira de pensar. A automação tem seus limites
Diferenças entre testes com script e exploratórios
Teste com script | Teste Exploratório |
---|---|
Direcionado a partir de requisitos | Direcionado a partir dos requisitos e explorando durante os testes |
Determinação de casos de teste com bastante antecedência | Determinação de casos de teste durante o teste |
Confirmação de testes com os requisitos | Investigação do sistema ou aplicativo |
Enfatiza previsão e tomada de decisão | Enfatiza adaptabilidade e aprendizagem |
Envolve testes confirmados | Envolve Investigação |
Se trata de Controle de testes | Se trata de Melhoria do design de teste |
Como fazer um discurso – você lê um rascunho | Como iniciar uma conversa – é espontâneo |
O roteiro está no controle | A mente do testador está no controle |
Técnicas de teste exploratório
- Não é um teste aleatório, mas é um teste ad-hoc com o propósito de encontrar bugs
- É estruturado e rigoroso
- É cognitivamente (pensamento) estruturado em comparação com a estrutura processual dos testes com script. Essa estrutura vem do Charter, time boxing etc.
- É altamente ensinável e gerenciável
- Não é uma técnica, mas é uma abordagem. Quais ações você executa a seguir são governadas pelo que você está fazendo atualmente
Como executar testes exploratórios
A seguir está um processo passo a passo sobre como realizar testes exploratórios, também chamado de gerenciamento de testes baseado em sessão (Ciclo SBTM):
Etapa 1) Crie uma taxonomia de bugs (classificação)
- Categorizar tipos comuns de falhas encontradas em projetos anteriores
- Analise a análise da causa raiz dos problemas ou falhas
- Encontre os riscos e desenvolva ideias para testar a aplicação.
Etapa 2) Carta de teste
- A Carta de Teste deve sugerir
- o que testar
- como pode ser testado
- O que precisa ser procurado
- Ideias de teste são o ponto de partida dos testes de exploração
- O regulamento de teste ajuda a determinar como o usuário final pode usar o sistema
Etapa 3) Tempo Box
- Este método inclui um par de testadores trabalhando juntos por pelo menos 90 minutos
- Não deve haver nenhum tempo interrompido nessas sessões de 90 minutos
- Timebox pode ser estendido ou reduzido em 45 minutos
- Esta sessão incentiva os testadores a reagir à resposta do sistema e a se preparar para o resultado correto
Passo 4) Revver resultados
- Avaliação dos defeitos
- Aprendendo com os testes
- Análise de áreas de cobertura
Etapa 5) Análise
- Compilação dos resultados de saída
- Compare os resultados com a carta
- Verifique se algum teste adicional é necessário
Melhor prática de Teste Exploratório
Durante a execução exploratória, o seguinte precisa ser feito:
- A missão dos testes deve ser muito clara
- Mantenha anotações sobre o que precisa ser testado, por que precisa ser testado e a avaliação da qualidade do produto
- Acompanhamento de dúvidas e questões levantadas durante testes exploratórios
- Melhor emparelhar os testadores para testes eficazes
- Quanto mais testamos, maior é a probabilidade de executarmos os casos de teste corretos para os cenários necessários
É muito importante levar um documento e monitorar os seguintes
- Cobertura de Teste – Se tomamos notas sobre a cobertura de casos de teste e melhoramos a qualidade do software
- Riscos – Quais riscos precisam ser cobertos e quais são os mais importantes?
- Log de Execução de Teste – Gravações na execução do teste
- Problemas / Consultas – Faça anotações sobre a questão e os problemas no sistema
Testes exploratórios mais inteligentes encontram mais erros em menos tempo.
Prós e contras dos testes exploratórios
Diferenciais
Desvantagens
- Este teste depende puramente das habilidades do testador
- Limitado pelo conhecimento de domínio do testador
- Não é adequado para longos tempos de execução
Desafios dos testes exploratórios
Existem muitos desafios nos testes exploratórios e eles são explicados abaixo:
- Aprender a usar o aplicativo ou sistema de software é um desafio
- A replicação da falha é difícil
- Determinar se as ferramentas precisam ser usadas pode ser um desafio
- Determinar os melhores casos de teste a serem executados pode ser difícil
- O relato dos resultados dos testes é um desafio, pois o relatório não possui scripts ou casos planejados para comparar com o resultado ou resultado real
- A documentação de todos os eventos durante a execução é difícil de registrar
- Os testes exploratórios não têm casos de teste definidos para executar, o que torna difícil decidir quando parar.
Quando usar testes exploratórios?
Testes exploratórios podem ser usados extensivamente quando
- A equipe de testes tem testadores experientes
- A iteração antecipada é necessária
- Existe uma aplicação crítica
- Novos testadores entraram na equipe
Conclusão
Na Engenharia de Software, os testes exploratórios são realizados para superar as limitações dos testes com script. Ajuda a melhorar Caso de teste suíte. Ele tem empatia pela aprendizagem e adaptabilidade.