Quando falamos de QA, a referência do momento é automação (ou automatização) de testes. 

Muitas empresas estão buscando por profissionais com foco em automatização e a pergunta que não quer calar é: essas empresas sabem o que a automatização de testes significa e quais são seus benefícios em um produto digital?  

Para prosseguir com esse tema é importante entender o que é a automatização e como ela afeta os resultados de um produto. 

Dito isso, vamos pensar no ciclo de vida do teste de software e em como ele pode contribuir para que cheguemos na resposta esperada. Para isso, devemos ter em mente algumas etapas importantes, conforme a imagem abaixo:

Automação (ou automatização) de testes: Imagem do ciclo de vida do teste de software: acima, uma barra indicando "planejamento". No meio, quatro caixinhas indicando etapas sequenciais: "procedimentos iniciais", "especificação", "execução" e "entrega".  O planejamento leva apenas às caixinhas de "especificação", "execução" e "entrega". Abaixo, uma barra indicando "preparação", que também leva para as etapas de "especificação", "execução" e "entrega".

O ciclo de vida, no ponto de vista de qualidade, nos leva ao objetivo de todo time envolvido em um produto: o usuário final não deve encontrar o famigerado bug ao entrar em contato com a aplicação

Para isso devem ser utilizadas estratégias e técnicas de testes a fim de encontrar quaisquer inconsistências críticas antes de ir para o ambiente de produção.

Agora que sabemos um pouco mais sobre os processos importantes, voltamos ao assunto principal do nosso texto.

O que é automação de testes?

A automatização de testes  nada mais é do que um script criado com a responsabilidade de testar a aplicação de forma literal: validar todas as funcionalidades do produto que necessitam operar como o esperado – aquele famoso caminho feliz! 

É importante lembrar que não paramos por aqui. Para conseguirmos chegar a resultados precisos e certeiros é necessário ter uma definição de escopo e metas bem definidas. 

Por se tratar de um projeto de desenvolvimento, precisamos ter atenção em cada passo da implementação da automação, sobretudo aos objetivos desejados. Ter metas e escopo bem definidos é a chave para o sucesso em todo processo.

Algumas metas que podemos alcançar com automação são:

  • Cobrir casos de testes e executar esses mesmos em diferentes versões e dispositivos móveis;
  • Diminuir o tempo do ciclo de regressão;
  • Aumentar a frequência em que são realizados.

Um exemplo desse último ponto é rodar esses testes em horários ociosos, onde possamos estender a produtividade.

Contudo não devemos esquecer que para chegarmos em uma suíte de testes automatizados E2E (end-to-end; aquele que testa o fluxo da aplicação como um todo), precisamos ter testes manuais coesos e fáceis de se interpretar. 

Se tivermos esse passo bem definido, a próxima etapa se torna simples: automatizar cenários estáveis com os resultados desejados, uma vez que os scripts serão responsáveis por simular o uso real da aplicação.

Mas cuidado: como eu disse acima, automação de testes é um projeto de código. O Bruno, CEO da Sofist, escreveu aqui no blog recentemente sobre a importância de se usar as ferramentas e estratégias corretas para o seu projeto de automatização.

Não é incomum ouvirmos que empresas utilizam ferramentas de captura e repetição para automatizar seus testes, mas isso não é a estratégia mais indicada.

Entenda um pouco mais do porquê no vídeo abaixo:

Se quiser se aprofundar no assunto, leia mais aqui.

Quando e o que eu devo automatizar?

Quando falamos em qualidade de software, é muito importante desvencilhar que qualidade é apenas o ato dos testes. Na verdade, existem muitas técnicas que podem ser aplicadas a fim de se chegar ao que chamamos de cultura da qualidade.

Leia mais: Bug Bash: promovendo uma saudável caça aos bugs no seu projeto de software

Essencialmente, é importante levar a visão da qualidade para o início do processo de desenvolvimento. Desse modo, conseguimos disseminar aos poucos em todos os profissionais de tecnologia de uma empresa o mindset de que a qualidade é dever de todos, e não apenas do QA.

Isso traz diversos benefícios, como (mas, claro, não limitados a esses):

  • Menos envio de bugs para produção;
  • Correção antecipada de bugs encontrados;
  • Redução de custos de problemas;
  • Produtos com mais qualidade sendo disponibilizados para os usuários.

É claro que os testes devem entrar nesse planejamento. Porém, o que muitas empresas sedentas por automatizadores não sabem ou ao menos não se atentam é que testes manuais e automatizados são complementares, uma vez que a validação humana ainda não pode ser totalmente substituída (quem sabe se no futuro tivermos uma rebelião das máquinas esse cenário não mude ?).

Por isso é muito importante que o time de QA, em parceria com outros times, planeje a automação junto ao desenvolvimento do produto (muitas vezes até mesmo antes do desenvolvimento de algum cenário), mantendo assim um alinhamento a fim de identificar quais funcionalidades devem ser automatizadas e quais devem ser testadas de forma manual.

A partir daí surge a dúvida: qual cenário automatizar?

Em um primeiro momento muitos dizem: “Vamos automatizar tudo“, mas pera lá que não é bem assim! 

Primeiro: automatizar leva tempo, sem contar que devemos entender que automação não “é tudo”.

É necessário investir forças em automatizar o que é crítico para a aplicação, buscando respostas rápidas sobre o funcionamento esperado. Após termos os caminhos críticos cobertos e as manutenções em dia (por conta das mudanças no projeto), podemos pensar em expandir os cenários para caminhos não críticos a fim de aumentar a cobertura de testes no produto.

É necessário entender os caminhos mais críticos do seu produto e priorizá-los na hora de planejar sua estratégia de automação de testes.

Implementar automação é desafiador, mas o maior desafio está em entender sua real necessidade e principalmente entender que a automação não é só do profissional de qualidade, mas de toda equipe (afinal, quem mais indicado do que o próprio desenvolvedor para criar seus testes unitários, não?).

Após ter todas as pontas bem definidas, fica claro que para iniciar o desenvolvimento da automação é preciso se atentar ao contexto, entendendo quais os padrões de arquitetura, frameworks e linguagens serão usadas.

Agora que esclarecemos de fato as necessidades e o conceito de automação, é importante lembrar: garantia da qualidade não é só sentar numa cadeira e botar a mão no código. Se casarmos os processos e os aplicarmos bem, todo o empenho durante uma jornada de qualidade se converte no principal foco de qualquer responsável por um produto: entregar um software de alta qualidade e que ofereçam experiências incríveis aos seus usuários. 

Leave a Reply