自动化调试工具

gab*_*ous 4 debugging automation automated-tests

我最近发现了自动化调试的神奇世界,您的工具尝试自动隔离导致错误的代码部分。从那时起,我找到了一些工具,例如:

  • 使用应用于调试的科学方法进行增量调试(在DD.py中实现)。
  • 静态和动态程序切片提取子程序跟踪,突出显示您想要观察的变量。
  • git-bisect使用二分法应用于代码历史记录并与增量调试混合以快速找到导致错误的更改。

我有兴趣寻找更多用于自动调试的算法,这些算法可以自动化调试过程的部分(或全部?),并且存在实用的工作实现,特别是:

  • 诸如增量调试之类的方法(可以通过使用系统/自动化方法精确查明代码中发生错误的位置和原因)。
  • 有没有一种软件可以自动生成一个最小的程序,从完整的程序中重现错误?

注意:我引用的一些工具主要针对Python,但我正在寻找任何语言的自动调试工具,我感兴趣的是方法和算法,而不是具体的实现,但我需要一个实现(甚至是概念证明)因为我想要已经实际应用于实际问题的算法(即它们有效,但这不是计算机科学哲学)。

澄清:我不是在寻找自动化测试工具(自动测试以查找新错误),而是在您遇到特定错误并希望在代码中找到根源的自动化调试方法。

gab*_*ous 5

我发现了一些可以生成重现错误的最小程序的软件:

  • DD.py实际上有两个函数:dd() 查找引入错误的最小更改,dmin() 查找最小配置(即最小测试用例)。
  • Delta,一个专门为此目的量身定制的程序。

我还在 Udacity 上找到了一门名为Software Debugging 的课程,由delta debug 的原作者 Andreas Zeller讲授。

旁注:这些也是有些相关的工具(虽然它们主要是单元测试工具,但它们可以与自动化调试结合使用,所以它是相关的):

我仍在寻找自动化调试的替代方法。