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. 可疑特征交互. 满足缺陷相关性和最小性的特征交互即为可疑特征交互.
在本文的研究中, 所有未通过产品的潜在特征交互集合即为搜索空间. 本文提出的高效的可疑特征交互识别
方法即从搜索空间中识别出所有可疑的特征交互. 该方法通过对所有未通过的产品配置计算它们的可疑特征选择
集合, 进而生成潜在特征交互集合并检查每个特征交互的可疑性 (即检查是否满足缺陷相关性和最小性).

