perguntas frequentes
Perguntas, respondidas.
O que realmente causa testes instáveis?
Quase sempre estado compartilhado, timing e condições de corrida, ou dependências de ordem de execução dos testes — não falta de sorte. Eu diagnostico a fonte em vez de aplicar retry indiscriminadamente.
Você só adiciona retries?
Retries são um paliativo que esconde o sinal. Eu instalo uma faixa de quarentena e uma política de retry enquanto corrijo a causa raiz — isolamento, esperas, fixtures.
Vocês vão reconstruir toda a nossa suíte?
Raramente. Manter sua suíte existente e torná-la confiável é mais rápido e mais barato; uma reconstrução é o último recurso, não o primeiro passo.
Que resultado posso esperar?
Uma suíte rápida e estável onde vermelho significa vermelho. Em um cargo full-time anterior, reduzi a taxa de flake de uma suíte em produção de ~10% para menos de 1% e o tempo de execução de 45 para 8 minutos (auto-reportado).
Como você mede nossa taxa real de flake antes de começar?
Eu re-executo sua suíte em várias rodadas de CI sobre o mesmo código, sem alterações, e conto os testes que alternam entre passar e falhar. Isso dá uma taxa real de flake e uma lista ranqueada dos piores culpados antes de eu tocar em qualquer coisa.
Qual é a política de quarentena — testes instáveis são desabilitados?
Testes instáveis vão para uma faixa de quarentena, não para o lixo. Eles continuam rodando e reportando, mas param de bloquear o pipeline principal enquanto corrijo a causa raiz, e depois voltam à ativa quando se mostram estáveis.
Quanto tempo leva para ficar abaixo de um por cento?
Depende do tamanho da suíte e de quão profundas são as fontes de flake. Eu coloco em quarentena cedo para que seu pipeline se torne confiável rápido, e depois trabalho as correções de causa raiz em ordem de prioridade.
Isso funciona com nossa suíte existente ou exige uma reescrita?
Funciona com sua suíte existente. Seja com Playwright, Pytest ou outro framework, eu estabilizo o que você já tem em vez de começar do zero — uma reconstrução é o último recurso.
Como você encontra a causa raiz de um teste instável?
Eu isolo o teste que falha, executo na ordem e fora dela e inspeciono estado compartilhado, timing e fixtures até a falha se reproduzir sob demanda. Um flake que você consegue reproduzir é um bug que você consegue corrigir.
O que ficamos ao final que impede o flake de voltar?
Uma suíte estabilizada mais as proteções que a mantêm assim — uma faixa de quarentena, uma política de retry e padrões de isolamento que sua equipe aplica a novos testes. O sinal permanece confiável depois que eu saio.