软测测试用例设计之状态迁移
播放器功能测试
手机中MP3播放功能状态-事件表如下, 并且当MP3曲目在起点时不能按R键,当MP3曲目在末端时不能按P、F键
按键 | 停止 | 倒 | 播放 | 进 | 录音 |
R(倒) | 倒 | · | 倒 | 倒 | · |
P(播放) | 播放 | 播放 | · | 播 | · |
F(进) | 进 | 进 | 进 | · | · |
RC(录音) | 录音 | · | · | · | · |
S(停止) | · | 停止 | 停止 | 停止 | 停止 |
Step1、如果需求是文字描述,将文字转化为图形
Step2、需求中包含1个独立功能 —— 播放功能
Step3、针对打印功能开展需求分析
界面可见输入参数: 播放、停止、前进、倒退、录音
界面不可见输入参数: 电量、音源
Step4、分析界面可见输入参数之间的关系及特点
界面所有参数都是有效的,不存在区间范围—X— 等价类、边界值
参数之间不存在一个是什么另外一个必须是什么 —X— 判定表
有效参数组合会输出不同结果,需求中参数部分可以组合,部分不可以 组合,如前进与后退是互斥的 —X— 正交试验
不跨多个界面 —X— 流程分析法
所有参数都是有效的
参数之间存在约束条件(功能之间的约束、状态之间的约束) —— 状态迁移图
Step5、利用状态迁移图设计测试用例
① 根据需求《SRS》提取所有的功能名或状态名
② 形成N*N业务矩阵
③ 根据需求分析功能/状态的可达项 可达用功能名/状态名代替、不可达用黑点表示
④ 将业务矩阵转化为需求树 深度优先画法、广度优先画法
⑤ 一条分支为一条测试用例
深度优先画法
找一个功能名/状态名作为入口
根据业务矩阵从第一列开始竖着画,把可达项并列存放在入口的下一行
画可达项,从左边第一个功能画起,其他都注掉
一个功能只画一次,再出现就注掉,一直画到最后一个功能的可达项
状态迁移图的优缺点
优点:保证每一个功能/状态的可达项都被覆盖
缺点:对无效的路径无法覆盖