Come riprodurre un bug che fallisce solo una volta a settimana
I bug intermittenti non sono davvero casuali. Hanno trigger — semplicemente non li hai ancora trovati. Ecco il processo sistematico.
Intermittente non significa casuale
Il primo cambio mentale è accettare che non sono casuali. Il bug si attiva ogni volta che una combinazione specifica di condizioni si allinea.
Passo 1: Catturare lo stato completo al fallimento
La prossima volta che il bug si attiva, cattura ogni pezzo di stato rilevante.
Passo 2: Enumerare le ipotesi prima di testarne alcuna
Elenca ogni causa plausibile. Race condition. Cache stantia. Forma di input specifica. Pressione di memoria.
Passo 3: Progettare un test falsificabile per ciascuna
Ogni ipotesi necessita di un test che la dimostrerebbe falsa.
Passo 4: Comprimere il tempo tra i tentativi
Costruisci un harness che attivi il carico sospetto il più velocemente possibile.
Passo 5: Verificare che la riproduzione sia causale
Se rimuovere X fa fermare il bug e rimetterlo lo fa tornare, X è causale.
Dove si inserisce l'assistenza AI
L'enumerazione delle ipotesi è la più soggetta all'ancoraggio. Far passare i sintomi attraverso Reloadium Edge Case Debugger fa emergere categorie di ipotesi che il team non avrebbe considerato.