Дельта-отладка - это методология автоматизации отладки программ с использованием научного подхода цикла гипотеза-проба-результат. Эта методология была впервые разработана Андреасом Зеллером из Саарландского университета в 1999 году [1].
На практике алгоритм дельта-отладки основан на модульном тестировании для автоматического выявления причин сбоя - путем систематического сужения числа обстоятельств, приводящих к сбоям, до тех пор, пока не останется минимальный набор. Например, если вы можете предоставить тестовый пример, который приведет к возникновению ошибки, которую вы ищете, то вы можете передать это алгоритму Delta Debugging, который затем просто попытается обрезать бесполезные функции и строки кода, которые не нужны для воспроизведения. ошибка, пока не будет найдена 1-минимальная программа.
Дельта-отладка применялась для изоляции ввода программы, вызывающей сбой (например, HTML-страница, которая приводит к сбою веб-браузера), вызывающего сбой взаимодействия с пользователем (например, нажатия клавиш, вызывающие сбой программы) или вызывающих сбой изменений в программном коде. (например, после неудачного регрессионного теста).
Позже, некоторые инструменты разработки программного обеспечения, был вдохновлен Delta Debugging, например, делящие команд по пересмотру контрольных систем (например, ГИТ-Bisect, СВН-Bisect, Hg-Bisect и т.д.), которые, вместо того , чтобы работать над кодом программы , примените методологию дельта-отладки к истории кода, сравнивая различные версии, пока не будет обнаружено ошибочное изменение.
Недавно была предложена методика минимизации сетевого диалога , основанная на дельта-отладке, чтобы найти наименьшее подмножество сетевого трафика из исходного диалога, который при воспроизведении по-прежнему достигает той же цели, что и исходный диалог [2]
Андреас Зеллер: Почему программы не работают: руководство по систематической отладке , Морган Кауфманн, ISBN 1-55860-866-4
Изучение истории кода Презентация на Google Tech Talk от первого изобретателя Delta Debugging
Перейти ↑ 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.
^ М. Зубайр Рафик; и другие. «Минимизация сетевого диалога и различие сетевых диалогов: два новых примитива для приложений сетевой безопасности» (PDF) . В материалах 30-й ежегодной конференции по приложениям компьютерной безопасности (ACSAC 2014) . ACM.
^ danielwilkerson.com
^ «Обнаружение ошибок программного обеспечения с помощью генетических алгоритмов» . 2014-03-05 . Проверено 22 июля 2015 года .
внешние ссылки
Проект Delta Debugging - обширная коллекция ссылок на инструменты и методы дельта-отладки.
Курс Udacity по отладке программного обеспечения от Андреаса Зеллера
Эта статья о компьютерном программировании - незавершенная . Вы можете помочь Википедии, расширив ее .
v
т
е
Категории :
Отладка
Заготовки для компьютерного программирования
Скрытые категории:
Статьи, нуждающиеся в очистке, с декабря 2014 г.
Все страницы, нуждающиеся в очистке
Очистить статьи с тегами с указанием причины за декабрь 2014 г.
Страницы Википедии, нуждающиеся в очистке с декабря 2014 г.
Статьи с отсутствующими достоверными ссылками за апрель 2011 г.
Все статьи без надежных ссылок
Статьи с темами неясной значимости от октября 2010 г.