O que um framework de automação de testes realmente contém
Sessão e credenciais
Obter, guardar em cache e renovar tokens, por ambiente, com segurança entre workers paralelos.
Dados de teste
Criar o que cada teste precisa, isolar esses dados e remover exatamente aquilo depois.
Ordenação e dependências
Saber o que precisa rodar antes do quê e pular os testes dependentes em vez de marcá-los como falha.
Somam-se a isso relatórios que as pessoas realmente vão ler, configuração de ambiente, política de retentativas e uma forma de colocar um teste instável em quarentena sem perdê-lo. Os testes em si costumam ser a menor parte.
O custo oculto
Cada uma dessas peças é construída pela pessoa que montou o framework, em um estilo que só ela entende por completo. Quando essa pessoa sai, o framework vira algo que o time tem medo de mudar — e uma suíte que as pessoas têm medo de mudar é uma suíte que acaba em quarentena em vez de ser consertada.
Quando construir faz sentido
Requisitos fora do comum. Um protocolo, plataforma ou exigência de conformidade que nenhuma solução pronta atende.
Os testes são o centro do produto. Se você vende confiabilidade, ser dono dessa estrutura de execução pode ser estratégico.
Você tem capacidade contínua. Não uma pessoa por um trimestre. Um dono por anos.
Quando não faz sentido
Se a razão honesta é que o time gosta de construir ferramentas, ou que uma avaliação pareceu inconclusiva, o framework vai ser construído e depois lentamente abandonado. Esse é o caso mais comum, e vale dar nome a ele antes do primeiro commit.
Sinais de que o framework virou o produto
Vale ter alguns sinais concretos, porque a transição é gradual e ninguém anuncia quando ela acontece.
Alguém pergunta como adicionar um teste e a resposta leva mais de dois minutos para ser explicada. Novas pessoas no time escrevem o primeiro teste copiando um existente e trocando valores, sem entender as fixtures por baixo. Uma falha de teste levanta a dúvida de se o framework mudou. Existe um arquivo que ninguém quer tocar. O trabalho no framework aparece no planejamento da sprint como item próprio, com regularidade.
Dois quaisquer desses sinais e você tem um produto com uma base de clientes internos de um time só. Isso não está automaticamente errado; muitas organizações fizeram essa escolha de forma deliberada. Só vira problema quando aconteceu sem ninguém ter escolhido, que é o caso de sempre.
O caminho do meio
Mantenha testes escritos à mão para os casos que você especificou deliberadamente e deixe a cobertura gerada cuidar da amplitude, com os problemas de sessão, dados, ordenação e limpeza resolvidos como parte do produto, e não como a sua infraestrutura.
Terminal
npm install -g @testsprite/testsprite-cli
testsprite setup
A mesma configuração está disponível no dashboard da TestSprite, caso você prefira não instalar nada localmente. O restante da superfície do CLI está no repositório do CLI.
Se o pipeline pertence a outro time, o GitHub App é o caminho de menor resistência: é um webhook, não muda nada no seu repositório e dispara quando o seu build informa que a nova versão está no ar. Se você prefere que a verificação fique visível no repositório, um passo do GitHub Actions faz isso.
O que você recebe em vez de construir
As partes que iam virar a sua infraestrutura já vêm como produto. O Auto-Authentication mantém as sessões vivas ao longo de uma execução, as Dynamic Variables levam valores de uma chamada para outra, as Dependency Chains derivam a ordem de execução e o Auto-Cleanup remove exatamente o que a execução criou. Relatórios, configuração de ambiente e comportamento de retentativa vêm junto, então nada disso vira um arquivo que ninguém quer tocar.
A cobertura é gerada a partir do seu produto e refinada em linguagem simples, o que elimina a outra metade do custo: a parte em que cada teste precisa ser escrito por alguém cujo tempo é disputado.
O valor não está em dizer que construir é errado. Está no fato de que a maioria dos times nunca decidiu construir e descobre, no nono mês, que tem um produto com um único cliente interno. Manter os testes que você especificou deliberadamente e deixar que a estrutura de execução seja problema de outra pessoa é a versão disso que não acumula um dono que você nunca colocou no orçamento.
Quanto tempo leva para construir um framework?
A primeira versão funcional, semanas. A versão que lida com renovação de sessão, dados seguros em paralelo e relatórios legíveis, trimestres.
Qual é a parte mais subestimada?
Os dados de teste. Criar, isolar e limpar esses dados com segurança sob paralelismo é mais difícil do que todo o resto somado.
Devemos usar um framework já existente?
Quase sempre. Construir sobre um framework é diferente de construir um framework, e é o segundo que acontece silenciosamente.
Como saber se o nosso virou um passivo?
Quando as pessoas passam a contorná-lo, ou quando só uma pessoa consegue mudá-lo. Os dois são sinais tardios e os dois são comuns.
Dá para migrar para outra coisa depois?
Testes raramente são portáveis. Parta do princípio de que o investimento é irrecuperável e decida com base nisso.
Os testes são a parte pequena.
Um framework de automação de testes é gerenciamento de sessão, dados de teste, ordenação, relatórios e configuração. Construa um quando os requisitos forem realmente fora do comum e você tiver um dono por anos, não por um trimestre.