近日,北京大学信息科学技术学院软件研究所、高可信软件技术教育部重点实验室“百人计划”特聘研究员,国家重点基础研究发展计划青年科学家专题项目“基于情境的安全攸关软件的构造方法与运行机理研究”负责人熊英飞所带领的课题组在解决软件缺陷修复过拟合(overfitting)问题的研究中,取得显著进展,提出解决该问题的新途径。
软件缺陷自动修复是近年来新兴的研究领域,即给定一组测试(其中包含没有通过的测试),通过不断修改程序,最终使得测试全部得以通过。软件缺陷自动修复技术一度被认为有望大幅降低软件开发成本和提高软件质量,近年来吸引大量研究人员投入其中。然而,软件缺陷修复却存在着修复与测试过拟合这一与生俱来的重大缺陷。由于它以通过所有测试为目标,所产生的修复只能保证通过所有测试,并不能保证在测试未覆盖的输入上也产生正确的软件行为。如果缺陷修复技术与测试过度拟合,则很有可能所产生的大部分修复都是错误的。
熊英飞等人近年来对软件缺陷修复技术展开深入研究,提出了解决过拟合问题的新途径。他们基于问答网站,提出一种通过以比较代码为基础的知识提取和修复生成技术。当一个缺陷发生时,该技术首先寻找最相关的问答页面,然后通过比较页面上的代码片段而找到可行的修复方案,最后再应用方案于原项目。通过这种技术,他们成功地为10个缺陷产生了修复补丁,其中8个是正确的,成功率高达80%,显著超越了已有技术(根据测算,现有三项主流技术所能达到的正确率均不超过10%)。该研究的阶段性成果由熊英飞与信息学院博士研究生高庆,硕士研究生张汉生、王杰,以及张路教授、梅宏教授共同发表于去年底召开的软件工程领域顶级会议之一——第30届自动化软件工程国际会议(IEEE/ACM International Conference on Automated Software Engineering, ASE)。
目前,熊英飞课题组正在研究更细粒度的知识提取方法,旨在不仅大幅提升修复的正确率,而且大大提升正确修复的数量。
该项研究得到国家重点基础研究发展计划、国家自然科学基金等资助。