9、一致性测试方法详解

一致性测试方法详解

1. 测试基础与问题提出

在系统测试中,我们常常需要检测机器是否存在故障。有一种检查序列能够检测特定机器中的故障。例如,对于某些机器,在状态 s3 应用 b 消息可检测 MI1 中的故障,而 MI2 中的故障可由第一条状态消息立即检测出来。

若状态消息不可靠,我们还需对其进行测试。假设状态消息可能产生错误输出,或者错误地改变机器状态。可以通过在每个状态下应用两次状态消息来检测这两种故障:第一次用于测试前一条消息是否将机器带到正确状态,并检查状态消息是否产生正确输出;第二次用于验证第一条状态消息是否未改变机器状态。

不过,最初提出的 TT 方法不使用状态消息,它只能实现转移覆盖。仅访问所有状态但不一定访问所有转移的测试通常称为状态遍历(ST)方法,它仅能实现状态覆盖。要发现所有故障,需要覆盖每个转移并使用状态消息。例如,考虑图中的机器,序列 ababab 是一个欧拉遍历。在不使用状态消息的情况下,将此遍历应用于 MI1,可发现从 s3 到 s1 转移的输出故障,因为 MI1 产生的输出序列是 011101 而非 011100。但将此欧拉遍历应用于 MI2 时,无法发现其故障,因为 MI2 产生的输出序列 011100 与预期输出序列相同。然而,另一个遍历 bababa 证明 MI2 是 MS 的错误实现。这表明转移覆盖无法检测所有故障,特别是转移故障。但不幸的是,状态消息很少可用,接下来我们将学习在测试期间不依赖状态消息来确定当前状态的方法。

2. 使用分离序列代替状态消息

假设机器没有状态消息(但仍有复位消息),我们希望仅通过观察外部行为来测试 MS 是否与 MI 等效。以下介绍几种可统一的方法,它们都采用相同的技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值