Дельта-отладка


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Дельта-отладка - это методология автоматизации отладки программ с использованием научного подхода цикла гипотеза-проба-результат. Эта методология была впервые разработана Андреасом Зеллером из Саарландского университета в 1999 году [1].

На практике алгоритм дельта-отладки основан на модульном тестировании для автоматического выявления причин сбоя - путем систематического сужения числа обстоятельств, приводящих к сбоям, до тех пор, пока не останется минимальный набор. Например, если вы можете предоставить тестовый пример, который приведет к возникновению ошибки, которую вы ищете, то вы можете передать это алгоритму Delta Debugging, который затем просто попытается обрезать бесполезные функции и строки кода, которые не нужны для воспроизведения. ошибка, пока не будет найдена 1-минимальная программа.

Дельта-отладка применялась для изоляции ввода программы, вызывающей сбой (например, HTML-страница, которая приводит к сбою веб-браузера), вызывающего сбой взаимодействия с пользователем (например, нажатия клавиш, вызывающие сбой программы) или вызывающих сбой изменений в программном коде. (например, после неудачного регрессионного теста).

Позже, некоторые инструменты разработки программного обеспечения, был вдохновлен Delta Debugging, например, делящие команд по пересмотру контрольных систем (например, ГИТ-Bisect, СВН-Bisect, Hg-Bisect и т.д.), которые, вместо того , чтобы работать над кодом программы , примените методологию дельта-отладки к истории кода, сравнивая различные версии, пока не будет обнаружено ошибочное изменение.

Недавно была предложена методика минимизации сетевого диалога , основанная на дельта-отладке, чтобы найти наименьшее подмножество сетевого трафика из исходного диалога, который при воспроизведении по-прежнему достигает той же цели, что и исходный диалог [2]

Программное обеспечение

  • delta - компьютерная программа для минимизации "интересных" файлов при проверке их на интересность [3]
  • DD.py - реализация Delta Debugging на Python; также см. его учебник
  • Литий - реализация Python улучшенного алгоритма отладки дельты.
  • C-Reduce , который уменьшает исходные файлы, написанные на C / C ++, использует алгоритмы Delta.
  • Perses - независимый от языка редуктор для минимизации программ, использующий алгоритм отладки Delta.
  • Плагины Eclipse
    • DDinput - вход, вызывающий отказ
    • DDchange - изменения, вызывающие отказ
    • DDstate - Состояния, вызывающие отказ
  • XMLmate [4]
  • Реализация Common Lisp
  • Игорь - инструмент командной строки

Смотрите также

  • Биссекция (программная инженерия)
  • Программа нарезки

использованная литература

  • Андреас Зеллер: Почему программы не работают: руководство по систематической отладке , Морган Кауфманн, ISBN  1-55860-866-4
  • Изучение истории кода Презентация на Google Tech Talk от первого изобретателя Delta Debugging
  1. Перейти ↑ Zeller, Andreas (1999). «Вчера моя программа работала. Сегодня не работает. Почему?». Программная инженерия - ESEC / FSE '99 . Конспект лекций по информатике. 1687 (Разработка программного обеспечения - ESEC / FSE'99 DOI : 10.1007 / 3-540-48166-4_16  изд.). Springer. С. 253–267. DOI : 10.1007 / 3-540-48166-4_16 . ISBN 978-3-540-66538-0.
  2. ^ М. Зубайр Рафик; и другие. «Минимизация сетевого диалога и различие сетевых диалогов: два новых примитива для приложений сетевой безопасности» (PDF) . В материалах 30-й ежегодной конференции по приложениям компьютерной безопасности (ACSAC 2014) . ACM.
  3. ^ danielwilkerson.com
  4. ^ «Обнаружение ошибок программного обеспечения с помощью генетических алгоритмов» . 2014-03-05 . Проверено 22 июля 2015 года .

внешние ссылки

  • Проект Delta Debugging - обширная коллекция ссылок на инструменты и методы дельта-отладки.
  • Курс Udacity по отладке программного обеспечения от Андреаса Зеллера


Источник « https://en.wikipedia.org/w/index.php?title=Delta_debugging&oldid=1032931498 »