Delta hata ayıklama - Delta debugging

Delta Hata Ayıklama , hipotez-deneme-sonuç döngüsünün bilimsel bir yaklaşımını kullanarak programların hata ayıklamasını otomatikleştirmeye yönelik bir metodolojidir . Bu metodoloji ilk olarak 1999 yılında Saarland Üniversitesi'nden Andreas Zeller tarafından geliştirilmiştir.

Pratikte, Delta Hata Ayıklama algoritması, arıza nedenlerini otomatik olarak izole etmek için birim testini temel alır - arızaya neden olan koşulları minimum bir küme kalana kadar sistematik olarak daraltarak. Örneğin, aradığınız hatayı üretecek bir test senaryosu sağlayabilirseniz, bunu Delta Hata Ayıklama algoritmasına besleyebilirsiniz; bu algoritma daha sonra yeniden oluşturmak için gerekli olmayan işe yaramaz işlevleri ve kod satırlarını kırpmaya çalışır. 1-minimal bir program bulunana kadar hata.

Delta Hata Ayıklama, başarısızlığa neden olan program girişini (örneğin, bir Web tarayıcısının başarısız olmasına neden olan bir HTML sayfası), başarısızlığa neden olan kullanıcı etkileşimini (örneğin, bir programın çökmesine neden olan tuş vuruşları) veya program kodunda hataya neden olan değişiklikleri yalıtmak için uygulanmıştır. (örneğin, başarısız bir regresyon testinden sonra).

Daha sonra bazı yazılım geliştirme araçları gibi Delta Debugging'ı, ilham almıştır kenarortay komutların bir revizyon kontrolü sistemleri (örneğin, git-kenarortay, svn-kenarortay, hg-bisect, vs.), bunun yerine programın kod üzerinde çalışan , hatalı değişiklik bulunana kadar çeşitli sürümleri karşılaştırarak kod geçmişine delta hata ayıklama metodolojisini uygulayın.

Son zamanlarda, Ağ İletişim Kutusunu Minimize Etme , orijinal iletişim kutusundan ağ trafiğinin en küçük alt kümesini bulmak için delta hata ayıklamaya dayalı bir teknik önerilmiştir; bu, yeniden oynatıldığında hala orijinal iletişim kutusuyla aynı hedefe ulaşır.

Yazılım

Ayrıca bakınız

Referanslar

  • Andreas Zeller: Programlar Neden Başarısız: Sistematik Hata Ayıklama Kılavuzu , Morgan Kaufmann, ISBN  1-55860-866-4
  • Kod Geçmişinden Öğrenmek Delta Hata Ayıklama'nın orijinal mucidinden Google Tech Talk'ta bir sunum
  1. ^ Zeller, Andreas (1999). "Dün programım çalıştı. Bugün çalışmıyor. Neden?". Yazılım Mühendisliği — ESEC/FSE '99 . Bilgisayar Bilimleri Ders Notları. 1687 (Yazılım Mühendisliği—ESEC/FSE'99 doi:10.1007/3-540-48166-4_16  ed.). Springer. s. 253–267. doi : 10.1007/3-540-48166-4_16 . ISBN'si 978-3-540-66538-0.
  2. ^ M. Zubair Rafique; et al. "Ağ İletişim Kutusunun Minimizasyonu ve Ağ İletişiminin Farklılaşması: Ağ Güvenliği Uygulamaları için İki Yeni İlkel" (PDF) . 30. Yıllık Bilgisayar Güvenliği Uygulamaları Konferansı Tutanakları içinde (ACSAC 2014) . ACM.
  3. ^ danielwilkerson.com
  4. ^ "Genetik Algoritmalar Yoluyla Yazılım Hatalarının Tespiti" . 2014-03-05 . Erişim tarihi: 22 Temmuz 2015 .

Dış bağlantılar