我最近发现了自动调试的惊人世界,其中你的工具会尝试自动隔离导致错误的代码部分。从那时起,我找到了一些工具,如下所示:
- delta debugging(在DD.py中实现),使用应用于调试的科学方法。
- 静态和动态程序切片,提取子程序跟踪,突出显示您要观察的变量。
- git-bisect,使用应用于代码历史记录的二分法并与delta调试混合以快速查找引起错误的更改。
我对查找更多的自动调试算法感兴趣,它们可以自动化调试过程的某些部分(或全部),并且存在一个实际的工作实现,特别是:
- 使用Delta Debugging等方法(可以通过系统化/自动化的方式精确定位代码中出现错误的位置和原因)。
- 是否有软件可以从完整程序中自动生成重现错误的最小程序?
NB:我引用的一些工具主要面向Python,但我正在寻找任何语言的自动调试工具,我感兴趣的是方法和算法,而不是特定的实现,但我需要一个实现(即使只是概念证明),因为我想要已经实际应用于真实问题的算法(即它们是有效的,这不仅仅是计算机科学哲学)。
澄清:我不是在寻找自动化测试工具(自动测试以查找新错误),而是自动调试方法,其中您需要查找代码中特定错误的起源。