Page 131 - 《软件学报》2025年第4期
P. 131
曹帅 等: 深度学习在基于信息检索的缺陷定位中的应用综述 1537
2 数据集与评估方法
2.1 数据集
为了回答 RQ1, 本文统计了 52 篇论文中使用数据集的情况, 统计其对数据的处理方式. 大多数使用深度学习
的基于信息检索的缺陷定位方法为了方便使用数据集对方法的性能进行评估, 往往会选择在方便获取缺陷报告和
源文件的开源项目中进行实验. 在深度学习中, 数据集的规模影响着不同方法的性能. 因此本文统计了不同数据集
的使用次数及其规模. 部分方法公开了使用的数据集, 表 4 统计了这些数据集及其开源网址.
表 4 部分方法使用的数据集及开源网址
方法名称 开源数据集网址
CooBa [40] http://dx.doi.org/10.6084/m9.figshare.951967
CNN-Forest [16] https://github.com/yanxiao6/BugLocalization-dataset
DreamLoc [49] https://github.com/qibinhang/dream_loc
DRAST [46] https://doi.org/10.5281/zenodo.4153560
6 841
FLIM [54] https://github.com/hongliangliang/flim
表 5 列出了常用于缺陷定位的数据集以及使用次数情况. 由于对于同一项目, 不同定位方法在评价过程中使
用的数据集规模并不相同, 表 5 中给出的统计数字是各个数据集被使用时缺陷报告和代码块数量的众数, 如对于
AspectJ 数据集, 在使用 AspectJ 数据集评测的方法中, 有多数方法使用 AspectJ 的 593 条缺陷报告, 故表格中缺陷
报告数量为 593, 与此对应的代码源文件数量为 4 439.
表 5 常用于缺陷定位的数据集及使用次数情况
项目名称 使用次数 缺陷报告数量 定位级别 代码块数量 网址
文件级别 4 439
AspectJ 40 593 方法级别 32 816 http://www.eclipse.org/aspectj/index.php
变更级别 2 939
Eclipse 34 6 495 文件级别 3 454 http://projects.eclipse.org/projects/eclipse.platform
文件级别 2 056
SWT 39 4 151 方法级别 13 456 https://www.eclipse.org/swt/
变更级别 10 206
文件级别 8 184
JDT 44 6 274 方法级别 49 152 https://projects.eclipse.org/projects/eclipse.jdt
变更级别 13 860
文件级别 1 552
Tomcat 32 1 056 方法级别 36 569 http://tomcat.apache.org/
变更级别 10 034
文件级别
BiRT 13 4 178 https://eclipse-birt.github.io/birt-website/
方法级别 100 625
文件级别 2 970
PDE 10 4 034 https://projects.eclipse.org/projects/eclipse.pde
变更级别 834
Zxing 4 20 变更级别 3 140 https://github.com/zxing/zxing
Jackrabbit 1 534 文件级别 2 089 https://jackrabbit.apache.org/jcr/index.html
HttpClient 1 63 文件级别 249 http://hc.apache.org/httpcomponents-client-ga/index.html
Lucene-solr 1 196 文件级别 2 470 http://lucene.apache.org/
根据数据集使用情况的统计可以分析出以下两个结论. (1) 数据集的规模比较小, 在使用深度学习的基于信息
检索的缺陷定位方法中, 不同开源项目数据集的缺陷报告数量只有几百. 并且, 不同的方法使用的数据集的规模也