2015-07-21 3 views
0

Я недавно открыл удивительный мир автоматической отладки, где ваш инструмент пытается автоматически изолировать часть кода, вызывающую ошибку. С тех пор я нашел некоторые инструменты, подобные этим:Автоматизированные инструменты отладки

  • delta debugging (внедрение в DD.py) с использованием научной методологии, применяемой для отладки.
  • статические и динамические program slicing извлечение трассировки подпрограммы, выделение переменных, которые вы хотите наблюдать.
  • git-bisect с использованием bisection применяется к истории кода и смешивается с дельта-отладкой, чтобы быстро найти, какое изменение вызвало ошибку.

Я заинтересован в поиске более алгоритмов для автоматизированной отладки, которая может автоматизировать какую-то часть (или все?) Процесс отладки и где практичная рабочая реализация существует, в частности:

  • подходы, такие как дельта-отладка (которые могут точно определить, где и почему ошибка возникает в коде с помощью систематического/автоматизированного подхода).
  • есть программное обеспечение, которое может автоматически генерировать minimal program that reproduces a bug из полной программы?

NB: некоторые инструменты, я цитировал в основном ориентированы на Python, но я ищу для автоматизированных средств отладки на любом языке, что интересно мне, такой подход и алгоритмы, а не конкретной реализации, но требует реализации (даже доказательство концепции), потому что мне бы хотелось, чтобы алгоритмы, которые уже были практически применены к реальным проблемам (т. е. они работают, это просто не философия компьютерной науки).

Уточнение: я не ищу автоматические средства тестирования (которые автоматически проверяют, чтобы найти новую ошибку), но автоматические подходы к отладке, где у вас есть конкретная ошибка, которую вы хотите найти в коде.

+0

См. Также http://stackoverflow.com/questions/15157903/are-their-semi-automatic-tools-to-help-produce-minimal-test-cases-similar-to-gi?rq=1 и http : //stackoverflow.com/questions/23035891/what-is-the-name-for-this-bug-finding-technique-and-do-programs-exist-to-automat? rq = 1 – gaborous

+0

Для downvoters: возможно объясните, почему вы отказались? Я думал, что этот вопрос соответствует рекомендациям: речь идет о программировании, и он достаточно точен (автоматические инструменты/подходы к отладке). На это нет тысячи различных возможных ответов, поэтому это, конечно, не слишком широко. – gaborous

+0

Я отредактировал этот вопрос, чтобы лучше подойти к ним. Скажите, пожалуйста, если вы считаете, что некоторые улучшения все еще необходимы. – gaborous

ответ

2

Я нашел несколько программного обеспечения, которые могут генерировать минимальную программу, которая воспроизводит ошибку:

  • DD.py фактически имеет две функции: DD(), чтобы найти минимальное изменение, которое вводится ошибка, и ddmin (), который находит минимальную конфигурацию (т. е. минимальный тестовый пример).
  • Delta, программа, специально предназначенная для этой цели.

Я также нашел курс по Udacity под названием Software Debugging, который представлен Andreas Zeller, the original author of delta debugging.

Примечание стороны: это также несколько связанных инструментов (хотя они в основном модульного тестирования инструментов, они могут быть использованы в сочетании с автоматизированной отладки, так что это своего рода родственный):

Я до сих пор ищу альтернативные подходы к автоматизированной отладке.

Смежные вопросы