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
- delta - ilginçliklerini test eden "ilginç" dosyaları en aza indiren bir bilgisayar programı
- DD.py - Delta Hata Ayıklamanın Python uygulaması; ayrıca öğreticisine bakın
- Lityum - gelişmiş bir Delta Hata Ayıklama algoritmasının Python uygulaması
- C /C++ ile yazılmış kaynak dosyaları azaltan C-Reduce , Delta algoritmalarını kullanır.
- Perses - Delta hata ayıklama algoritmasını kullanan program minimizasyonu için dilden bağımsız bir indirgeyici.
-
Eclipse Eklentileri
- DDinput - Hataya Neden Olan Giriş
- DDchange - Hataya Neden Olan Değişiklikler
- DDstate - Arızaya Neden Olan Durumlar
- XML eş
- Ortak Lisp uygulaması
- Igor - komut satırı aracı
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
- ^ 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.
- ^ 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.
- ^ danielwilkerson.com
- ^ "Genetik Algoritmalar Yoluyla Yazılım Hatalarının Tespiti" . 2014-03-05 . Erişim tarihi: 22 Temmuz 2015 .
Dış bağlantılar
- Delta Hata Ayıklama projesi - delta hata ayıklama araçlarına ve yöntemlerine yönelik kapsamlı bağlantı koleksiyonu
- Andreas Zeller'den Yazılım Hata Ayıklama üzerine Udacity kursu