Trem verde andando sobre os trilhos em alta velocidade com o fundo desfocado devido a velocidade.
Imagem de Shutterbug75 por Pixabay

9 Dicas para implementar automação de testes para equipes com projetos em andamento.

Maximiliano Alves
4 min readOct 8, 2021

Fiquei com essa ideia na cabeça durante dias, hoje decidi escrever um pouco de como tenho atuado e pensado sobre estratégias de implementação de automação para equipes que estão com projetos em andamento. Muitas das estratégias que tenho pensado são aplicáveis em projeto com squads destintas que atuam com foco somente em uma parte do produto e também como equipes de QAs que trabalham com testes manuais e automatizados em um mesmo fluxo.

Sabemos que é extremamente complicado adicionarmos automações dentro de uma equipe e cultura que está em funcionamento durante anos, nestes itens abaixo estão conhecimento técnico, escolha de frameworks, identificação e priorização do tipo de automação utilizada para retornar uma maior cobertura com menor tempo e tudo isso enquanto o trem está andando.

Abaixo vou elencar 9 itens que podemos verificar e adicionar em nosso plano de estratégias para essas automações.

1. Criar processo/documentação de fluxo de tarefas de um QA.

Uma parte super importante que por vezes negligenciamos, é definirmos papéis e fluxos. Ex.:

  1. Analisar funcionalidade e elencar cenários de testes;
  2. Escrita de cenários e analise das possíveis automações.
  3. Quando ocorrer a execução dos cenários propostos realizar em conjunto a automação.

Seguindo um exemplo prático, quando executamos os cenários de testes para API, utilizamos alguma ferramenta para realizar requests HTTP, seu próprio framework de testes de API já faz essas requests HTTP, você pode montar os cenários na automação e validar ao mesmo tempo que cria a automação. Por isso definir nossos processos junto com a equipe se torna um passo importantíssimo para implementarmos automação no processo e projeto.

2. Organizar, criar e estruturar os cenários de testes.

Independente de como esse cenário será escrito é importante revisar e repensar a localização dos cenários de testes e assim refletir esse cenários dentro da automação. Com cenários de testes organizados podemos criar links relacionando nossa automação com os cenários de teste e também podemos manter dashboards para acompanhar o andamento da automação assim como identificar cenários analisados e prontos para automatizar. Utilizando os cenários também podemos definir o nível de criticidade de cada cenário, assim parametrizando o que é mais importante ser automatizado.

3. Analisar em qual camada do sistema está a maior parte das regras de negócio.

Normalmente em projetos temos testes unitários, testes de componentes, testes de API, testes de UI, entre outros. Identificar em qual/quais dessas camadas estão as regras de negócio do produto entregue é muito importante. Segue um exemplo: nos softwares modernos é comum usarmos micro serviços e dentro destes micro serviços colocamos as regras de negócio do sistema, isso informa que o nosso principal cuidado na estratégia de automação de testes é testes unitários nos micro serviços e teste API, assim temos um cobertura maior das regras de negócio do software entregado, estabelecendo uma maior qualidade deste produto.

4. Estabelecer qual porcentagem de testes será aplicada em cada tipo de teste.

Todos sabemos que não é saudável automatizar tudo em todas as frentes de um projeto e para estabelecermos quantidade de esforço efetivo assim como a porcentagem de alocação de teste recorremos a analise que fizemos acima. Testes unitário são mais rápidos, podemos ter uma estratégia e ter uma porcentagem de alocação muito maior em teste unitário e testes de API, traduzindo para o mundo real, podemos alocar os esforços sendo 50% em testes unitário, 30% em testes de API e 20% em testes de UI esse exemplo é levando em consideração uma alocação básica de esforço para criação de automação.

5. Escolha de framework alinhada as linguagens de programação existentes nos projetos.

Escolher um framework alinhado ao projeto é primordial para o andamento e o tempo de vida desta automação. Se o backend utiliza Java como linguagem principal, utilizar Java para seus testes de API é uma boa via, pois você recebe junto todo o conhecimento e auxilio dos desenvolvedores, assim como vias de encontrar as melhores práticas mais facilmente. Outro ponto é escolher frameworks que já tenham uma vida longa, não tanto o hypes, principalmente por não ter muito cases de projetos longos e com grandes manutenções. Um adendo que vale a pena considerar adicionar essa automação junto ao código de desenvolvimento, assim conseguimos também utilizar o fluxo de Gitflow, aumentando a qualidade do código gerado.

6. Cursos, dojos, meetups internos para compartilhamento do conteúdo das automações.

Ter um trilha de aprendizado continuo dentro da equipe é essencial para o bom desempenho da automação, provavelmente algumas das pessoas inseridas no time terão seu primeiro contato com automação junto ao seu fluxo de trabalho normal, então encontros quinzenais para passagem de conhecimento sobre as ferramentas e testes executados é lindoo!

7. Cocriação das automações para o projeto.

Realize um processo de cocriação da arquitetura da automação com todas as posições da equipe, crie sua arquitetura e escolha suas ferramentas conforme a necessidade de seu projeto, realize POC com a equipe e faça momentos de discussão da arquitetura, torne a automação e a qualidade uma responsabilidade de todos.

8. Acompanhamento de evolução das squads

Após adicionar e distribuir a automação entre as squads/equipes, vem a parte do acompanhamento dessa evolução da automação, ter um board ou até mesmo utilizar o git para adicionar issues técnicas de evolução da automação é muito importante, além de promover relatório da coberturas para a distribuição tanto para os QAs quanto para Agile Masters, Product Owners e Business owner.

9. CIs com relatórios configurados.

Esse é o último item, mas não o menos importante. Não deixe sua automação rodando somente na sua maquina, ao primeiro passo da criação da arquitetura da automação já adicione um circuito de CI (Jenkins, Azure Devops, CircleCI, entre outros) e junto a este circuito adiciona relatórios conclusivos e uteis para sua automação, uma recomendação é utilizar o Allure Report.

Tentei passar algumas percepções que tenho enfrentado nos projetos, espero que gostem.

--

--

Maximiliano Alves

QA Lead, Software automation lover, musician and in love with automation for mobile projects.