分布式系统互操作性测试的形式化框架
1. 引言
在分布式系统中,为确保系统组件能有效协同工作,存在两种基本的测试方法:一致性测试和互操作性测试。一致性测试主要检验单个被测实现(IUT)是否符合其规范(通常为标准),而互操作性测试则关注两个或多个实现能否在实际运行环境中协同工作。二者目的不同,一致性测试以特定标准为参照评估实现,互操作性测试则是将实现与其他产品进行比较。
互操作性的需求场景多样,如组合不同厂商的两个实现并验证其能否协同工作,或者判断一个新系统能否与现有的 N 个系统协同工作等。由于场景复杂,互操作性难以给出唯一的定义,但功能上要求被测系统(SUT)的组件能正确通信并提供预期服务。
在一致性测试领域已有大量工作,形成了精确的定义和形式化描述,可实现测试用例的自动生成。然而,互操作性测试在这方面的工作相对缺乏,原因包括人们认为实现的一致性是互操作性的前提,且互操作性测试更注重实际应用。鉴于一致性测试和互操作性测试涉及相同对象,可将一致性测试的概念、方法和理论应用于互操作性测试,构建互操作性测试的形式化框架。
2. 互操作性测试架构
根据被测实现的互连方式和对其交互的观察程度,可采用不同的互操作性测试架构。
2.1 测试架构定义
考虑一个通用架构,SUT 由两个 IUT 组成,每个 IUT 是黑盒。IUT 有上接口(UIi)和下接口(LIi),分别用于与上层和下层通信。测试系统(TS)通过控制点和观察点(PCOs)对 SUT 的互操作性进行测试,可能包含上测试器(UTi)、下测试器(LTi)和测试器(Ti)。不同的 TS 和 SUT 组合会产生不同的互操作性测试架构。
- <
超级会员免费看
订阅专栏 解锁全文
6万+

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



