Automação de testes de software – por que e como
É fundamental responder a várias perguntas antes de iniciar a jornada de automação de testes de software. Neste artigo, também ajudamos você a analisar por conta própria algumas das mais importantes.

É fundamental responder a várias perguntas antes de iniciar a jornada de automação de testes de software. Neste artigo, também ajudamos você a analisar por conta própria algumas das mais importantes.
A corrida pela automação de testes de software corre o risco de não atender às expectativas dos clientes, gerando uma quantidade incontável de scripts “inúteis” que ninguém vai usar, devido a uma simples alteração funcional ou na arquitetura do sistema. Além disso, há uma longa espera pelo retorno sobre o investimento prometido e pelas economias esperadas.
Tudo isso por não termos definido claramente, desde o início da jornada, a direção e os objetivos de nossas iniciativas de automação de testes de software.
Um caminho claro começa com o “porquê”
Para evitar esses resultados indesejados, é fundamental responder a várias perguntas antes de iniciar a jornada de automação. Neste artigo, vamos ajudá-lo a analisar por conta própria algumas das mais importantes:
Por que automatizar os testes de software?
Essa pergunta pode parecer óbvia, e muitas organizações talvez já tenham várias respostas claras em mente. “Para economizar horas nos testes de regressão”, “para promover a agilidade” ou “para monitorar ambientes pré-produtivos”, para citar alguns exemplos. Independentemente disso, “por que automatizar os testes de software” continua sendo a pergunta mais importante.
E, por mais importante que seja definir o “porquê”, é igualmente crucial comunicá-lo à sua equipe para que ninguém perca de vista as metas de automação.
Em um caso, embora os objetivos da automação fossem claros e tivessem sido compartilhados com o parceiro, ele seguiu um caminho diferente e criou um grande número de scripts para o mesmo fluxo de trabalho.
Com tantos scripts, ficou muito difícil gerenciar e monitorar. Então, o software mudou. Ficou impossível manter todos os scripts, por isso foi mais prático desenvolver tudo novamente do zero. No entanto, desta vez, realizando todas as validações do fluxo em um único script.
Os diversos “comos” da automação
Uma vez que o objetivo da automação esteja claro, surge outra questão importante: “como fazer isso?”. E, a partir daí, surgem várias outras, tais como:
- O que sabemos sobre automação?
A primeira coisa que eu recomendaria é identificar a situação atual (AS-IS) em termos do que sabemos sobre o assunto. A lacuna entre a situação atual (AS-IS) e a situação desejada (TO-BE) é uma das primeiras coisas a ser eliminada ou reduzida. Tudo o que fizermos deve se basear em um conhecimento sólido do assunto. Contar com profissionais qualificados internamente ou com um parceiro experiente pode ser muito útil nessa fase.
- Tenho uma equipe ou um parceiro com as competências necessárias para fazer isso?
Contar com as pessoas certas, ou com um parceiro, é fundamental para o sucesso. Não apenas pelo conhecimento técnico, mas também pelo empenho que demonstram em alcançar o objetivo.
- Quanto custará o projeto?
Normalmente, um PoC (prova de conceito) ou um MVP (produto mínimo viável) é suficiente para nos dar uma ideia dos custos. Embora a maioria dos PoCs continue produtiva, a forma como são realizados não deve, de forma alguma, se tornar o processo a ser seguido no futuro. Um PoC tem como objetivo verificar se “isso é possível” – e, se for, é hora de começar a planejar!
- Quando devo esperar ver resultados?
No fim das contas, a automação é um projeto de desenvolvimento, o que facilita o planejamento. Ou pode ser realizada dentro de um sprint; assim, os prazos serão determinados pelo tamanho do que queremos fazer. O cenário ideal é: pegar um sistema que seja um bom candidato à automação, automatizar um fluxo de complexidade média e, em seguida, usar esse tempo de referência para planejar o restante dos fluxos do sistema.
- Devo automatizar tudo?
Não necessariamente: qualidade em vez de quantidade. Tecnicamente, eu ousaria dizer que “100% dos testes podem ser automatizados”. No entanto, para alcançar isso, teríamos custos muito altos, o que nos obrigaria a descartar a ideia.
- O que é realmente conveniente automatizar?
Priorizar o urgente em detrimento do importante é uma boa técnica, assim como a já questionável regra 80/20 (Pareto). Afinal, o que importa é ter muita clareza sobre o valor que o script que estou desenvolvendo agrega ao cumprimento dos objetivos de negócios.
- Como vou avaliar o resultado da minha automação?
Defina os KPIs. Assim como em qualquer planejamento estratégico, os KPIs devem ser definidos com base na meta principal e nos objetivos secundários. Leve em consideração alguns indicadores de qualidade, que também são relevantes para essa área. Alguns exemplos de KPIs são:- Taxa de defeitos: defeitos detectados pelo script (de preferência, utilizando a densidade de defeitos).
- Tipos de defeitos: codificação, ambiente, dados, etc.
- Taxa de falha: a partir de 100% da execução de um script, sendo que essa porcentagem resulta em erro.
- Minutos de execução manual x minutos de execução automatizada: isso permite identificar a economia de tempo gerada pelo seu script.
- % de cobertura de automação: fluxos automatizáveis em relação ao universo total de fluxos de teste do sistema (não é recomendável definir uma meta alta. Na verdade, nem deveríamos ter uma meta).
- % de progresso no desenvolvimento da automação: fluxos automatizados x fluxos automatizáveis. Dependendo do seu plano, é preciso comparar o planejado com o realizado.
Lição principal: planejamento da automação de testes de software
Então, até aqui, entendemos que a automação não é tão simples quanto nos diziam: montar um servidor qualquer (geralmente qualquer estação de trabalho), gerar um script com qualquer ferramenta e nos dedicar a executá-lo repetidamente, como se, quanto mais execuções ou scripts tivéssemos, mais perto estaríamos do nosso objetivo. Simplesmente não funciona assim.
O que deve ficar claro após essa análise é que, antes de embarcar na jornada da automação, é preciso parar, pelo tempo que for necessário, para: definir claramente os objetivos > planejar > priorizar > definir KPIs e metas > e estabelecer pontos de controle e métodos de acompanhamento focados no valor da automação, e não na quantidade de scripts que precisamos executar.
E caso você já esteja trilhando esse caminho e as perspectivas não sejam positivas, faça a si mesmo estas perguntas para se orientar em direção às oportunidades de melhorar sua equipe.
Uma consideração final sobre a automação de testes de software
Para concluir, e voltando à questão do “porquê”, seguem abaixo algumas abordagens que podem ser adotadas em relação à automação, ao mesmo tempo em que agregam grande valor à organização:
- Automatizar para promover agilidade
Nessa perspectiva, não é aconselhável automatizar 100% dos casos de teste. Em vez disso, considere apenas os fluxos de trabalho funcionais mais críticos para evitar qualquer impacto nos negócios devido a uma nova versão (testes regressivos). Além disso, também é recomendável incluir os testes que levam mais tempo para serem executados manualmente (para nos concentrarmos nos testes manuais dos novos casos/fluxos que criamos devido à alteração no código). Por fim, inclua os mais complexos, que exigem conhecimento funcional avançado (isso também permite dispensar o analista funcional especialista, que deve se concentrar em outros fluxos). A execução desses testes é, idealmente, acionada em um esquema de integração contínua antes do envio de uma nova modificação de código e após a execução da inspeção de dados correspondente (idealmente também automatizada).
- Automatize o monitoramento da estabilidade dos sistemas
Ao realizar uma grande modificação em um sistema, as análises de impacto muitas vezes deixam de identificar algumas integrações com outros sistemas, e é comum que um impacto não identificado afete a operação de um ou mais sistemas. Isso faz com que os testes sejam interrompidos até que a correção ou a reversão da alteração seja realizada. Nesse contexto de automação, é recomendável considerar apenas os “Happy Paths” e testar esses fluxos de trabalho várias vezes ao dia de forma programada (por exemplo, com o Jenkins), o que nos permite descobrir rapidamente, por meio de um painel online, se um sistema, serviço ou servidor está enfrentando problemas. Se formos além em termos de notificação “online”, podemos acionar um e-mail, SMS ou uma mensagem de alerta em ferramentas como o HipChat, para que os membros da equipe sejam informados rapidamente, sem precisar acessar o painel.
Entre em contato conosco pelo e-mail
. Para obter mais informações sobre automação de testes de software, entre em contato com nossos especialistas ou acesse o site da Getronics


