Como decidir se os testes devem ser automatizados?

Antes de sair utilizando qualquer ferramenta para automatizar seus testes, é necessário analisar vários fatores que irão definir o sucesso ou não dos seus testes. Algumas ferramentas podem não ser suficientes para representar todos os seus testes, neste caso não faz sentido utilizá-las.

Além disso, o software a ser testado pode estar em constante atualização, onde seus componentes são modificados, logo os casos de teste automáticos também terão que ser alterados, caso contrário não poderão ser re-executados.

A seguir serão apresentados alguns fatores [1] que podem ajudar a decidir se os testes devem ser automatizados ou não.

1. Frequência da execução: é importante levar em consideração a quantidade de vezes que se pretende executar os testes, se for apenas uma vez, então a execução manual pode ser suficiente.

2. Geração de código reusável: se o código de teste criado para um caso de teste poderá ser facilmente reutilizado em outro caso de teste, então este pode ser um bom motivo para usar alguma ferramenta de automação.

3. Relevância do teste: se uma funcionalidade será utilizada mais vezes do que outras, às vezes pode valer a pena criar casos de teste automáticos para ela, por exemplo, casos de teste para login na aplicação.

4. Esforço para automatizar: deve-se ter em mente se valerá a pena o esforço para automatizar um roteiro de teste considerando a quantidade de vezes que aquele roteiro poderá ser executado e se há casos de teste reusáveis.

5. Ferramentas de automação: para cada tipo de sistema a ser testado poderá ser utilizado diferentes ferramentas de automação dos testes. Isto deve ser cuidadosamente analisado antes de decidir qual ferramenta será utilizada.

6. Dificuldade de executar o teste manualmente: às vezes alguns casos de teste devem ser executados de forma exaustiva para um conjunto de diferentes usuários, neste caso é inviável realizar o mesmo teste para vários usuários. Logo, a automação será necessária.

Assim, estes
e outros fatores podem ser considerados no momento de decidir se os testes serão automáticos ou manuais. Mas é bom sempre lembrar que o principal objetivo de um caso de teste (automático ou não) é encontrar bugs no sistema.

[1] J. C., Oliveira, C. C., Gouveia, R. Q., Filho. A way of Improving Test Automation Cost-Effectiveness. Artigo publicado no CAST'06, Indianápolis, EUA, 2006.



DICA.: A revista Testing Experience deste mês disponível neste blog na seção de "Revistas Digitais Gratuitas" é sobre Ferramentas de Teste de Software, vale a pena dar uma olhada. :)

http://www.testingexperience.com/issues/testingexperience12_12_10.pdf


Testing Experience - 12ª Ed. Dez/2010