7 dicas para automatizar seus testes de software
Automatização de Testes não significa que, num passe de mágica, o teste de software será mais rápido, mais confiável e mais barato. Ou muito menos que nunca mais teremos erros nos sistemas. Os custos iniciais em ferramentas de automação e infraestrutura, bem como contratar e capacitar a equipe, podem ser elevados. Testes automatizados só compensam se a redução de custos a longo prazo compensa os investimentos iniciais.
Além disso, nem todas as ferramentas de automação e metodologias têm as mesmas características, funções e capacidades, e cada projeto pode ter necessidades diferentes que afetam os seus custos e benefícios. Para ajudá-lo a obter o máximo benefício de testes automatizados, oferecemos oito dicas com base em nossa experiência com mais de 200 projetos de teste de nível empresarial automatizados, nos últimos 16 anos. Projetos que incluem sistemas WEB, Batch, cliente/servidor, web services, mobile, bancos de dados, sistemas legados (com e sem documentação disponível) e testes de performance.
Seguindo essas dicas você poderá ter condições de aumentar o ROI de automação de teste e melhorar a qualidade do software.
- Planejar e projetar os testes
Entender qual o trabalho a ser feito, em qualquer área, é primordial para se obter sucesso. Em projetos de testes automatizados não é diferente. Ter um bom projeto do que será testado, quais funcionalidades mais importantes, qual a arquitetura do sistema ou aplicativo que será testado. Um bom projeto de testes, feito de forma detalhada, irá determinar um percentual alto de sucesso do projeto. Um bom projeto de testes automatizados irá gerar também o benefício de se ter documentação do sistema atualizada e consistente. Testes servem como documentação (são a melhor documentação que você vai ter). Se trata de uma documentação viva, especificação executável. Testes devem informar a intenção de um desenvolvedor
- Código de teste é tão importante quanto código de produção
A automação de testes precisa ser encarada com o mesmo rigor, padrões, melhores práticas e regras de um bom desenvolvimento de sistemas. Automatizar testes é gerar código executável de testes! Logo, testes bem escritos, com boa lógica de programação, clareza e em grupos pequenos no mesmo contexto, vão fazer com o teste automatizado tenha uma maior qualidade.
- Independente
Testes automatizados terão maior produtividade e alcançarão o ROI mais rápido se eles forem independentes. Um caso de teste não pode influenciar o resultado de outro e precisa ter feedback rápido. A independência dos testes precisa estar definida no projeto dos testes e está ligada diretamente à natureza do sistema ou funcionalidade que será alvo de testes.
- Consistente e Confiável
Uma etapa muito importante de toda mudança de processo é a conquista da confiança da equipe de desenvolvimento e do cilente em relação ao processo novo. Em se tratando de processo de testes automatizados não é diferente. O ambiente de testes automatizado deve conquistar a confiança da sua equipe, do seu gerente e do cliente. Um ambiente estável, consistente e confiável mantém seu valor durante toda a vida do produto.
- Foque a cobertura nas funcionalidades que mudam com maior frequência
Saber aquele monte de informação que você registra e não sabe quando irá usar? Então, chegou a hora! Usar estatísticas para projetos de testes automatizados é quase uma obrigatoriedade. Escreva e automatize testes para os erros encontrados em produção – você automaticamente estará testando o mais crítico. Funcionaldades que tem maior uso tendem a ter maior risco de se encontrar erros. Faça testes que realmente vão encontrar erros. Testar somente o fluxo principal de um processo de negócio ou de uma funcionalidade não garante cobertura completa.
- Não deixe o teste para o final
Faça testes ao longo do projeto, com entregas parciais. Não automatize testes somente no final do projeto. Quão mais próximo for a automação dos testes do momento em que se finalizou os testes manuais, maior será o benefício. Não se preocupe com a performance de execução de um teste, mas sim, com o paralelismo e concorrência. Quanto mais independente for o seu teste, mais rápido será a sua execução.
- Ter uma boa massa de testes é essencial
Planejar a massa de testes adequada para os cenários é uma atividade de extrema importância para a automação dos testes. Projete os testes de uma forma que não tenha que substituir banco de dados a cada nova versão a ser testada. Isto fará você perder todos os testes criados. Pense na possibilidade de se ter mais de uma base de teste (por cliente, por conjunto de cenários, etc). É melhor ter 1000 registros diferentes do que ter 1.000.000 iguais, ou seja, a variabilidade é melhor do que igualdade.