Page 195 - 《软件学报》2021年第7期
P. 195

周小莉  等:基于偶然正确性概率的回归测试选择方法                                                       2113


                    (1)  测试集合规模的缩减
                    测试集合规模的缩减(test size  reduction)是衡量测试选择技术的一个重要指标,回归测试选择的目标之一
                 是降低测试用例的规模.测试集合规模的缩减是依靠测试集合大小的变化来体现的.如果被选择的测试用例集
                 合包含的用例越少,测试所花费的成本越小,则认为该回归测试选择技术在测试集合规模缩减上的优势越大.
                    (2)  安全性
                    第 2 个评估标准是安全性(safety)的变化.假设原始的测试集合为 T,用例选择技术选择出的测试用例集合
                 为 T,其中可检测出故障的测试用例构成集合 T f ',T 中所有可检测出故障的测试用例的集合为 T f .召回率(recall)
                 的计算公式为
                                                        Recall=T f '/T f                              (3)
                    测试选择技术的安全性是通过召回率来衡量的,是对测试用例选择完整性的度量,它表示被选择的故障检
                 测用例占所有故障检测用例的比例.回归测试用例技术是安全的,当且仅当其召回率为 100%.一个安全的回归
                 测试用例选择技术应将所有覆盖修改的测试用例都选择出来.
                    (3)  精度
                    假设原始的测试集合为 T,用例选择技术选择出的测试用例集合为 T,其中可检测出故障的测试用例构成
                 集合 T f ',T 中所有可检测出故障的测试用例的集合为 T f 精度(precision)的计算公式为
                                                      Precision=T f '/T                              (4)
                    测试选择的精度是对测试选择技术的准确性的度量,测试用例选择结果的精度用于表示被选择出的测试
                 集合中包含故障检测用例的比例.
                    (4)  综合指标 PR
                    理想情况下,我们希望一个测试选择技术可以同时具有高安全性和高精度.然而,安全性和精度有时是相互
                 矛盾的,一种测试用例选择方法往往难以同时兼顾高的精度和高的安全性.因此,这里定义一种综合的度量 PR
                 作为评估精度和安全性的综合标准,具体的计算方法参照统计量 F-measure 的计算公式.F-measure 是数据挖掘
                 中广泛使用的综合度量方法,常用来评估召回率和精确率的综合结果,其值为精度和召回率的加权调和平均,F-
                 measure 的计算方法如下:
                                                                            
                                                           
                                     F -measure   (a   2  1)  精确率 召回率  / (a   2  精确率 召回率 )        (5)
                    在上式中,召回率表示安全性,精确度对应精度,本文将 PR 指标设置为参数 a=1 时的 F-measure 值,即
                                                                    
                                              PR            /(精度 安全性   )                           (6)
                                                  2 精度 安全性
                 4.2   实验设计和结果
                    本文在 software-artifact infrastructure repository(SIR)中提供的西门子测试套件上进行了实验,这些程序也
                 是在偶然正确性相关研究工作           [3,14] 中常使用的实验程序.本文选取了 20 个版本的小于 1 000 行的 C 程序,SIR 对
                 于每个程序提供了多种版本的错误变种程序,这里将正确版本的程序作为回归测试的原始程序,各个包含错误
                 的程序版本被认为是被修改后的程序.
                    由于目前没有关于偶然正确性概率在测试选择领域的相关工作,因此在实验中将基于代码覆盖的安全的
                 测试选择技术作为对比技术,与本文提出的 3 种测试选择方法在测试集合的缩减、安全性、精度和 PR 指标这
                 4 个方面进行比较.用于对比的安全测试选择技术将所有覆盖修改的测试用例作为回归测试用例.在实验中,基
                 于 CCP 的测试选择技术 1 使用了本文提出的第 1 种选择策略,基于 CCP 的测试选择技术 2 和技术 3 则分别使
                 用了第 2 种策略的两种选择算法.
                    图 3 展示了各目标程序发生偶然正确现象的频率,图 4~图 7 分别展示了基于 CCP 的 3 种测试选择技术与
                 基于代码覆盖的技术在测试集合缩减、精确度、安全性以及 PR 指标的具体实验数据.表 1 是上述实验数据的
                 综合统计结果,展示了相对于基于代码覆盖的测试选择技术、3 种基于 CCP 的技术在用例缩减、精确度、安全
                 性以及 PR 指标上的变化幅度.
   190   191   192   193   194   195   196   197   198   199   200