Testes Exploratórios em Sistemas Ágeis
O teste exploratório é um processo orientado a resultados, onde o conhecimento sobre o produto e seus requisitos e regras cresce ao longo da sua exploração. É um método muito usado em situações em que não existe um conhecimento sobre o sistema a ser testado, não há documentação e/ou requisitos (como acontece em metodologias ágeis) e situações em que o prazo para os testes é curto.
Quando vamos testar algo, temos uma hipótese e uma expectativa sobre como o software deve se comportar. Exibir uma mensagem de erro, de sucesso, um alerta ou apenas confirmar a execução de uma funcionalidade.
Ao executar os cenários, aprendemos como o sistema funciona, quais as regras, a sua organização, o que funciona e não funciona e padrões gerais. Quanto mais aprendemos sobre o sistema a ser explorado, melhor serão os testes.
Os testes exploratórios complementam perfeitamente a automatização de testes. A automação controla que fluxos principais estão funcionando conforme o esperado e garantem um rápido teste de regressão; enquanto os testes exploratórios podem ser focados em novas funcionalidades que foram desenvolvidas. Cada sprint dura aproximadamente duas semanas, que não permite tempo suficiente para testes de funcionalidade e ainda implementar os testes automatizados.
Sem documentação e roteiro de teste, são testes eficientes e rápidos. É muito mais eficiente usar tempo no teste do que na documentação.
Etapas para realizar o teste exploratório:
- Identificar qual o propósito do sistema;
Inicialmente, deve-se ter um entendimento do principal objetivo do sistema ou do cenário a ser testado. - Identificar as funções;
Listando as funções que compõem o sistema, já se tem uma ideia do que poderá ser testado, e ao final dos testes teremos um indicador do que entendemos daquele produto ou cenário. - Identificar as partes mais instáveis do sistema;
É importante explorar o sistema para de encontrar possíveis áreas de instabilidade. Dois exemplos que demonstram instabilidade: funções que às vezes funcionam corretamente e às vezes falham, ou que funcionam de alguma forma, mas causam efeitos que quebram alguma outra funcionalidade. - Execução do teste;
Esta é a parte principal de todo o processo.
– Teste todas as funções encontradas no passo 2;
– Teste todas as áreas de instabilidade potencial que você identificou no passo 3;
– Teste um cenário ou fluxo principal do sistema que você considera importante
– Evidencie falhas encontradas;
Anote e reporte quaisquer observações que você considerar durante os testes. Lentidões, quebras de layout, comportamentos inesperados e erros.