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

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


         除测试文件的数据集上的实验结果,被多数研究者作为基准方法的 BLUiR                        [24] 的实际定位效果并没有原文实验
         中表现得那么好.Kim 等人       [41] 指出的不合理的实验方案在得到认同,例如,Lee 等人             [39] 在他们的实证研究中排除
         了数据集中的测试文件.

         4.2   评价指标
             评价指标是度量方法有效性的重要依据.针对不同模型的输出结果,研究者使用多种类型的指标对结果进
         行评价.本节从排序性能、分类性能和工作量这 3 个角度介绍 IRBL 领域的评价指标.
         4.2.1    评估排序性能的指标
             目前,大多数 IRBL 领域的研究都将缺陷定位视为一个排序任务,对于给定的缺陷报告,定位方法会输出一
         个根据其包含缺陷可能性从大到小排序的文件列表.因此,大量研究使用排序指标来评价 IRBL 方法的性能.表 4
         对排序性能评估指标的计算方法和使用情况进行了汇总.这些指标的具体含义如下.
             (1)  Top@K.表示对缺陷定位方法生成的推荐列表中前 k 个文件进行审查时缺陷定位方法定位成功的概
                 率.特别地,给定一个待定位的缺陷报告,如果缺陷定位方法生成的推荐列表的前 k 个源代码文件中至
                 少有一个与给定的缺陷报告相关,则认为定位成功;
             (2)  MRR(mean reciprocal  rank).测量的是缺陷定位方法定位到的首个与缺陷报告相关的源代码文件在排
                 序列表中的位置;
             (3)  MAP(mean average  precision).测量的是缺陷定位方法定位到的所有与缺陷报告相关的源代码文件在
                 排序列表中的位置;
             (4)  E(effectiveness).表示在找到一个与缺陷报告相关的文件之前最少需要被开发者审查的源文件数目.
             前 3 个指标的值越大,说明包含缺陷的文件在结果列表的位置越靠前,即方法的排序性能越好;而
         Effectiveness 的值越小,方法的性能越好.从表 4 可以看出:其中,Top@K,MRR 和 MAP 是应用最多的 3 种指标,
         分别在 40,38 和 46 篇文献中被用来评估 IRBL 方法.

                  Table 4    Summary of evaluation metrics for IRBL models in terms of ranking performance
                                    表 4   评价 IRBL 模型的排序性能指标汇总
               评估指标              计算公式                       说明                     使用列表
                                                    n 表示评估过程中使用的 bug          [24,26,28−35,38,42,45,47,
                                        |
               Top@K           Top@K =  | R k       报告的总数;|R k|表示缺陷定位          49,50,54,55,63,65−69,
             (TopK 召回率)                n           方法进行 TopK 推荐时,n 个缺陷         73−75,77,78,80,84,90,
                                                  报告中定位成功的缺陷报告的数量             92,94,95,97−100,102,112]
                                                                               [24−26,28,30−32,35,39,
                                                     rank j 表示第 j 个缺陷报告
                                  1
                MRR          MRR = ∑ n  1                                      41,47,50,54,55,63,65,
            (首位倒排均值)              n  j= 1 rank  j    所对应的列表中第 1 个与             68,69,73−75,77−80,84,
                                                     缺陷报告相关的源码的排名
                                                                                89,90,92−100,102]
                                  1
                             MAP = ∑  n  AvgP    对第 j 个报告有一个推荐列表 l;Prec@k
                                  n  j= 1  j    表示 l 的前 k 个文件中与缺陷报告相关的         [23−26,28,30−32,35,38,
                                 1                                            39,41,45,47,48,50,54−56,
                MAP       AvgP j =  ∑  {Prec @ } k  源码文件的比例;IsRevant(k)为 1 表示
                                                                                60,61,63,65,67−69,
                                     ∈
            (平均准确率均值)           | K  j  |  kK  j  列表 l 中第 k 个源代码文件与缺陷报告        73−75,77−80,84,87,89,
                                 ∑  k  IsRelevant () k  相关,否则无关;K j 表示列表 l 中所有与   90,92−97,99,100,102]
                           Prec () k =  i= 1     缺陷报告相关的源代码文件位置集合
                                       k
                 E          Eq  min(∀ rR rank ( ))r     R q 表示查询所有与缺陷相关的文件的      [18,25,27,34,35,
                             () =
               (有效性)                 ∈  q         集合;rank(r)表示 r 在列表中的排名         53,59,98,104,105]

         4.2.2    评估分类性能的指标
             在信息检索领域,另一类重要的指标是用来评价一种方法的分类性能.然而,由于 IRBL 的输出结果是一个
         序列,分类指标不能被直接用于对这些方法进行评价.现有部分研究                       [60−62,86] 的做法是,设置一个排名阈值将该序
         列分成两种类型,即:在排名之前的文件包含缺陷,反之不包含缺陷.
             从二分类的角度来看,IRBL 方法的定位结果总共可以划分为以下 4 种可能情况.
   215   216   217   218   219   220   221   222   223   224   225