As automações de testes podem ser feitas por um especialista em qualidade usando ferramentas ou por um desenvolvedor usando código.
Os testes automatizados baseados em interface podem ser mais fáceis de construir no início mas são mais fáceis de quebrar, pois qualquer parte do sistema que sofra alteração impacta na automação de testes e qualquer mudança na interface pode impactar no funcionamento dos testes, portanto esses testes são mais caros de manter.
Os testes automatizados codificados são incorporados ao repositório de código e mantidos pelos desenvolvedores juntamente com a manutenção do software. Essa manutenção é mais barata pois a prática é incorporada na cultura de desenvolvimento e mantida durante a manutenção do software. Isso antecipa os problemas e baixa o custo de manutenção.
Tanto os testes automatizados codificados quantos os testes automatizados por ferramentas usando a interface possuem benefícios interessantes:
- Eficiência: os testes automatizados podem ser executados muito mais rapidamente do que os testes manuais.
- Precisão: as ferramentas de teste automatizado são capazes de executar testes de forma mais precisa do que um ser humano, reduzindo assim a probabilidade de erros humanos.
- Reutilização: os testes automatizados podem ser reutilizados muitas vezes, o que economiza tempo e dinheiro.
- Escalabilidade: os testes automatizados podem ser executados em larga escala, permitindo testar o software em diferentes configurações e ambientes.
No entanto, a prática de testes automatizados também tem algumas desvantagens, tais como:
- Custo inicial: a criação de testes automatizados pode ser cara, pois é necessário investir em ferramentas e treinamento.
- Manutenção: os testes automatizados precisam ser atualizados e mantidos regularmente, o que pode ser trabalhoso.
- Dificuldade de teste de interface gráfica: em alguns casos, é difícil testar a interface gráfica do usuário com testes automatizados.
Para reduzir esses impactos é interessante aumentar a proporção de testes automatizados codificados em relação aos testes automatizados de interface.
Em geral, a prática de testes automatizados é uma abordagem eficaz para garantir a qualidade do software. No entanto, é importante entender quando e como usar essa prática, a fim de obter o máximo benefício e reduzir o tempo e o custo associados aos testes.
No método Extreme Programming (XP) a automação de testes codificados é uma prática importante e muito valorizada, o uso desse método ajuda a criar uma cultura de desenvolvimento de alta qualidade.
Aprenda mais no treinamento de Extreme Programming aqui na Synergyc:
Treinamento: A Explicação do Extreme Programming (XP)