国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:宋壹,谢晓园,张熙灏,辛奇,邢宸亮
单位:宋壹,武汉大学 计算机学院, 湖北 武汉 43007211,谢晓园,武汉大学 计算机学院, 湖北 武汉 43007202,张熙灏,武汉大学 计算机学院, 湖北 武汉 43007203,辛奇,武汉大学 计算机学院, 湖北 武汉 43007204,邢宸亮,武汉大学 计算机学院, 湖北 武汉 43007205
关键词:软件缺陷定位;异常处理机制;检查点植入;软件质量保障
基金:国家重点研发计划课题(2024YFF0908003); 国家自然科学基金面上项目(62472326); CCF-智谱大模型创新基金(CCF-Zhipu202408)
软件缺陷定位任务以程序表层的执行错误为入口,通过分析程序运行过程中异常的内部状态,定位到底层代码级的缺陷根因.目前主流的基于频谱和基于突变的缺陷定位,以及当前最先进的SmartFL技术分别采用覆盖信息、突变信息及以程序语义为代表的信息,作为观测程序内部状态的窗口,所用信息过于宽泛、针对性不足,且三类(项)技术分别受限于语句风险值捆绑、突变成本过高及信息规模庞大等瓶颈.为此,最近一项新的基于异常触发信息的缺陷定位技术EXPECT提出通过程序自带的异常处理语句(Try-catch块)对程序错误的执行状态进行监控,以更低的成本实现了超越上述主流技术的缺陷定位效果,该方法的运行前提是错误程序中必须含有足量的异常处理语句.然而,在真实的开源环境中,许多软件程序并没有设置良好的异常处理机制,导致其代码仅包含十分稀疏甚至不包含异常处理语句,这直接影响EXPECT技术赖以运行的基础.为此,提出基于异常检查点植入的软件缺陷定位方法INSPECT.通过为错误程序自动植入临时的异常处理语句作为对运行时内部状态的检查点、设计更加先进的程序语句风险值计算方法,将EXPECT方法的适用范围拓展到不包含异常处理语句的更普遍程序,有效将异常触发信息这一缺陷定位高效源数据的应用场景进行了拓展,实现了泛化性的提升.实验结果表明,INSPECT比现有最先进技术实现了更好的缺陷定位效果:在最好、平均、最差EXAM指标上的提升幅度分别为95.25%、55.92%和16.65%(模拟缺陷),以及93.39%、57.54%和13.92%(真实缺陷);在MRR指标上的提升为311.47%(模拟缺陷)和283.31%(真实缺陷).
来源:2026年第7期
《软件学报》期刊编辑部