购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 基于对象及环境的测试策略

4.4.1 测试对象模型

世界上没有两片相同的雪花。测试对象千差万别,不同对象的使命任务、系统组成、软件架构、接口关系、运行环境、操作使用等截然不同。不同测试对象,具有不同的结构形态。图4-15给出了一个树状结构被测对象结构模型。

图4-15是一个抽象的、基于单体应用的分层架构模型,展示了系统的结构关系及开发演进过程。不同测试对象,其系统特征、系统行为、约束条件等各不相同,是主要的测试风险制约因素。系统特征由使命任务、组成结构、体系架构、功能、性能、接口关系等表征;系统行为由运行流程、运行剖面、操作使用、系统能力等表征;约束条件则由运行环境、使用场景、外部数据、通用质量特性等表征。图4-16给出了一个基于不同软件开发模式的对象结构特征及系统行为。

图4-15 树状结构被测对象结构模型

在测试对象分析时,应基于系统结构特征,从本质上解剖系统。例如,对于云原生架构及云原生应用,就不能像对待传统软件系统那样,关注软件单元、配置项和软件系统,而是基于容器、微服务、服务网络、不可变基础设施、声明式API等理解系统架构。

图4-16 基于不同软件开发模式的对象结构特征及系统行为

对于特定的系统,其构成单元可能存在新研、继承、改进、重用等不同状态。在测试策划时,对被测系统及其构成单元状态、特征、约束条件等进行分析,确定测试范围。例如,对于状态已固化,如已通过鉴定的配置项,一般不再对这类配置项进行测试,但需纳入系统测试范畴。对于状态固化但进行部分修改的配置项,在对修改情况及影响域进行分析的基础上,确定测试范围,但这些配置项必须纳入系统测试。对于系统组成中的货架产品及驻留于外购硬件中的软件,是否进行配置项测试应视情况而定,但必须纳入系统测试。

大型复杂系统开发是一个基于持续集成的迭代过程,集成模式变化驱动系统设计由传统接口互联互通设计向面向任务的资源优化设计转变,生命周期测试由先设计后验证向边设计边验证转变,更加注重模块化集成与搭载平台系统一体化深度设计、系统迭代升级等需求及系统交付能力验证。基于多视图建模的系统行为分析与场景设计,面向基线的系统需求敏捷开发与管理,面向任务定义的系统功能逻辑架构设计,面向结构共形和资源解耦的系统物理架构设计,基于模型交互的系统与搭载平台系统间深度融合设计及模型驱动的系统虚实融合设计、系统多异构模型关联映射与数据互操作,面向资源均衡优化的系统多方案虚拟集成及其快速推演评估,实现一体化测试验证。这是一个复杂的组织体系工程问题。

4.4.2 测试环境分析

对于一个特定系统,测试环境构建、差异性分析及影响控制是确保测试充分性和可信性的基础。测试环境包括硬件环境、软件环境、数据环境和使用环境。使用环境涉及任务剖面、输入环境和自然环境等环境特性。

对于确定的测试对象,如何根据测试需求确定测试环境需求?如何根据测试环境需求,构建并验证测试环境?如何选择并确定测试环境构成的硬件项和软件项?如何将操作使用及运行剖面同测试环境关联?是否存在制约软件使用的环境条件,如平台环境、自然环境、电磁环境?对数据库及数据量有无要求?如何开发等效的模拟环境?如何验证确认模拟环境的有效性?如何分析确定测试环境与使用环境的差异及环境差异所带来的风险?这些都是软件测试策划需要重点关注和解决的问题。

测试环境问题是软件测试的重要风险之一。测试环境需求分析、测试环境搭建、测试环境验证确认,不仅取决于测试组织的基础能力,还与技术和管理能力密切相关。工程上,最大限度地使用被测系统的真实运行环境,开发搭建模拟仿真环境,使用已经验证的试验或使用数据,无疑是最佳选择。针对软件测试所面临的问题,审视软件测试策略、测试技术、测试方法、测试流程,测试环境,构建基于云化承载,集测试策略、测试资产、测试技术等于一体的软件测试环境集成体系,驱动基于复杂场景极限条件下的测试环境构建。云化承载的软件测试环境集成体系如图4-17所示。

图4-17 云化承载的软件测试环境集成体系 u/AildStJxFVnT1wg6lCzy2tAx9jd1vzA8A06yeM5cw0ro4T++hWU4YWUxLlKJAw

点击中间区域
呼出菜单
上一章
目录
下一章
×