Automação de testes de software - por que e como

É fundamental responder a várias perguntas antes de iniciar a jornada da automação de testes de software. Neste artigo, também o ajudaremos a analisar algumas das mais importantes.

Um grupo de colegas discutindo a automação de testes de software

A corrida pela automação de testes de software tem o potencial de não atender às expectativas do cliente, com um número incontável de scripts "inúteis" que ninguém usará, por causa de uma simples mudança funcional ou na arquitetura do sistema. E uma longa espera pelo retorno prometido do investimento e pela economia esperada.

Tudo isso por não estabelecer claramente a direção e as metas de nossas iniciativas de automação de testes de software desde o início da jornada.

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, nós o ajudaremos a analisar algumas das mais importantes:

Por que a automação de testes de software?

Essa pergunta pode parecer óbvia, e muitas organizações talvez já tenham várias respostas claras em mente. "Para economizar horas em testes de regressão", "para promover a agilidade" ou "para monitorar ambientes pré-produtivos", para citar alguns exemplos. Independentemente disso, por que a automação de testes de software ainda é 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 sobre o mesmo fluxo de trabalho.

Com tantos scripts, ficou muito difícil gerenciar e monitorar. Em seguida, o software mudou. Tornou-se impossível manter todos os scripts, então foi mais conveniente desenvolver tudo novamente do zero. Porém, dessa vez, fazendo todas as validações do fluxo em um único script.

Os vários "como" da automação

Uma vez que o objetivo da automação esteja claro, outra questão importante é: "como fazer isso?". E várias outras surgem a partir daí, tais como:

  • O que sabemos sobre automação?
    A primeira coisa que recomendo é identificar a situação atual em termos do que sabemos sobre o assunto. A lacuna entre o COMO ESTÁ e o COMO SERÁ é uma das primeiras coisas a serem eliminadas ou reduzidas. Tudo o que fizermos deve estar fundamentado em um conhecimento sólido do assunto. Ter pessoas capacitadas internamente ou um parceiro experiente pode ser muito útil nessa fase.
  • Tenho uma equipe ou um parceiro com as habilidades necessárias?
    Ter as pessoas certas, ou um parceiro, é fundamental para o sucesso. Não apenas pelo conhecimento técnico, mas também pela capacitação que elas têm para atingir o objetivo.
  • Quanto custará o projeto?
    Normalmente, uma 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 permaneça produtiva, a forma como eles são alcançados não deve, de forma alguma, tornar-se o processo para o futuro. O objetivo de uma PoC é saber se "isso pode ser feito" e, se for, é hora de começar a planejar!
  • Quando devo esperar ver os resultados?
    No final das contas, a automação é um projeto de desenvolvimento, o que permite um planejamento direto. Ou pode ser tratada em um sprint, de modo que os tempos 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 no sistema.
  • Devo automatizar tudo?
    Não necessariamente: qualidade em vez de quantidade. Tecnicamente, eu me atreveria a dizer que "100% dos testes podem ser automatizados". Entretanto, para conseguir isso, incorreríamos em 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, ou o já falho 80/20 (Pareto). Afinal de contas, o que importa é ter muito claro o valor que o script que estou desenvolvendo contribui para o cumprimento dos objetivos comerciais.
  • Como vou medir o resultado da minha automação?
    Definir KPIs. Como em qualquer planejamento estratégico, os KPIs devem ser definidos com base na meta principal e nos objetivos secundários. Considere alguns indicadores de qualidade, que também são relevantes para essa área. Alguns exemplos de KPIs são:
    • Taxa de defeitos: defeitos encontrados pelo script (de preferência usando a densidade de defeitos).
    • Tipos de defeitos: codificação, ambiente, dados, etc.
    • Taxa de falha: de 100% de uma execução de script, qual porcentagem resulta em erro.
    • Minutos de execução manual VS minutos de execução automatizada: isso permite identificar a economia de tempo gerada pelo seu script.
    • % de cobertura de automação: fluxos automatizáveis sobre o universo total de fluxos de teste do sistema (não é recomendável definir uma meta alta. De fato, não devemos nem mesmo ter uma meta).
    • % Progresso no desenvolvimento da automação: fluxos automatizados VS fluxos automatizáveis. Dependendo do seu plano, é preciso comparar o planejado com o realizado.

Lição principal: planejamento automação de testes de software

Então, até aqui, entendemos que automatizar não é tão trivial como nos disseram: montar um servidor aleatório (geralmente qualquer estação de trabalho), gerar um script com qualquer ferramenta e nos dedicar a executar repetidamente, como se quanto mais execuções ou scripts tivermos, mais perto estaremos de nosso objetivo. Simplesmente não é assim que funciona.

O que precisa permanecer após essa análise é que, antes de embarcar no caminho da automação, você deve parar, pelo tempo que for necessário, para claramente: definir objetivos > planejar > priorizar > definir KPIs e metas > e estabelecer pontos de controle e métodos de rastreamento focados no valor da automação, não na quantidade de scripts que temos que exibir.

E, caso já esteja nesse caminho e a perspectiva não seja positiva, faça a si mesmo estas perguntas para orientá-lo em relação às oportunidades de melhorar sua equipe.

Uma palavra final sobre automação de testes de software

Para finalizar, e voltando ao "porquê", a seguir estão algumas abordagens que podem ser dadas à automação e, ao mesmo tempo, agregar grande valor à organização:

  • Automatize para promover a agilidade
    Sob essa perspectiva, não é conveniente 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 é bom incluir os testes que levam mais tempo para serem executados manualmente (para se concentrar 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 especializado que deve se concentrar em outros fluxos). O ideal é que as execuções desses testes sejam acionadas 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 do código de dados correspondente (idealmente também automatizada).
  • Automatize para monitorar a estabilidade dos sistemas
    Ao fazer uma grande modificação em um sistema, as análises de impacto geralmente deixam passar 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é a correção ou a reversão da alteração. Nesse foco de automação, é aconselhável considerar apenas os "caminhos felizes" 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 on-line se um sistema, serviço ou servidor apresentar problemas. Se formos mais longe em termos de aviso "on-line", poderemos acionar um e-mail, SMS ou uma mensagem de aviso em ferramentas como o HipChat, para que os membros da equipe fiquem sabendo rapidamente sem precisar consultar o painel.

Entre em contato conosco

Para obter mais informações sobre automação de testes de software, entre em contato com nossos especialistas ou visite o site da Getronics

Equipe editorial da Getronics

Neste artigo:

Compartilhar esta publicação

Fale com um de nossos especialistas

Se você está considerando uma nova experiência digital, qualquer que seja o estágio em que se encontre em sua jornada, nós adoraríamos conversar.