Дельта-отладка
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Дельта-отладка — это методология автоматизации отладки программ с использованием научного подхода цикла «гипотеза-испытание-результат». Эта методология была впервые разработана Андреасом Целлером из Саарского университета в 1999 году. [1]
На практике алгоритм дельта-отладки основан на модульном тестировании для автоматической изоляции причин сбоя - путем систематического сужения обстоятельств, вызывающих сбой, до тех пор, пока не останется минимальный набор. Например, если вы можете предоставить тестовый пример, который выдаст искомую ошибку, вы можете передать его алгоритму дельта-отладки, который затем просто попытается удалить бесполезные функции и строки кода, которые не нужны для воспроизведения. ошибку, пока не будет найдена 1-минимальная программа.
Дельта-отладка применялась для изоляции ввода программы, вызывающего сбой (например, HTML-страницы, вызывающей сбой веб-браузера), взаимодействия пользователя, вызывающего сбой (например, нажатия клавиш, приводящие к сбою программы), или вызывающих сбой изменений в программном коде. (например, после неудачного регрессионного теста).
Позже некоторые инструменты разработки программного обеспечения были вдохновлены дельта-отладкой, например, команды bisect систем контроля версий (например, git-bisect, svn-bisect, hg-bisect и т. д.), которые вместо работы с кодом программы , примените методологию дельта-отладки к истории кода, сравнивая различные версии, пока не будет обнаружено ошибочное изменение.
Недавно была предложена минимизация сетевых диалогов, метод, основанный на дельта-отладке, для поиска наименьшего подмножества сетевого трафика из исходного диалога, который при воспроизведении все равно достигает той же цели, что и исходный диалог. [2]
Программное обеспечение
[ редактировать ]- дельта — компьютерная программа, минимизирующая «интересные» файлы при условии проверки их интересности. [3]
- DD.py — реализация дельта-отладки на Python; также см. его руководство
- Lithium — реализация на Python расширенного алгоритма дельта-отладки.
- C-Reduce , который уменьшает исходные файлы, написанные на C/C++, использует алгоритмы Delta.
- Perses — независимый от языка редуктор для минимизации программ, использующий алгоритм дельта-отладки.
- DustMite — инструмент общего назначения для сокращения данных, в основном используемый для сокращения D. программ [4]
- Плагины Eclipse
- DDinput — ввод, вызывающий сбой
- DDchange — Изменения, вызывающие сбои
- DDstate — состояния, вызывающие сбои
- XMLmate [5]
- Общая реализация Lisp
- Игорь — инструмент командной строки. Архивировано 19 июля 2011 г. на Wayback Machine.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Андреас Зеллер: Почему программы терпят неудачу: Руководство по систематической отладке , Морган Кауфманн, ISBN 1-55860-866-4
- Изучение истории кода. Презентация на Google Tech Talk первого изобретателя дельта-отладки.
- ^ Целлер, Андреас (1999). «Вчера моя программа работала. Сегодня нет. Почему?». Программная инженерия — ESEC/FSE '99 . Конспекты лекций по информатике. Том. 1687. Спрингер. стр. 253–267. дои : 10.1007/3-540-48166-4_16 . ISBN 978-3-540-66538-0 .
- ^ М. Зубайр Рафик; и др. «Минимизация сетевых диалогов и различие сетевых диалогов: два новых примитива для приложений сетевой безопасности» (PDF) . В материалах 30-й ежегодной конференции по приложениям компьютерной безопасности (ACSAC 2014) . АКМ.
- ^ Дэниелвилкерсон.com
- ^ DustMite, инструмент общего назначения для сокращения данных.
- ^ «Обнаружение ошибок программного обеспечения с помощью генетических алгоритмов» . 05.03.2014 . Проверено 22 июля 2015 г.
Внешние ссылки
[ редактировать ]- Проект Delta Debugging — обширная коллекция ссылок на инструменты и методы дельта-отладки.
- Курс Udacity по отладке программного обеспечения Андреаса Целлера