Melhor Momento para Automação dos Testes de Software

Existem muitas maneiras de automatizar o teste de software, a primeira e mais comum é através do teste de caixa-branca, onde muitas vezes é utilizado o teste unitário (p.ex. JUnit). Este tipo de teste é realizado pelo desenvolvedor e é bastante útil para garantir que um novo componente do sistema não parou de funcionar quando uma nova parte do sistema foi desenvolvida.

No entanto, é possível automatizar os testes de caixa-preta também, ou seja, os testes funcionais, que verificam se o sistema, do ponto de vista do usuário final ao interagir com a interface do sistema, não apresenta nenhum erro em seu funcionamento. Assim, esse tipo de teste é realizado a partir das telas, campos e botões do sistema.

Imaginamos um mundo ideal e perfeito, quando pensamos em um sistema que tenha todos os seus testes automáticos prontos, então o trabalho de realizar testes se resumirá apenas à máquina. Mas, na realidade, é necessário planejar o momento certo de realizar esses testes funcionais automáticos

Se imaginarmos um cenário em que o sistema está sendo desenvolvido e possui algumas versões em produção, mas o cliente está sempre trazendo novas funcionalidades, melhorias na interface, retirando outras funcionalidades, então este não será o melhor momento para automatizar os testes funcionais. Pois, neste caso, a interface do sistema, estará sofrendo bastante alteração, logo os testes terão que ser atualizados constantemente, gerando um grande retrabalho em manter os testes. Neste cenário, é recomendável os testes de caixa-branca automáticos feitos pelos desenvolvedores e os testes caixa-preta manuais feitos pelos testadores.

Assim, o melhor momento para realizar os testes funcionais automáticos é como teste de regressão, quando se tem um sistema que já está em produção, com várias versões estáveis e com poucos defeitos, ou seja, que precisa fazer pequenos ajustes no sistema raramente. Pois, neste caso, a interface do sistema irá sofrer poucas alterações, então o custo de manter os testes automáticos será baixo e a eficiência dos testes será alta. Existem algumas ferramentas para realizar os testes funcionais automáticos, neste caso é necessário verificar quais as tecnologias e as linguagens utilizadas no sistema a ser testado.