Debugowanie różnicowe

Delta Debugging to metodologia automatyzacji debugowania programów przy użyciu naukowego podejścia pętli hipoteza-próba-wynik. Metodologia ta została po raz pierwszy opracowana przez Andreasa Zellera z Uniwersytetu Saary w 1999 roku.

W praktyce algorytm Delta Debugging opiera się na testach jednostkowych , aby automatycznie izolować przyczyny awarii – poprzez systematyczne zawężanie okoliczności wywołujących awarie, aż pozostanie minimalny zestaw. Na przykład, jeśli możesz dostarczyć przypadek testowy, który wygeneruje błąd, którego szukasz, możesz przekazać go algorytmowi Delta Debugging, który następnie po prostu spróbuje przyciąć niepotrzebne funkcje i wiersze kodu, które nie są potrzebne do odtworzenia błąd, dopóki nie zostanie znaleziony program o minimalnej wartości 1.

Delta Debugging zostało zastosowane do izolowania powodujących awarie danych wejściowych programu (np. strona HTML, która powoduje awarię przeglądarki internetowej), wywołujących awarie interakcji użytkownika (np. naciśnięć klawiszy powodujących awarię programu) lub powodujących awarie zmian w kodzie programu (np. po nieudanym teście regresji).

Później niektóre narzędzia do tworzenia oprogramowania zostały zainspirowane debugowaniem delta, na przykład polecenia bisect systemów kontroli wersji (np. git-bisect, svn-bisect, hg-bisect itp.), które zamiast pracować nad kodem programu , zastosuj metodologię debugowania delta w historii kodu, porównując różne wersje, aż do znalezienia błędnej zmiany.

Ostatnio zaproponowano minimalizację dialogu sieciowego, technikę opartą na debugowaniu delta, aby znaleźć najmniejszy podzbiór ruchu sieciowego z oryginalnego okna dialogowego, który po odtworzeniu nadal osiąga ten sam cel, co oryginalne okno dialogowe

Oprogramowanie

Zobacz też

  •   Andreas Zeller: Dlaczego programy zawodzą: przewodnik po systematycznym debugowaniu , Morgan Kaufmann, ISBN 1-55860-866-4
  • Uczenie się na podstawie historii kodu Prezentacja na Google Tech Talk od pierwotnego wynalazcy debugowania delta
  1. ^   Zeller, Andreas (1999). „Wczoraj mój program zadziałał. Dziś nie. Dlaczego?”. Inżynieria oprogramowania — ESEC/FSE '99 . Notatki z wykładów z informatyki. Tom. 1687. Zygmunt. s. 253–267. doi : 10.1007/3-540-48166-4_16 . ISBN 978-3-540-66538-0 .
  2. ^ M. Zubair Rafique; i in. „Minimalizacja okna dialogowego sieci i różnicowanie okna dialogowego sieci: dwie nowe prymitywy dla aplikacji bezpieczeństwa sieci” (PDF) . W materiałach z 30. dorocznej konferencji poświęconej aplikacjom bezpieczeństwa komputerowego (ACSAC 2014) . ACM.
  3. znajdują się multimedia związane z danielwilkerson
  4. ^ DustMite, narzędzie do redukcji danych ogólnego przeznaczenia
  5. ^ „Wykrywanie błędów oprogramowania za pomocą algorytmów genetycznych” . 2014-03-05 . Źródło 22 lipca 2015 r .

Linki zewnętrzne