告别 ioco:模型驱动测试的新选择
在模型驱动测试领域,ioco 和 uioco 是两种重要的实现关系。本文探讨了它们在不同场景下的适用性,通过对比分析,得出 uioco 是更优选择的结论。
1. ioco 在被动测试中的局限性
在被动测试或监控场景中,ioco 并不适用。在监控过程中,我们仅观察一个轨迹,只有当观察到的轨迹被允许(即符合规范)时,测试结果才为通过。然而,判断一个轨迹是否符合 ioco 是不可判定的,因此 ioco 不适合作为监控的实现关系。
2. 细化关系的定义与性质
实现关系定义了 IOTS(输入输出转换系统)中的哪些实现相对于 LTS(标记转换系统)中的规范是正确的。细化是系统开发的一种方式,从抽象的规范模型开始,逐步添加实现细节,直到得到一个具体的模型。细化步骤应具有自反性和传递性,即每个细化都是自身的正确细化,并且如果 s1 是 s2 的细化,s2 是 s3 的细化,那么 s1 也应是 s3 的细化。
细化关系可以通过规范模型的细化关系形式化定义,具体如下:
设 (s, s_1, s_2 \in LTS) 且 (imp \subseteq IOTS \times LTS):
1. (Imp_{imp}(s) \stackrel{def}{=} {i \in IOTS | i \ imp \ s})
2. (s_1 \preceq_{imp} s_2 \stackrel{def}{\Leftrightarrow} Imp_{imp}(s_1) \subseteq Imp_{imp}(s_2))
3. (s_1 \simeq_{imp} s_2 \stackrel{def}
超级会员免费看
订阅专栏 解锁全文
59

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



