ISO/IEC 26559:2018 — 软件工程 — 产品族 — 测试管理

软件产品族和共享平台的系统性测试策略

产品族测试管理概述

ISO/IEC 26559:2018 致力于软件产品族工程中最具挑战性的方面之一:测试管理。测试产品族与测试单一产品有着根本性的不同,因为测试人员必须应对可能的产品配置组合爆炸、随时间演变的共享平台资产,以及需要验证所有族成员中公共和可变功能的问题。

在软件产品族中,测试挑战不是线性的——而是组合性的。一个拥有20个独立变异点的产品族可以产生超过一百万个可能的产品配置。智能测试管理不是可选而是必需的。

本标准提供了一种结构化的测试规划、测试工件管理、测试执行和测试评估方法,专门针对产品族开发的实际情况。它涵盖了领域测试(测试平台和可重用资产)和应用测试(测试从平台导出的特定产品配置)。

核心测试流程

领域测试

领域测试专注于验证共享平台资产——核心架构、可重用组件和变异性机制。关键活动包括:公共性模型测试(确保共享功能在所有环境中正确工作)、变异性机制测试(验证变异点和绑定机制正常运行)和参考架构测试(验证产品族预期范围内的架构质量属性,如性能、安全性和可扩展性)。

领域测试需要思维方式转变:你不是在测试一个产品,而是在测试一种生产能力。每个测试用例的设计都必须理解它将对多个未来产品适用,而不仅仅是当前版本。

应用测试

应用测试验证从平台导出的特定产品配置。这包括:配置验证(确保按照变异性模型选择的变体组合是有效的)、产品特定集成测试、每个产品变体的验收测试,以及仅关注与先前测试配置不同部分的增量测试。

测试级别 领域(平台)重点 应用(产品)重点
单元测试 使用变异点桩代码隔离测试可重用组件 测试产品特定适配和扩展
集成测试 通过定义的变异接口验证组件交互 验证特定配置的组件连接
系统测试 验证平台质量:性能、安全性、可靠性 目标环境中的端到端产品验证
验收测试 验证平台满足领域需求 验证产品满足客户特定需求

变异性感知测试技术

标准描述了处理产品族测试组合复杂性的几种先进技术:

基于样本的测试

这种方法不是测试每种可能的产品配置(这通常不可行),而是选择具有代表性的配置样本进行全面测试。技术包括:配对测试(覆盖所有成对的变体交互)、t-way组合测试和基于风险的采样,其中风险较高的配置接受更彻底的测试。

增量测试

增量测试利用产品变体共享公共核心的实际情况。通过一次性地彻底测试核心,后续产品配置只需要测试”增量”部分——即特定的变体选择及其交互。这可以在保持覆盖范围的同时显著减少测试工作量。

增量测试是管理产品族测试成本最有效的技术。投资全面的核心测试套件,然后针对每个新产品配置测试增量部分。

测试工件管理

ISO/IEC 26559:2018 的一个独特贡献是将测试工件视为产品族中的一等资产。测试用例、测试数据、测试脚本和测试结果都表现出变异性,必须加以相应管理。标准规定了:变异性感知的测试设计(测试用例应记录它们覆盖的变异点)、可重用的测试资产(可为不同产品配置参数化的测试组件),以及测试工件与变异性模型之间的可追溯性。

常见问题

Q: 如何确定哪些产品配置需要优先测试?
优先级排序应基于风险:高业务价值的配置、涉及高风险变异点的配置、组合了以前未测试过的变体交互的配置,以及已知客户问题的配置。标准建议在优先级模型中结合功能风险和市场风险。
Q: ISO/IEC 26559 能否与持续集成/持续部署(CI/CD)一起应用?
可以。在CI/CD环境中,领域测试套件在每个平台提交时运行,而应用测试根据变更影响到的产品配置有选择地触发。特性开关和配置矩阵可以自然地与部署流水线集成。
Q: 测试变异性机制本身有什么推荐方法?
变异性机制(如插件加载器、特性开关基础设施、预处理器逻辑)应独立于它们所启用的功能进行测试。这包括测试机制正确性(是否选择了正确的变体?)、性能(变异性机制的开销是多少?)和故障模式(当变体缺失或无效时会发生什么?)。
Q: 如何处理产品族中使用的第三方组件的测试?
第三方组件引入了必须在变异性模型中捕获的变异性约束。测试应验证集成点的边界条件,标准建议为第三方组件建立认证流程,定义其纳入平台之前所需的测试覆盖范围。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注