Como decidir o melhor momento para automatizar os testes funcionais?

Anne Caroline Rocha
gtsw
Published in
4 min readJul 29, 2020

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 ou testes de integração. 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 funcionais (caixa-preta) também, que verificam se o sistema, sem ter acesso ao código, do ponto de vista do usuário final, 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 esses 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. Há 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.

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.

A seguir serão apresentados alguns fatores [1] que podem ajudar a decidir se os testes funcionais 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.

Livro “Simplificando Teste de Software

Anne Caroline Rocha é autora do livro “Simplificando Teste de Software”, que aborda o tema de Teste de Software utilizando uma linguagem simples e didática, ideal para quem está começando na área. Em 2020, escreveu o ebook “Investir ou não em teste de software?”. Clique aqui para adquirir o livro!

Ela acredita que compartilhar conhecimentos é a chave para um mundo melhor.

--

--