51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1803|回复: 4
打印 上一主题 下一主题

[原创] 小小品'测试设计方法'之三:状态迁移图表

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-5-27 10:38:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
从案例入手,先看看状态迁移图表的应用吧!
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比较清晰,下面来看看状态迁移图:

接下来,就该介绍状态迁移图表的延伸设计思想“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用例
(未完待续,有兴趣可私信)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 04:34 , Processed in 0.064052 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表