Decided or Open? Comparing Program Repair Techniques When Patch Correctness Is Unknown
本文提出了一个“已定或开放”框架,通过计算可能的成功率差异的全范围,在不确定性下比较自动化程序修复技术,从而使研究人员能够识别哪些比较可以通过进一步测试来解决,并揭示不同模型之间存档测试结果可靠性的显著差异。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在软件世界中,程序不可避免地会出错。当一段代码无法实现其应有的功能时,开发者必须找出错误并编写新版本的代码来修复它。这个过程既缓慢又困难,因此研究人员数十年来一直试图构建能够自动进行修复的计算机程序。这些自动化工具会扫描损坏的程序,生成数千个可能的解决方案,并尝试挑选出那个有效的方案。为了了解这些工具是否正在进步,科学家们会将它们相互对比。他们将工具运行在一组已知的损坏程序上,并统计每个工具产生正确修复的次数。但在这种比较中存在一个隐藏的问题:科学家们往往并不真正确定生成的修复是否正确。一个修复可能通过了计算机运行的测试,但这并不保证它是正确的;它可能只是一个恰好适用于特定问题的聪明谎言。如果没有人工检查,许多修复仍处于灰色地带,既不被标记为对,也不被标记为错。
这种不确定性使得人们无法确定哪种自动化修复工具才是真正最好的。如果两个工具进行比较,而结果取决于少数几个未经验证的修复,那么胜者可能仅仅是一个巧合。来自 BRAC 大学(BRAC University)的 Sadnan Nafis 的一项新研究正面应对了这一问题。他没有试图去猜测每一个未验证修复的答案,而是开发了一种衡量可能结果范围的方法。他提出了一个简单而强大的问题:基于我们现有的信息,比较的结果是确定的,还是完全取决于未知的修复?通过计算每一个缺失信息可能对应的最佳情况和最坏情况,该研究确定了比较是“已定论的”(decided)还是“开放的”(open)。“已定论”的比较意味着无论未知的修复结果如何,同一个工具都会获胜;“开放”的比较则意味着胜者可能会随着缺失数据的变化而改变。
该研究将此方法应用于一个包含近 55,000 个候选修复和 488 个不同漏洞的庞大修复尝试存档中。研究人员发现,对于大多数智能学习型工具与其较简单的对手之间的比较,答案已由现有数据确定。在十六个案例中的十二个案例中,学习型工具明显更好,而且即使每一个未知的修复都被判定为错误,这一结论依然成立。然而,有四个比较仍处于“开放”状态,这意味着胜负取决于未经验证的修复。研究人员随后增加了更多证据,重新运行代码,并要求人类对这些棘手的案例进行审查。这项额外的工作解决了所有十六个比较,证实了学习型工具在所有情况下确实都是获胜者。但研究也揭示了这最后的四场胜利是脆弱的;如果仅有几个新的标签出错,结果就可能发生变化。
其中一个最令人惊讶的发现来自于对测试系统本身可靠性的检查。研究人员注意到,有时测试系统无法正常运行,将一个正确的修复标记为失败。为了捕捉这一点,他们观察了计算机生成人类开发者原始修复副本的情况。由于这个副本已知是正确的,它理应通过所有测试。如果系统将其标记为失败,则说明系统出错了。他们发现,这种情况发生的频率因所测试的人工智能模型不同而呈现出巨大的差异。对于一个流行的模型,系统错误拒绝正确副本的情况占 33.5%;而对于另一个模型,这种情况仅发生 2.5%。这意味着测试系统在不公平地惩罚其中一个模型,并不是因为该模型更差,而是因为测试框架更容易在处理该模型时出错。
该研究还引入了一种在实验开始前预测未来实验价值的方法。由于运行测试只能证明一个修复是错误的,却永远无法证明它是正确的,研究人员意识到有些比较仅靠测试是无法解决的。如果一次测试活动的最佳可能结果是平局,那么运行更多测试就是浪费时间。他们创建了一个“预检程序”(pre-flight check),该程序查看当前数据并准确告知研究人员,新一轮测试可能解决哪些比较。在一次现实世界的试验中,他们提前公布了对即将到来的测试活动的预测。每一项预测都得到了证实:该检查准确识别了哪些比较会被解决,哪些将保持开放,从而节省了研究人员在那些无法改变结果的实验上花费的时间。
研究结果表明,自动化修复领域需要改变报告结果的方式。研究人员不应给出假装所有数据都已知的单一数字,而应报告可能性的范围。这种方法将稳固的结论与摇摆不定的结论区分开来。它表明,虽然有些工具明显优越,但另一些工具则因证据不足而难以定论。它还强调了用于衡量成功的工具并不完美,并且可能会引入偏向于某一模型的偏差。通过使用这些新的检查手段,科学家可以专注于那些真正需要更多数据的比较,而不是追逐那些已经尘埃落定的结果或无法确定的结果。这项工作并没有解决寻找完美修复的问题,但它提供了一张清晰的地图,标明了真相所在之处以及真相仍被隐藏之处。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。