Page 289 - 《软件学报》2026年第7期
P. 289

2974                                                       软件学报  2026  年第  37  卷第  7  期


                 征交互, 并将它们作为可疑特征交互           [8] . 为便于解释, 本文有以下关键定义.

                                                        高效的可疑特征交互识别方法
                                        移除被包含的潜在             生成相应的1–7阶         是否在缓存中?    加入
                                          特征选择集合                特征交互                      否
                                     特                                               是       缓存
                                     征                                                  否
                                     级
                                        为每个未通过的产      否
                                        品生成潜在特征选           是否满足               加入    是否为可疑
                                 输入         择集合            结束条件?               是    特征交互?
                          缺陷的系统
                                                           输出  是     可疑特征交互集合
                                                                        基于程序切片得到
                                                                           可疑语句
                                     语
                                     句                   可疑特征交互集合
                                     级
                                                                           计算可疑语句的频谱效应
                                                             计算可疑语
                                            可疑语句排序
                                     输出                      句的可疑值         基于约简程序依赖计算可
                        排序的可疑语句                                               疑语句的因果效应
                                                   图 2 FCS-FL  的框架图

                    定义  1. 特征选择差异. 若两个产品的配置在同一特征上有不同的选择, 则表示在该特征上这两个产品存在特
                 征选择差异.
                    例如, 存在两个产品配置分别为           c 1 = {− f 1 ,+f 2 ,+f 3 } 和  c 2 = {+ f 1 ,+f 2 ,−f 3 }, 这两个配置在特征   f 1  和  f 3  上存在特
                 征选择差异.
                    定义  2. 差异特征选择集合. 一个产品配置          c 1  相对于另一个产品配置     c 2  所有存在特征选择差异的特征集合, 即
                 为  c 1  相对于  c 2  的差异特征选择集合  D(c 1 ,c 2 ).
                                                                                      c 2  的差异特征选择集合
                    例如, 存在两个产品配置分别为           c 1 = {− f 1 ,+f 2 ,+f 3 } 和  c 2 = {+ f 1 ,+f 2 ,−f 3 }, 则   c 1  相对于
                 为  D(c 1 ,c 2 ) = {− f 1 ,+ f 3 }.
                    定义  3. 可疑特征选择集合. 对于一个未通过的产品配置               c 和所有通过的产品配置集合          PCs c 的可疑特征选
                                                                                           ,
                                                                           ∪
                                                                    DS (c) =  D(c,c ).
                                                                                  ′
                 择集合为   c 与  PCs 中所有产品的差异特征选择集合的并集, 表示为
                                                                           c ′ ∈PCs
                    例如, 存在一个有     3  个产品配置的    SPL  系统, 它包含一个未通过的产品配置          c = {− f 1 ,+ f 2 ,+f 3 ,+ f 4 } 和两个通过
                 的产品配置    PCs = {c 1 ,c 2 }, 其中  c 1 = {+ f 1 ,+f 2 ,−f 3 ,+ f 4 }  和  c 2 = {+ f 1 ,+f 2 ,+f 3 ,− f 4 }. 基于定义  2,  c  较  c 1  的差异特征选
                                       ,
                 择集合为    D(c,c 1 ) = {−f 1 ,+ f 3 } c  较  c 2  的差异特征选择集合为  D(c,c 2 ) = {−f 1 ,+ f 4 }. 因此,  c  的可疑特征选择集合为
                 DS (c) = D(c,c 1 )∪ D(c,c 2 ) = {−f 1 ,+f 3 ,+ f 4 }.
                    定义  4. 潜在特征交互集合. 对于一个未通过的产品配置               c, 其可疑特征选择集合的所有         1–7  阶子集的并集即
                 为  c 的潜在特征交互集合.
                    需要说明的是, 实践中大多数特征交互缺陷涉及的特征数都不超过                       6  个  [14] , 因此本文只取  1–7  阶子集以保证
                 检查效率.
                    例如, 存在一个未通过的产品配置             c, 它的可疑特征选择集合        DS (c) = {−f 1 ,+f 3 ,+ f 4 },  其  1  阶子集为  {(− f 1 ),
                                                                                     c
                 (+f 3 ),(+ f 4 )}, 2  阶子集为  {(− f 1 ,+ f 3 ),(+ f 3 ,+f 4 ),(−f 1 ,+ f 4 )}, 3  阶子集为  {(− f 1 ,+ f 3 ,+f 4 )}. 因此,   的潜在特征交互集合为
                 {(− f 1 ),(+ f 3 ),(+ f 4 ),(− f 1 ,+f 3 ),(+f 3 ,+ f 4 ),(− f 1 ,+ f 4 ),(− f 1 ,+f 3 ,+ f 4 )}.
                    定义  5. 可疑特征交互. 满足缺陷相关性和最小性的特征交互即为可疑特征交互.
                    在本文的研究中, 所有未通过产品的潜在特征交互集合即为搜索空间. 本文提出的高效的可疑特征交互识别
                 方法即从搜索空间中识别出所有可疑的特征交互. 该方法通过对所有未通过的产品配置计算它们的可疑特征选择
                 集合, 进而生成潜在特征交互集合并检查每个特征交互的可疑性                     (即检查是否满足缺陷相关性和最小性).
   284   285   286   287   288   289   290   291   292   293   294