Testes exploratórios: o que são, aspetos chave, e porque querem as empresas usá-los
Antes de explicar o que são realmente os Testes Exploratórios, ou Exploratory Testing em inglês, imaginemos por um momento que somos investigadores de uma cena de crime, ao estilo CSI, e que nos encarregaram de investigar um homicídio.
Para esta investigação temos restrições, só nos podemos cingir ao guião que nos foi fornecido, não nos podendo desviar do conjunto predefinido de ações programadas para chegar à origem do crime.
Por este motivo, vemo-nos seriamente limitados na nossa investigação para poder resolver o homicídio, a menos que os resultados das ações e das perguntas do guião fornecido se alinhem.
Isto é o que fazem exatamente os testes automatizados ou com sequências de comandos. Só procuram erros no conjunto predefinido de testes desenhados e, por tanto, é necessário levar a cabo outro tipo de testes, como os testes exploratórios, para determinar a qualidade do produto.
Mas o que são na realidade os Testes Exploratórios?
É uma abordagem de teste em que os responsáveis pelos testes, ou testers, embarcam num processo de investigação e descoberta para testar um produto de forma eficaz. Exploram a aplicação para identificar, documentar e descobrir erros ocultos nos aspetos e funcionalidades que podem ou não afetar diretamente os resultados do sistema, investigar a sua causa e retificá-los, com o objetivo de encontrar erros subjacentes. É isto que se faz num teste exploratório.
Não há casos de teste predefinidos nos testes exploratórios, isso não significa que o tester encarregue de levar a cabo o teste não os prepare, isto conduz a menos restrições para o tester e a uma maior liberdade, e responsabilidade pessoal, para aprender e iterar sem procurar uma resposta pré-desenhada da qual não se possa desviar.
Uma das boas práticas que devem cumprir os testes exploratórios é que devem poder responder às seguintes perguntas:
- A aplicação realiza a função para a que foi desenhada?
- A aplicação funciona em múltiplos cenários?
- O desempenho da aplicação é suficientemente bom?
- Que potenciais erros existem?
Para o qual seguiremos para as seguintes etapas que não são independentes entre si e existem como uma única função coesa ou ciclo de testes.
Aprendizagem. Uma das capacidades mais importantes que necessita um tester é a de compreender a aplicação ou o website que está a testar, grande parte desta aprendizagem ocorrerá em tempo real, à medida que comece a explorar e a testar o software. Esta compreensão proporciona contexto e inclui informação como dados comparativos competitivos, conhecimento da indústria e detalhes da empresa. Para certo tipo de aplicações pode ser necessário um tutorial.
Desenho. Os testers exploratórios podem realizar o teste da maneira que considerem adequada e não tendo à partida um resultado desejado ou esperado. Muitas vezes, a técnica de teste exploratório conduz ao desenvolvimento de cenários de testes com guiões mais rigorosos ao longo do tempo.
A gestão do teste pode ajudar a decidir o dispositivo, as circunstâncias ou as condições se o solicitante do teste ainda não o tiver estabelecido.
Execução. O tester tem a liberdade de completar o teste como quiser. Esta liberdade significa que ninguém está à espera dos resultados escritos e pode começar o trabalho criativo assim que seja solicitado. O tester pode começar a observar e aprender sobre a aplicação ou o website. Uma vez finalizada esta fase, os resultados são compilados e comunicados através dos métodos apropriados.
Técnicas de testes exploratórios
Existem diferentes formas de realizar testes exploratórios. Os três principais tipos são:
Testes de estilo livre: como sugere o nome, trata-se de testes nos quais cada tester seleciona um módulo ou a aplicação completa e a executa de forma aleatória. É como um smoke test rápido que se realiza para assegurar que tudo é implementado como esperado.
Testes baseados em cenários: neste tipo de testes exploratórios, cada tester seleciona um cenário de utilizador e testa os fluxos da aplicação relativos a esse caso de uso. Tentam cobrir todas as navegações, permutação de dados e fluxo que sejam possíveis para assegurar a estabilidade e funcionalidade desse cenário.
Testes baseados em estratégias: este tipo de testes implica implementar as metodologias de teste centrais num teste exploratório. Neste teste, o tester especializado aplicaria técnicas de black-box testing à aplicação.
Vantagens dos testes exploratórios
Encontrar mais defeitos: um benefício importante dos testes exploratórios é que encontram defeitos que a automatização simplesmente não consegue encontrar. Os testes automatizados limitam-se aos casos de testes que se escrevem para os mesmos. Não encontrará nenhum erro fora deste âmbito.
Velocidade dos ciclos de teste: os testes exploratórios não requerem uma planificação extensa. O alcance de um ciclo de teste deve ser claro, mas não são necessários casos de teste detalhados. Isso deve-se ao facto de se confiar nos testers para testar o que acreditam que deve ser testado. Em comparação, os testes automatizados são rápidos na execução de testes, mas a sua planificação pode levar muito tempo.
Geração de ideias: a criatividade requerida dos testers e o rápido ritmo dos testes exploratórios significa que se criam mais ideias.
Desvantagens dos testes exploratórios
Fazer as coisas bem é difícil: os testes exploratórios dependem em grande medida do tester. Pode ser uma habilidade cara e difícil de adquirir, pelo que pode ser complicado encontrar os tester exploratórios que se estão à procura. Para isso podes confiar o teu projeto a especialistas em testes como nós.
Medir o ROI pode ser complexo: medir o sucesso dos testes exploratórios a curto prazo pode ser complexo. Consideremos este exemplo, pensas em correr uma maratona, não podes treinar 10 horas por dia cada semana antes da corrida e esperar que a faças bem. Os testes exploratórios são iguais. A consistência a longo prazo produzirá melhores resultado do que a intensidade a curto prazo.
Execução e controlo dos testes exploratórios
Se bem que os testes exploratórios se executam eminentemente de forma manual, existem ferramentas no mercado que nos ajudam com a execução, controlo e gestão deste tipo de ativos de testing. Na Izertis recomendamos o uso de XRay Exploratory Testing, sobretudo naqueles projetos em que já se está a utilizar Jira. Como Partner especializado de XRay podemos-te ajudar a implementar esta solução, contacta-nos.
Ao longo deste artigo, falámos sobre o que são os testes exploratórios e quais são as vantagens e desvantagens, mas será que saberás quando deverás implementar este tipo de testes?
Estes são os 5 cenários principais em que os testes exploratórios podem ser de grande benefício para a tua estratégia de testes.
- Não tens a certeza que testes executar.
- Desejas diversificar o processo de teste depois de um ciclo de testes guiado.
- Necessitas de receber comentários rápidos sobre um produto.
- Queres compreender rapidamente os meandros de uma nova versão.
- Queres encontrar mais erros!
Se ainda não tiveres a certeza se deverias incluir este tipo de testes na tua estratégia ou organização, a nossa equipa de QA da Izertis terá todo o prazer em te aconselhar e orientar para que possas escolher a melhor estratégia de testes para a tua empresa ou projeto.