Page 222 - 《软件学报》2020年第9期
P. 222

郭肇强  等:基于信息检索的缺陷定位:问题、进展与挑战                                                      2843


                 Table 6    Summary of evaluation metrics for IRBL models in terms of effort-aware performance
                                   表 6   评价 IRBL 模型的工作量性能指标汇总
                 评估指标               计算公式                          说明                  使用列表
                                                     f ij 代表第 j 个缺陷报告的推荐列表中第 i 个
                                      n   k
                 Effort@K              j= ∑∑ i=  1 LOC ()f  ij  源文件;LOC(f ij)表示其对应的代码行;n 代表
                                       1
                (TopK 工作量)   Effort@k =   | R  |      缺陷报告的数目;|R|个报告对应的列表中             [36,37]
                                                     前 k 个源文件汇总至少有一个包含该缺陷
                                  1
                             MAE = ∑ n  AvgE
                                  n  j= 1  j          给定 n 个缺陷报告,对第 j 个报告有一个
                   MAE       AvgE j =  1  ∑  {AvgE @ } p     推荐列表 l.AvgE j 表示对报告 j,找出所有
                                        ∈
              (平均工作量均值)            | P j  |  pP j     相关文件平均所需花费的工作量;P j 表示            [36,37]
                                                       推荐列表 l 中所有与缺陷报告相关的
                                           ij f
                             AvgE @ p= ∑ p LOC p ()          源文件位置的集合
                                      1
                                      i=
                   MFE        MFE =  1  n j= ∑∑  j q  LOC ()    q j 表示第 j 个缺陷报告的源代码文件推荐列表中
                                               ij f
              (首位工作量均值)            n   1  i=  1      第一个与缺陷报告相关的源代码文件的位置               [36,37]

         4.3   实验数据
             经过十几年的发展,目前 IRBL 领域已有较多研究者收集并且公开了它们的实验数据集,这对于继续在缺
         陷定位领域进行研究十分有利.表 7 列出了 IRBL 领域的公开可用数据集的汇总信息,包括数据集提供者、所使
         用的项目数和提供的缺陷报告数目等.
                      Table 7    Summary of experiments datasets for IR-based bug localization models
                                 表 7   基于信息检索的缺陷定位模型的数据集汇总
                     项目语言     定位级别        提供者        项目数   报告数          使用列表
                                      Dallmeier 等人 [115]  1  223      [23,45,54,60,115]
                                        Zhou 等人 [28]    4   3 479  [24,28−32,41,50,64,65,72,74,
                                                                   75,79,80,86,90,91,93,94,99]
                                       Thomas 等人 [66]    2  6 716        [66,76]
                                         Ye 等人 [47]    6    22 747   [36,47,55,79,95,96]
                                         Le 等人 [45]    3     111         [45,54]
                                File          [72]
                                         Le 等人        1      341          [72]
                       Java             Wang 等人 [98]    3   14 121        [98]
                                       Rahman 等人 [35]    6  5 139         [35]
                                        Mills 等人 [53]    13  620        [52,53,73]
                                        Lee 等人 [39]    46   9 459        [39,73]
                                       Zhang 等人  [100]    10  2 279       [100]
                              File and   Wen 等人 [32]    3    347         [32,95]
                               Change   Rath 等人 [83]    7   25 283       [97,83]
                               Method   Zhang 等人 [78]    5   531          [78]
                       C++      File   Thomas 等人 [66]    1  1 368        [66,76]
                        C       File      Saha [26]   6     7 716         [26]
                        C#      File   Garnier 等人 [38]    20  878         [38]

             目前,IRBL 领域的数据集的收集和使用过程中仍存在一些问题需要得到重视.
             (1)  项目语言偏向于 Java.目前,绝大多数研究者提供的数据集中的实验项目是由 Java 开发的,其他语言开
                 发的数据集相对较少并且没有被大量引用.例如,Saha 等人                 [26] 收集的 C 语言项目和对 Garnier 等人    [38]
                 收集的 C#语言项目都仅在各自的研究中被使用.Java语言项目受到关注,这得益于 Java语言的流行和
                 相关项目的良好维护.现有研究可以在一定程度上说明目前的方法在对 Java 项目进行缺陷定位时是
                 有效的.然而,不同的语言在进行开发时有各自的特点,仅仅在一种语言的项目上实验的结果不能直
                 接应用到其他语言开发的项目之上.其有效性还需要进一步的实验证实;
             (2)  数据集质量各异.尽管数据集的收集过程都是按照 Dallmeier 等人                [115] 提供的过程进行收集,但是具体
                 操作过程会有一些差异,从而导致不同研究者收集的数据集存在一定到偏差,在这些数据上进行实验
   217   218   219   220   221   222   223   224   225   226   227