Template per Analisi della Causa Radice di un Bug
Per sviluppatori che vogliono smettere di tirare a indovinare: trasforma un bug in una procedura ordinata di ipotesi falsificabili, evidenze, isolamento e causa radice, fino al fix e al test di regressione che impedisce il ritorno del problema.
Esempio di output
BUG: il totale carrello mostra 0 quando l'utente applica due coupon. 1. SINTOMI E DATI NOTI - Atteso: somma sconti applicata una volta. Osservato: totale = 0. - Riproducibile: si, sempre, con 2+ coupon. Ambiente: prod e staging. - Cambiato di recente: refactor del calcolo sconti (commit a3f1). 2. IPOTESI (ordinate per probabilita) | # | Ipotesi | Probabilita | Come falsificarla | |---|---------|-------------|-------------------| | H1 | Sconti sommati come percentuale > 100% | Alta | Logga sconto_totale con 2 coupon | | H2 | Divisione per zero su quantita | Media | Test con quantita=1 | | H3 | Bug di arrotondamento | Bassa | Confronta con valori interi | 3. ESPERIMENTI ED EVIDENZE - H1: log mostra sconto_totale = 1.4 (140%) -> totale clampato a 0. CONFERMA H1. - H2: riprodotto anche con quantita=1 -> H2 SMENTITA. 4. CAUSA RADICE Il refactor a3f1 somma gli sconti percentuali invece di applicarli in sequenza; con due coupon supera il 100% e il clamp porta il totale a 0. 5. FIX Applicare gli sconti in sequenza moltiplicativa, non additiva. // before: sconto = c1 + c2 // after: prezzo = prezzo * (1-c1) * (1-c2) 6. TEST DI REGRESSIONE Test: due coupon 30%+20% su 100 -> atteso 56, non 0. Fallisce senza il fix. 7. ALTRI PUNTI AFFETTI Verificare la stessa logica additiva in calcoloSpedizione() — stessa causa radice probabile.
Domande frequenti
Piu sintomi concreti dai, meglio e: comportamento atteso vs osservato, messaggio o stack trace, passi per riprodurre, ambiente e cosa e cambiato di recente. Il prompt usa solo cio che fornisci e marca come 'Da verificare' qualsiasi passo che richiede dati che non hai ancora dato.
Perche impone il metodo scientifico: genera piu ipotesi concorrenti, le ordina per probabilita, e per ognuna definisce un esperimento che la conferma o la SMENTISCE. Questo evita il fix a caso che maschera il sintomo senza toccare la causa radice.
Si: la procedura termina sempre con un test di regressione che riproduce il bug e fallirebbe senza il fix, piu una nota su altri punti del codice potenzialmente affetti dalla stessa causa radice.
Vuoi un template su misura?
Costruiscine uno in poche domande — con la struttura corretta per il tuo standard.