51Testing软件测试论坛

标题: 小小品'测试设计方法'之三:状态迁移图表 [打印本页]

作者: jiangboh    时间: 2016-5-27 10:38
标题: 小小品'测试设计方法'之三:状态迁移图表
从案例入手,先看看状态迁移图表的应用吧!
1个数字信号控制1个报警灯B,信号报文共三种状态:0-不显示;1-显示;2-闪烁
1.收到单次显示报文,报警灯显示3s后消失;
2.收到单次闪烁报文,报警灯闪烁6次(3s)后消失;
3.收到循环显示报文,报警灯一直显示;
4.收到循环闪烁报文,报警灯一直闪烁;
5.收到不显示报文时,报警灯闪烁或显示的时长未满3S时,闪烁或显示满3S后灯熄灭
6.收到不显示报文时,若报警灯闪烁或显示的时长满3S,报警灯直接熄灭
7.报警灯闪烁与显示状态随时切换,但时间达到3min后,不会出现闪烁状态(需常显)
简简单单的7句话,如果采用式样覆盖的设计策略,7件用例足够,而如果采用状态迁移图的思想,远远没有那么简单!
首先想到报警灯的三个状态:不显示状态、显示状态、闪烁状态,再加上常显状态,共4个状态,然而显示或者闪烁状态又存在3S是否满足的区分,所以一分为二,存在满3S状态、不满3S状态,不满3S状态在收到不显示报文时,又存在等待熄灭的状态,所以,简单的7句话,共需识别8个状态,分别是:
0.无报警状态
1.B报警显示状态,不足3S
2.B报警显示状态,满3S
3.B报警显示等待取消状态
4.B报警闪烁状态,不足3S
5.B报警闪烁状态,满3S
6.B报警闪烁等待取消状态
7.B报警常显状态
状态迁移仅考虑数字信号,迁入迁出的条件就是数字信号本身的变化,共0、1、2三种信号类型,要么有一种变为其他两种,要么保持不变(保持不变的时长也是一种触发事件,有可能存在多个),所以状态属性Entry/Do/Exit比较清晰,下面来看看状态迁移图:
[attach]101320[/attach]
接下来,就该介绍状态迁移图表的延伸设计思想“Nスイッチカバレッジ”,专业化的理论可以在雅虎中搜索到,小小的理解为:
上述讲解的状态迁移图表,仅仅是“0スイッチカバレッジ”,N还可以是1、2...,核心理论是:问题的发生,不仅存在于单步迁移,部分问题仅存在于多步迁移过程中
以上述案例举例,4状态->6状态的测试,此时4状态大都是通过0状态->4状态过来的,即使没有问题,也只能说明0状态->4状态->6状态没有问题,但不能保证1状态->4状态->6状态没有问题,这就是“Nスイッチカバレッジ”的思想,N足够大的情况下,会覆盖迁移过程中的所有情况,当然,用例量也会随着增加。
与“Nスイッチカバレッジ”配套的用例自动化生成工具是“stateMatrix”,可以通过雅虎下载,该工具就是一个Excel的模板,在输入状态迁移表和N的值后,通过VBA实现测试用例的自动生成,以上述案例举例,当N=1时,用例生成如下:
(省略)
下面我们看看不同策略的用例数量:
式样覆盖:11件用例
状态迁移表(N=0):27件用例
Nスイッチカバレッジ(N=1):86用例
Nスイッチカバレッジ(N=2):275用例
Nスイッチカバレッジ(N=3):876用例
(未完待续,有兴趣可私信)

作者: jiangboh    时间: 2016-5-27 15:27

作者: jiangboh    时间: 2016-5-31 14:56

作者: Miss_love    时间: 2016-5-31 22:18
谢谢分享
作者: Miss_love    时间: 2016-5-31 22:18
谢谢分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2