Como automatizar todo e qualquer cenário de teste

Thomas Vieira
DBServices - Digital Business Services
2 min readSep 13, 2022

Por que?

Automatizar tudo e qualquer cenário de teste não é a solução de todos os problemas de qualidade de um time de desenvolvimento de software. Devemos investir tempo e esforço em automatizar apenas o que vale a pena ser automatizado e nos gerará eficiência com o passar do tempo. Nem todo cenário de teste é assim. É necessário que o engenheiro de testes automatizados faça a análise das funcionalidades do sistema com intuito de identificar quais cenários devem ser automatizados, e a cobertura de testes automatizados ideal varia em cada empresa, sistema e contexto.

Cobertura de testes automatizados significa qual porcentagem de requisitos e funcionalidades do sistema que podem ser testadas automaticamente, mas é preciso sensatez ao lidar com esta métrica. Segundo Martin Fowler, definir determinado nível de cobertura de testes como meta pode provocar a construção de testes de baixa qualidade apenas para atingir essa quantidade determinada pela meta.

Tradicionalmente, os testes da bateria de regressão possuem centenas (e às vezes milhares!) de cenários de teste mapeados. Em outro contexto, em um time de desenvolvimento com pequenas entregas contínuas, o tempo disponível talvez seja pequeno para implementação de scripts automatizados para tudo o que está sendo entregue. E talvez essas funcionalidades recém entregues sofram alterações nas próximas sprints, o que é normal. Nestes casos, não existe uma bala de prata, mas é sensato começar pensando nos testes de contrato nos serviços de back-end.

Testes redundantes ou repetitivos são grandes candidatos para a automação. Testes que precisam de observação humana, como determinar um bom visual estético de um website ou verificando se a navegação do menu é user-friendly, devem continuar manuais. Testes manuais sempre serão importantes. Mesmo com a automação, existem cenários nos quais será necessária a execução de testes manuais.

Os testes de aceitação sempre devem ser automatizados, caso contrário, não será viável que o time faça pequenas entregas frequentes de novas versões, ou seja, a homologação automatizada é fundamental para praticar Entrega Contínua. Esse é o raciocínio essencial para eleger o que devemos priorizar para automação. Reúna a equipe, identifique os requisitos de aceitação de cada funcionalidade e comece garantindo que estes cenários serão automatizados, sendo executados a cada entrega do time. Quem atinge esse nível de maturidade no trabalho com testes automatizados, acredite, possui uma solução de qualidade mais consistente do que times que possuem centenas de cenários automatizados mas que nem sempre são confiáveis.

Os benefícios da automação são particulares para cada equipe, isso não pode ser generalizado. Saber identificar quais cenários de teste trarão retorno ao investimento feito na criação dos scripts automatizados é fundamental, afinal, não somos robôs de criar robôs.

Referências:

FOWLER, Martin. Test coverage. Disponível em www.martinfowler.com/bliki/TestCoverage.html.

MARTIN, Robert C. The Clean Coder: a Cod of Conduct for professional. Prentice Hall, 1ª edição, 2011.

--

--

Thomas Vieira
DBServices - Digital Business Services

Software Engineer at DBServices Portugal and Publisher at Editora Coragem.