O que é automação de testes?
Automação de testes é a prática de rodar testes por meio de software em vez de ter pessoas executando-os manualmente.
Testes manuais, uma pessoa clicando pelo app e verificando resultados, não escalam. É lento, inconsistente e tedioso de repetir. A automação de testes entrega esse trabalho às máquinas, então os testes rodam instantaneamente, de forma idêntica e com a frequência que você quiser.
O que é
Automação de testes significa escrever testes como código e rodá-los com um framework ou ferramenta, em vez de executá-los manualmente. A mesma suíte pode rodar em um laptop, em um servidor de CI, a cada commit, sem tempo humano por execução. O investimento é inicial; o retorno é repetição ilimitada.
Como funciona
Você codifica o comportamento esperado como testes automatizados, unit, integration, end-to-end, e um test runner os executa e reporta resultados. No CI, esse runner é acionado automaticamente a cada mudança, e um teste que falha bloqueia a mudança de progredir. Os testes se tornam um portão, não uma tarefa chata.
Um exemplo
Um time que antes passava uma tarde verificando manualmente cada release agora tem uma suíte automatizada que roda as mesmas verificações em minutos a cada pull request. Um bug que teria escapado de um testador manual cansado é detectado no momento em que é introduzido.
Por que é essencial para o CI/CD
Integração e entrega contínuas dependem de uma resposta rápida e confiável para "esta mudança é segura?" Apenas testes automatizados podem entregar essa resposta a cada mudança, em minutos, sem gargalos humanos. Sem automação de testes, não há CI de verdade, apenas um servidor de build rodando um pipeline vazio.
O que automatizar primeiro
- Verificações de alto valor e frequentes, como os caminhos críticos do usuário.
- Qualquer coisa tediosa e propensa a erro de fazer manualmente.
- Verificações de regression para cada bug que você corrige.
- Unit tests rápidos, que dão o melhor retorno por segundo.
Principais conclusões
- Automação de testes roda testes via software em vez de manualmente.
- Ela permite verificação instantânea e repetível a cada mudança.
- Sem ela, a verdadeira integração contínua é impossível.