小小品'测试设计方法'之三:状态迁移图表
从案例入手,先看看状态迁移图表的应用吧!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报警显示状态,不足3S2.B报警显示状态,满3S3.B报警显示等待取消状态4.B报警闪烁状态,不足3S5.B报警闪烁状态,满3S6.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件用例 (未完待续,有兴趣可私信) :victory: :victory: 谢谢分享 谢谢分享
页:
[1]