lsekfe 发表于 2021-7-1 09:30:57

黑盒测试用例设计方法之状态迁移图法

一、状态迁移图法的定义
  许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面,。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法的状态迁移等。
  通过构造能导致状态迁移的事件来测试状态之间的转换,常用于协议测试。
  用这种方法可以设计逆向的测试用例,如状态和事件的非法组合。
  明确点:
  1、针对有限状态机的测试方法
  2、给一个触发条件
  3、常应用于WEb页面转换、自动化测试、通信协议测试等
  状态机:指定系统所有可能的状态以及状态相互跳转的条件。
  状态:指对象在其生命周期中的一种状态,处于某一个特定状态中的对象必然会满足的某些条件。
  触发条件:引起状态的变迁,促使状态从一种状态转换到另一种状态(动作、行为)。
  二、状态迁移图法设计用例步骤
  1、分析需求规格说明书,找出状态和触发条件(分析状态条件之间有哪些关系)。
  2、画出状态迁移图(设定一个初始状态、初始状态是相对而言的,状态用圆圈表示,条件用带有箭头的线段表示)。
  3、通过状态图画出状态--事件表(四列,上一状态,条件,下一状态,表现的行为动作信息)。
  4、从状态转换树推导出测试路径。
  5、根据测试路径编写合法测试用例。
  6、编写非法测试用例。
  三、状态迁移图法的实用
  例1:某打印机功能如下:
  打印机初始处于就绪的状态下,可以接收打印的任务,进入打印状态,开始打印;
  在打印的过程中,如果打印机出现故障,打印机将处于故障状态,等待修复故障;故障修复后,打印机恢复打印状态,继续打印原来的文档;
  在打印过程中,如果纸张用完,打印机将暂停打印,处于缺纸状态,当放入印纸后,打印机会自动检测,恢复打印状态,继续开始打印;
  打印任务完成,打印机恢复就绪状态。
  步骤:1、分析需求片段,找出所有状态以及状态之间的跳转条件。
  状态:就绪,打印,故障,缺纸。
  跳转条件:打印指令,出现故障,故障修复,缺纸,放入纸张,打印完毕。
  2、设定初始状态,画出状态迁移图
http://www.51testing.com/attachments/2021/06/15326880_202106111551201APAb.png
  3、生成状态时间表
http://www.51testing.com/attachments/2021/06/15326880_202106111552111ZqcC.png
  4、生成状态转换树
http://www.51testing.com/attachments/2021/06/15326880_202106111552471vwcs.png
  5、从状态树推导出测试路径:
  就绪---打印---缺纸---打印
  就绪---打印---故障---打印
  就绪---打印---就绪
  6、根据测试路径编写测试用例
  7、添加非法的测试用例
  比如直接就绪状态----故障状态或者就绪----缺纸等
  例2:电梯是典型的利用状态迁移法测试
  状态:停在一楼、上升、下降、空闲、直接去一楼
  指令:楼层、指定层>空闲层,指定层=空闲层,指定层<当前层
  步骤:
  1、划分需求子片段,找出状态和指令
  2、设定初始状态,画出状态迁移图
http://www.51testing.com/attachments/2021/06/15326880_202106111553161TxXe.png
  3、根据状态迁移图,生成状态时间表
http://www.51testing.com/attachments/2021/06/15326880_20210611155454187iA.png
  4、生成状态转换树
http://www.51testing.com/attachments/2021/06/15326880_2021061115554319YIN.png
  5、从状态树推导出测试路径
  停在一层----停在一层
  停在一层----上升-----空闲----上升
  停在一层----上升-----空闲----空闲
  停在一层----上升-----空闲----下降-----空闲
  停在一层----上升-----空闲-----停在一层
  6、根据测试路径编写测试用例
  7、添加非法的测试路径


页: [1]
查看完整版本: 黑盒测试用例设计方法之状态迁移图法