Como reproduzir um bug que só falha uma vez por semana
Os bugs intermitentes não são realmente aleatórios. Têm gatilhos — apenas ainda não os encontrou. Eis o processo sistemático.
Intermitente não significa aleatório
A primeira mudança mental é aceitar que não são aleatórios. O bug dispara cada vez que uma combinação específica de condições se alinha.
Passo 1: Capturar o estado completo na falha
Da próxima vez que o bug disparar, capture cada pedaço de estado relevante.
Passo 2: Enumerar hipóteses antes de testar
Liste cada causa plausível. Race condition. Cache obsoleta. Forma de entrada específica. Pressão de memória.
Passo 3: Conceber um teste falsificável para cada
Cada hipótese precisa de um teste que a prove falsa.
Passo 4: Comprimir o tempo entre tentativas
Construa um harness que dispare a carga suspeita o mais rápido possível.
Passo 5: Verificar que a reprodução é causal
Se remover X parar o bug e voltar a colocá-lo o fizer voltar, X é causal.
Onde a assistência de IA se encaixa
A enumeração de hipóteses é a mais sujeita à ancoragem. Passar os sintomas pelo Reloadium Edge Case Debugger faz emergir categorias de hipóteses que a equipa não teria considerado.