Skip to content
Latchkey

O Que É Flakiness de CI? Explicação

Flakiness de CI é a propriedade geral de um pipeline produzir resultados não confiáveis e não reproduzíveis: builds vermelhos que na verdade não são sobre seu código.

Flakiness é mais amplo do que qualquer teste flaky isolado. É a falta de confiabilidade agregada da sua CI: com que frequência um build falha por razões que um retry resolveria ou que não têm nada a ver com a mudança em teste. Alta flakiness destrói silenciosamente o valor da CI como sinal.

Flakiness vs um teste flaky

Um teste flaky é um teste não confiável. A flakiness de CI é a taxa, no nível do sistema, de resultados não confiáveis, que inclui testes flaky mas também falhas transitórias de infraestrutura, falhas mecânicas como out-of-memory kills e ruído ambiental. É o total de tudo que torna um build vermelho indigno de confiança.

O que a impulsiona

  • Testes flaky e não determinísticos (tempo, estado compartilhado, aleatoriedade).
  • Infraestrutura transitória: instabilidades de rede, timeouts de registry, rate limits.
  • Falhas mecânicas: out-of-memory kills, esgotamento de disco, preempções.
  • Timeouts apertados demais e runners subdimensionados.

Por que ela é tão custosa

A flakiness impõe uma taxa sobre toda mudança: investigações que não encontram nada, retries manuais e merges mais lentos. Pior: ela corrói a confiança, então os times começam a ignorar o vermelho, e uma regressão genuína acaba indo para produção porque ninguém acreditou na falha.

Medindo e reduzindo-a

Você não pode gerenciar o que não mede. Acompanhe uma taxa de teste flaky ou de falha de pipeline, separe falhas transitórias das determinísticas e ataque primeiro os maiores contribuintes: torne os testes determinísticos, dimensione corretamente os runners e faça retry automático das falhas transitórias genuínas.

A perspectiva da Latchkey

Uma grande parcela da flakiness de CI é ambiental e não bugs de teste. Os managed runners com autocorreção da Latchkey detectam falhas transitórias e mecânicas como instabilidades de rede, timeouts de registry e out-of-memory kills e automaticamente fazem retry, de modo que uma instabilidade isolada não faça seu build falhar, cortando diretamente o componente ambiental da flakiness.

Principais conclusões

  • Flakiness de CI é a taxa, em todo o sistema, de resultados não confiáveis e não reproduzíveis.
  • Ela inclui testes flaky mais falhas transitórias e mecânicas.
  • Ela taxa toda mudança e corrói a confiança na CI como sinal.
  • Meça-a e depois ataque testes e infraestrutura separadamente.

Guias relacionados