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) 数据集的规模比较小, 在使用深度学习的基于信息
                 检索的缺陷定位方法中, 不同开源项目数据集的缺陷报告数量只有几百. 并且, 不同的方法使用的数据集的规模也
   126   127   128   129   130   131   132   133   134   135   136