Ir para o conteúdo principal
Clinford Jordano Valencia
Todos os projetos
Plataforma

Uma ferramenta de injeção de estado para testes

Injeção de estado com apoio do servidor que permite a QA e à automação saltar direto para qualquer etapa de um fluxo longo, reduzindo a preparação de testes de regressão de muitos minutos para menos de um.

Stack
TypeScript · Playwright · BFF · Test database

O problema

Para checar um bug na etapa 5 de um fluxo longo, era preciso antes concluir à mão as etapas 1 a 4: dados válidos, uploads, verificações. Toda vez, em cada pull request e em cada execução automatizada.

A abordagem

A ferramenta permite que uma pessoa de testes ou um script abra o app já no estado de que precisa.

  1. Um script do Playwright ou uma pessoa de QA carrega a página com um token de teste seguro, por exemplo ?state=step_4_ready.
  2. O frontend vê o token na hidratação e o encaminha em um cabeçalho para o BFF.
  3. O BFF confirma que o ambiente é estritamente não produtivo e então prepara a sessão do usuário no banco de testes: etapas anteriores concluídas, ponteiro ativo na etapa 4.
  4. O BFF devolve um token de sessão real e a interface exibe a etapa 4 imediatamente.

Escolhi a injeção com apoio do servidor em vez de simular o localStorage no cliente. Apps modernos validam sessões no backend, então um mock só no cliente se afasta da realidade e produz testes que passam aqui e falham em produção.

O resultado

A preparação de testes de regressão caiu de 10–20 minutos por ciclo para menos de um minuto. Com muitas execuções de pull requests e suítes de automação por semana, isso devolveu centenas de horas de engenharia por trimestre.