İyi bir hata isteği; beklenen davranışı, gerçekleşen sonucu ve sorunu yeniden oluşturan en kısa yolu birlikte verir. Yalnız “çalışmıyor” yazmak, aracı tahmin yürütmeye zorlar. Bütün projeyi paylaşmak yerine hatayı taşıyan küçük örneği hazırlamak hem teşhisi kolaylaştırır hem ilgisiz veriyi dışarıda tutar.
Bu isteğe küçük girdi dosyası, ilgili fonksiyon ve tam hata eklenirse araç davranışı kontrol edebilir. Düzeltme geldikten sonra aynı örneği ve daha önce çalışan bir kaydı tekrar deneyin. Hata metni değiştiyse bunun ilerleme mi, başka bir arıza mı olduğunu yeni sonuca göre değerlendirin.
Önce hatanın sınırını bulun
Bir kayıt formu başarısızsa sorun ekranın açılmaması, isteğin gönderilmemesi veya sunucunun isteği reddetmesi olabilir. Bunlar farklı düzeltmeler gerektirir. Hata metnini kendi yorumunuzla değiştirmeden alın; ardından hangi işlemin hemen sonrasında çıktığını yazın. Ekran görüntüsü yerleşimi gösterir, fakat kopyalanabilir hata metni arama ve satır eşleştirme için daha kullanışlıdır.Kısa ve tekrar edilebilir rapor hazırlayın
- Ortamı belirtin. Dil veya çalışma zamanı sürümünü, işletim sistemini ve kullandığınız çalıştırma komutunu yazın. Projede kilit dosyası varsa kullanılan bağımlılık sürümlerini onunla ilişkilendirin.
- Adımları gerçek sırada verin. Örneğin “uygulamayı başlat, boş e-posta ile formu gönder” gibi herkesin izleyebileceği eylemler kullanın. Giriş yapılmış olma gibi ön koşulu da ekleyin.
- Beklenen ve gerçekleşen sonucu ayırın. “Alan altında uyarı bekliyorum; bunun yerine boş sayfa açılıyor” ifadesi araştırmanın yönünü belirler.
- Hatanın ilk anlamlı satırını ve ilgili çağrı zincirini paylaşın. Sonraki yüzlerce aynı mesajı eklemeyin. Parola, erişim belirteci, kişisel kayıt ve bağlantı parolasını örnek değerle değiştirin.
- En küçük örneği tekrar çalıştırın. Gereksiz parçaları çıkardığınızda hata da kaybolduysa çıkardığınız parçanın bağımlılığını araştırın. Artık hata vermeyen örneği asıl sorunmuş gibi sunmayın.
Kullanılabilir bir istek örneği
Python 3 kullanıyorum. CSV dosyasından tutarları okuyorum. Boş hücre bulunduğunda o satırı rapora almak istiyorum, fakat ValueError ile işlem duruyor. Aşağıdaki üç satırlık örnek sorunu üretiyor. Önce hatanın nedenini açıkla, sonra yalnız boş hücre davranışını düzelt; diğer satırları atlama.
Bu isteğe küçük girdi dosyası, ilgili fonksiyon ve tam hata eklenirse araç davranışı kontrol edebilir. Düzeltme geldikten sonra aynı örneği ve daha önce çalışan bir kaydı tekrar deneyin. Hata metni değiştiyse bunun ilerleme mi, başka bir arıza mı olduğunu yeni sonuca göre değerlendirin.