İşe yarayan döngü
Etkili hata ayıklama bir döngüdür: hatayı hassas biçimde gözle, onu açıklayacak tek bir hipotez kur, o hipotezi test etmek için tek değişkeni değiştir ve sonucu kaydet. Kaydetme adımını atlamak, aynı düzeltmeyi iki kez deneyip fark etmemenin yoludur.
'Şimdi çalışıyor, neden bilmiyorum' düzeltilmiş bir hata değildir; tetiklenme koşulları bilinmeyen ve en kötü zamanda geri dönecek bir hatadır.
Örnek senaryo: kararsız bir test
Örnek senaryo: bir test on çalıştırmada bir başarısız oluyor. Geçene kadar CI'ı yeniden başlatmak tahmin yaklaşımıdır. Hipotez yaklaşımı: başarısızlık paralel çalıştırmayla ilişkili, o hâlde hipotez testler arası paylaşılan durum. Test: paketi seri çalıştır. Kayıt: seri çalıştırmada hata kayboluyor, paylaşılan durum doğrulanıyor; artık düzeltmenin bir hedefi var.
Bu açıklama amaçlı bir senaryodur; belirli bir projeden aktarılan bir rapor değildir.
Disiplin daha yavaş hissettirir
Şanslı bir tahmin otuz saniyede çözebilecekken hipotezleri yazıya dökmek bürokratik hissettirir. Ama şanslı tahminlerin beklenen değeri negatiftir: başarısız olduklarında saatler harcar, başardıklarında hiçbir şey öğretmezler. Disiplinli döngü deneme başına daha yavaş, hata başına daha hızlıdır.
Kısa hata ayıklama kontrol listesi
Hiçbir şeyi değiştirmeden önce hatayı güvenilir biçimde yeniden üretin; deneyden önce hipotezi yazın; her seferinde tek değişken değiştirin; ne denediğinizi ve ne olduğunu kaydedin; düzelttiğinizde kök nedeni bir sonraki kişi için yazın.
