场景敏感的高效错误检测技术

0 下载量 40 浏览量 更新于2024-07-15 收藏 875KB PDF 举报
"衷璐洁等人发表在《软件学报》上的研究论文,提出了‘一种场景敏感的高效错误检测方法’,旨在解决定值-引用类错误的检测问题,提高精度和可扩展性。该方法通过结合敏感和不敏感的检测策略,并控制其实施范围,实现了高精度和高效率的平衡。他们开发了名为Minerva的原型系统,经过实证研究,Minerva在检测速度和误报率方面显著优于现有的路径敏感错误检测工具Clang-sa和Saturn。" 这篇研究论文探讨了在软件开发中常见的定值-引用类错误的检测挑战。当前的方法往往难以兼顾高精度和高可扩展性。为了克服这个问题,研究人员引入了一种新的、场景敏感的错误检测方法。这种方法的核心是根据潜在错误语句的触发状态对其进行分类,识别不同类别语句可能的触发场景,并据此执行不同成本的检测策略。这样做可以在不牺牲检测精度的前提下,最大程度地减少检测过程的开销。 为了实现这一策略,研究团队设计了一个流敏感、域敏感和上下文敏感的场景分析算法,它能在多项式时间内完成。此算法利用程序依赖信息来识别错误触发场景,仅对关键的触发场景执行路径敏感的检测,从而避免了不必要的计算负担。 研究团队开发了一个名为Minerva的原型系统,以实际应用该方法。通过空指针引用错误检测作为实例,Minerva在处理超过290万行代码的应用程序(其中最大的单个应用超过200万行)时,表现出了显著的性能优势。与当前最先进的路径敏感检测工具Clang-sa和Saturn相比,Minerva的平均检测速度分别快了3倍和46倍,误报率仅为24%,约为Clang-sa和Saturn误报率的1/3,而且没有遗漏已知错误。 这些结果证明了场景敏感的错误检测方法在提升可扩展性和检测精度方面的有效性。关键词包括定值-引用错误、路径敏感错误检测、错误触发场景、场景敏感和程序分析。该研究对于改进软件质量、优化错误检测工具和提高软件开发效率具有重要的理论和实践意义。