软件产品线中产品生成的测试:基于成对特征覆盖的策略
1. 引言
软件产品线(Software Product Line,SPL)是一组共享通用、可管理特征集的软件密集型系统,这些特征满足特定市场细分或任务的特定需求,并按照规定方式从一组通用核心资产开发而来。SPL 中的产品具有共性和变异性,软件构建涉及领域工程和产品工程两个层面。
在 SPL 开发中,可追溯性和重用是关键,因此测试至关重要。一个未被检测到的共性部分错误可能影响产品线中的所有产品,变异点的错误也会传播到包含该变异的所有产品。此前虽有针对 SPL 模型驱动测试的框架,但仍需对集成到单个产品中的特征进行测试。
从测试角度看,测试 SPL 中所有可能的特征组合是不可行的。例如,一个仅有 5 个特征和 4 个变体的 SPL,可生成的产品数量高达 1024 个,对每个可能的产品进行测试既昂贵又不现实。因此,我们提出一种基于成对覆盖准则的测试策略,即所有特征对必须至少在一个产品中被包含和测试。同时,使用正交变异模型(Orthogonal Variability Model,OVM)来表示变异点及其变体。
1.1 相关测试算法
在众多获取成对覆盖的策略中,AETG 算法因其多项式时间复杂度而被广泛使用。但在 SPL 环境中,需要对其进行修改以处理特征之间的“需要”和“排除”关系。例如在一个基于互联网的棋盘游戏系统 SPL 中,存在游戏、骰子、对手和玩家数量四个变异点及其多个变体。像“Ludo 或 Trivial 游戏搭配无骰子”以及“国际象棋或跳棋搭配骰子或超过两个玩家”这样的组合是不合理的,而原始的 AETG 算法并未考虑这些限制,因此我们对其进行了改进。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



