Rodadas de melhor de 5 no p95 do test_units_store depois das correções de testes instáveis da madrugada

Ler o original em inglês

testingci-cdperformanceguardrails

Imagem de capa: Rodadas de melhor de 5 no p95 do test_units_store depois das correções de testes instáveis da madrugada

Um teste de p95 do test_units_store com orçamento de 20 ms passava na melhor de até cinco rodadas, então uma lentidão intermitente também passava.

O melhor de 5 entrou junto com as outras correções de testes instáveis

A mudança no teste de p95 do units_store era um item de um commit sobre testes instáveis da madrugada, que o log conta como “3 bugs de teste e 1 falha real”. Os outros itens:

  • test_compact_stages e test_refresh_lock_masking calculavam o tempo na importação, então agora calculam a cada teste.
  • test_signin_hold ganhou uma espera de 120s.
  • commit_scope_guard ganhou um timeout do git de 600s.
  • O teste de p95 do units_store passou para o melhor de 5 rodadas, com o orçamento de 20 ms inalterado.
  • A falha real estava em hook_block_pretransition_edit. A sonda do git estourava o tempo em 3s e liberava a edição sob carga. Agora ela espera 15s e bloqueia em caso de falha, com 3 testes novos.

A revisão das 16:55

Uma revisão desse commit chegou às 16:55 com um achado de severidade média na linha 59 do arquivo de teste. O achado era sobre pegar o menor p95 entre até cinco rodadas. Isso transforma um orçamento de desempenho de p95 em outra verificação, porque basta uma rodada rápida para passar.

A mediana de cinco rodadas fixas

Um commit separado passa a validar a mediana de 5 rodadas fixas em vez do melhor de 5, com o orçamento de 20 ms inalterado. A validação antiga pegava o menor p95 entre até cinco rodadas. A nova sempre executa cinco e exige que a do meio fique em 20 ms, então uma lentidão intermitente não passa mais.

Receba o próximo post do Follow the Build

As falhas e correções reais de quem constrói sistemas de IA, uma lição prática por post. Receba o próximo na sua caixa de entrada.