Testes Visuais Flaky: Por Que Destroem seu QA e Como Estabilizá-los
Um teste flaky (ou teste instável) é um teste que produz resultados diferentes — sucesso ou falha — para o mesmo código e a mesma configuração, sem que nenhuma modificação tenha sido feita ao sistema testado.
Uma opinião que pode incomodar: um teste visual flaky é pior do que nenhum teste. Um teste ausente não custa nada no dia a dia. Não bloqueia seu pipeline. Não consome o tempo da equipe. Não destrói a confiança na infraestrutura de teste. Um teste flaky faz tudo isso, todos os dias, insidiosamente.
Os dados do Google sobre seus próprios sistemas de teste são eloquentes: aproximadamente 1,5% de seus testes são flaky a qualquer momento, mas consomem uma parcela desproporcional do tempo de engenharia.
Por que os testes visuais são particularmente vulneráveis à instabilidade
O teste visual automatizado introduz uma camada de não-determinismo que testes unitários ou funcionais não possuem. A renderização de uma página web é o resultado de uma cadeia complexa de processos, cada um introduzindo sua própria variabilidade.
As quatro causas principais dos testes visuais flaky
Timing: o problema que você não pode ignorar
A web é assíncrona por natureza. O carregamento de uma página não é um evento único — é uma cascata de eventos. Nenhum sinal garante que a renderização visual está completa.
Animações: movimento em um meio estático
Um screenshot é uma imagem fixa. Uma animação é mudança contínua. Os dois são fundamentalmente incompatíveis para comparação automatizada.
Conteúdo dinâmico: tudo que muda sem você
Datas, horas, publicidade, avatares gerados — tudo varia entre execuções de teste.
Rede e infraestrutura: as variáveis que você não controla
Seu teste roda em um ambiente que depende de recursos externos. A latência varia entre execuções.
O custo real dos testes flaky
O custo mais destrutivo é a perda de confiança. Quando uma equipe aprende que os testes visuais falham "o tempo todo" sem razão, desenvolve um reflexo de relançamento automático. E o bug chega à produção.
Estratégias de estabilização que funcionam
Controlar o ambiente de renderização
Usar um navegador headless em um container controlado com resolução fixa, fontes pré-instaladas e configuração de rede determinística.
Neutralizar as animações
Injetar uma folha de estilo que force todas as animações e transições a duração zero.
Estabilizar o conteúdo dinâmico
Fixar datas e horas, desativar widgets de terceiros, mockar dados de API.
Esperar inteligentemente
Usar estratégias de espera baseadas no estado real da página, não em atrasos fixos.
Adotar uma comparação que tolere ruído
A abordagem estrutural — comparar DOM e propriedades CSS computadas — é a mais resistente ao ruído de renderização.
O teste visual no-code como solução ao problema de manutenção
Ferramentas no-code como Delta-QA eliminam a camada de fragilidade dos scripts. Você não escreve scripts — configura seus testes visualmente.
Quando deletar um teste flaky
Se um teste visual falha intermitentemente apesar de todas as tentativas de estabilização, a decisão mais corajosa — e frequentemente mais sábia — é deletá-lo. O objetivo não é ter o máximo de testes — é ter testes nos quais sua equipe confia.
FAQ
Qual é a diferença entre um teste flaky e um falso positivo?
Um falso positivo sinaliza um problema que não existe. Um teste flaky produz resultados inconsistentes de uma execução para outra para o mesmo código.
Como medir a taxa de flakiness?
Execute a mesma suíte várias vezes sem alterar o código e conte os testes cujo resultado muda.
Testes visuais no-code são menos flaky?
Eliminam uma categoria de flakiness — a dos scripts. Mas continuam sujeitos às mesmas restrições de renderização do navegador.
Deve-se relançar automaticamente os testes que falham?
O retry é um paliativo, não uma solução. Se ativar, limite a um retry e marque os testes para investigação.
Qual é o limiar de flakiness aceitável em CI/CD?
Mire menos de 1%. Acima de 5%, sua equipe provavelmente relança sistematicamente os pipelines que falham.
Delta-QA ajuda a estabilizar testes visuais?
Delta-QA reduz a flakiness na origem usando abordagem estrutural. Variações de sub-pixel rendering, antialiasing e timing são ignoradas nativamente. Combinado com a abordagem no-code, produz resultados confiáveis e reprodutíveis sem configuração complexa.
Um teste visual só tem valor se sua equipe confia nele. Testes flaky destroem essa confiança dia após dia.