Powrót do aktualności
ReloadiumEdge Case DebuggerDevOpsDevDebugowanie

Jak odtworzyć buga, który zawodzi tylko raz w tygodniu

Bugi intermittentne nie są naprawdę losowe. Mają wyzwalacze — po prostu jeszcze ich nie znalazłeś. Oto systematyczny proces.

Intermittentny nie znaczy losowy

Pierwsza zmiana mentalna to zaakceptowanie, że nie są losowe. Bug uruchamia się za każdym razem, gdy konkretna kombinacja warunków się ułoży.

Krok 1: Uchwyć pełny stan przy awarii

Następnym razem, gdy bug się uruchomi, uchwyć każdy istotny element stanu.

Krok 2: Wylicz hipotezy przed testowaniem

Wylistuj każdą prawdopodobną przyczynę. Race condition. Stary cache. Specyficzny kształt wejścia. Presja pamięci.

Krok 3: Zaprojektuj falsyfikowalny test dla każdej

Każda hipoteza potrzebuje testu, który dowiódłby jej fałszywości.

Krok 4: Skompresuj czas między próbami

Zbuduj uprząż, która wyzwala podejrzane obciążenie tak szybko, jak to możliwe.

Krok 5: Zweryfikuj, że reprodukcja jest przyczynowa

Jeśli usunięcie X zatrzymuje buga, a przywrócenie go sprowadza go z powrotem, X jest przyczynowe.

Gdzie pasuje pomoc AI w debugowaniu

Wyliczenie hipotez jest najbardziej podatne na zakotwiczenie. Przepuszczenie objawów przez Reloadium Edge Case Debugger wyłania kategorie hipotez, których zespół by nie rozważył.

Udostępnij