软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2024年第7期:神经程序修复领域数据泄露问题的实证研究

发布日期:

作者:李卿源,钟文康,李传艺,葛季栋,骆斌

单位:李卿源,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002311,钟文康,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002302,李传艺,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002303,葛季栋,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002304,骆斌,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002305

关键词:程序自动修复;神经程序修复;深度学习;数据泄露;程序修复数据集

基金:国家重点研发计划(2022YFF0711404);江苏省第六期“333工程”领军型人才团队项目;江苏省自然科学基金(BK20201250)

修复软件缺陷是软件工程领域一个无法回避的重要问题, 而程序自动修复技术则旨在自动、准确且高效地修复存在缺陷的程序, 以缓解软件缺陷所带来的问题. 近年来, 随着深度学习的快速发展, 程序自动修复领域兴起了一种使用深度神经网络去自动捕捉缺陷程序及其补丁之间关系的方法, 被称为神经程序修复. 从在基准测试上被正确修复的缺陷的数量上看, 神经程序修复工具的修复性能已经显著超过了非学习的程序自动修复工具.然而, 近期有研究发现: 神经程序修复系统性能的提升可能得益于测试数据在训练数据中存在, 即数据泄露. 受此启发, 为了进一步探究神经程序修复系统数据泄露的原因及影响, 更公平地评估现有的系统: (1) 对现有神经程序修复系统进行了系统的分类和总结, 根据分类结果定义了神经程序修复系统的数据泄露, 并为每个类别的系统设计了数据泄露的检测方法; (2) 依照上一步骤中的数据泄露检测方法对现有模型展开了大规模检测, 并探究了数据泄露对模型真实性能与评估性能间差异的影响以及对模型本身的影响; (3) 分析现有神经程序修复系统数据集的收集和过滤策略, 加以改进和补充, 在现有流行的数据集上, 基于改进后的策略构建了一个纯净的大规模程序修复训练数据集, 并验证了该数据集避免数据泄露的有效性. 由实验结果发现: 调研的10个神经程序修复系统在基准测试集上均出现了数据泄露, 其中, 神经程序修复系统RewardRepair的数据泄露问题较为严重, 在基准测试集Defects4J (v1.2.0)上的数据泄露达24处, 泄露比例高达53.33%. 此外, 数据泄露对神经程序修复系统的鲁棒性也造成了影响, 调研的5个神经程序修复系统均因数据泄露产生了鲁棒性降低的问题. 由此可见, 数据泄露是一个十分常见的问题, 且会使神经程序修复系统得到不公平的性能评估结果以及影响系统在基准测试集上的鲁棒性. 研究人员在训练神经程序修复模型时, 应尽可能避免出现数据泄露, 且要考虑数据泄露问题对神经程序修复系统性能评估产生的影响, 尽可能更公平地评估系统.

来源:2024年第7期

《软件学报》期刊编辑部

查看软件学报杂志2024年第7期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员