1、概念

状态迁移法主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,是否可能产生非法的状态转移等。通过构造能导致状态迁移的事件,来测试状态之间的转换。

2、 应用范围

状态迁移法的思想是提供将多个状态的转换串起来进行测试的思路。该方法适合功能的状态比较多的情况下,需测试各种状态的转换,且这些状态转换的测试在实际工作中容易被遗漏。比如播放器、遥控按键等。

3、状态迁移法的步骤

1、分析需求,整理所有状态;

2、画出状态迁移图;

3、列出状态-事件表;

4、得到状态转换树(测试路径);

5、根据状态转换树得到测试用例

4、案例:

需求:通过某购票系统,顾客可以提前购买火车票,去到某地。

用户登录购票系统,选择出发地、目的地、出发日期,选择某趟车次点击”预订“,且填好订票人信息,点击提交订单;当前订单状态为”未支付“;

用户手动取消订单,车票状态更新为“已取消”;

45 分钟内未支付,订单自动取消,车票状态为“已取消”;

用户支付车票,车票状态变为“已支付”;

用户到达车站通过自动取票机或售票窗口取票,车票状态为“已出票”;

在开车半小时前,可进行改签,改签成功,车票状态为“改签成功”;

已出票/已改签的车票检票登上火车后,车票状态变为“已使用”;

在开车半小时前,可进行退票,退票成功,车票状态为“退票成功”。

a、整理车票订单的所有状态:

未支付、已取消、已支付、已出票、退票成功、改签成功、已使用

b、画出状态迁移图:

c、列出状态-事件表:

此项不是必须项,可依据实际情况跳过该步骤,直接得到状态转换树;

d、得到状态转换树(测试路径):

通过以上得到测试路径:

未支付–> 已取消

未支付–> 已支付–> 已出票–> 改签成功–> 退票成功

未支付–> 已支付–> 已出票–> 改签成功–> 已使用

未支付–> 已支付–> 已出票–> 退票成功

未支付–> 已支付–> 已出票–> 已使用

未支付–> 已支付–> 改签成功–> 退票成功

未支付–> 已支付–> 改签成功–> 已使用

未支付–> 已支付–> 退票成功

未支付–> 已支付–> 已使用

e、根据状态转换树得到测试用例

以上每条测试路径则为 1 条测试用例,把每条路径进行覆盖测试即可。对于状态转换有存在多个事件触发,覆盖多个事件的操作,比如“未支付–> 已取消”这条测试路径,需要测试 2 种情况:1)用户手动取消车票订单 2)超过 45 分钟用户未支付,自动取消车票订单

5、总结

实际工作中,对于业务流程复杂的产品,不能很好地通过场景覆盖的方法进行用例设计时,可应用状态迁移法的思路,从业务的各种状态出发,并通过这些状态之间的切换条件串联起来进行测试覆盖,以此保证用例的高覆盖率。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

一文自测中级门槛:用例设计状态迁移法相关推荐

  1. 软件测试方法——黑盒测试九大用例设计方法

    笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章转载需注明,如果喜欢请点赞+关注,感谢支持! 导读:面试和工作必备的九大黑盒软件测试方法. 目 ...

  2. 用c语言编程牛顿环实验报告,C语言和Origin7.5软件在实验中的应用——以牛顿环测纯水折射率为例.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 C语言和Origin7.5软件在实验中的应用-- ...

  3. 接口设计文档_app端接口用例设计方法和测试方法(一)

    前言 接口测试作为测试的重要一环,重点关注的是数据层面的输入输出,今天小编介绍一种常用的接口测试用例设计方法和测试方法,希望对大家有所帮助,由于内容较多,分三次给大家讲解,今天先介绍"请求层 ...

  4. activiti 7中文文档_如何阅读文档-以Pandas库为例

    阅读文档指南-以Pandas为例 0.1相信文档 有时候我们并不完全知道该如何阅读文档,甚至不会读文档.遇到问题只会到百度上查找解决,百度上答案你抄我我抄你,简单问题反复重复,复杂问题无人问津. 这儿 ...

  5. 基于界面交互展开的用例设计思路

    测试用例是测试人员日常最重要的输出之一,对用例的评价标准一般有三个维度:结构清晰易读.可执行性强.覆盖度高.站在质量维度,最为重要的要属高覆盖度.如何写出高覆盖度的设计用例,离不开以下几个角度的分析. ...

  6. 【测试】详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手)

    文章目录 前言 接口测试是什么 HTTP接口的测试用例设计 接口用例设计小结 HTTP接口的测试方法 手工测试 自动化测试 接口测试策略 结束语 前言 大家好,我是洋子.在之前的文章<详解接口测 ...

  7. 【用例设计】接口用例设计

    在接口测试过程中,用例设计是关键中的关键,需要重点关注的一些维度 接口测试 什么是接口 接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准,所谓的接口是模块与模块之间的一种 ...

  8. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  9. 软件测试用例分析和用例设计

    测试用例的概念 测试用例(test case),也叫测试案例,是为了达到一个最佳的测试效果或者高效的发现软件中的隐藏错误(缺陷)而精心设计的包括场景步骤和数据. 通用的定义:是关于一个功能验证时候的步 ...

最新文章

  1. POJ 1989 贪心
  2. IA-32 Intel手册学习笔记(三)任务切换
  3. 认识ASP.NET MVC的5种AuthorizationFilter
  4. php 斗鱼人数,斗鱼旭旭宝宝再度登顶指数榜首位 单日弹幕人数高达48万人
  5. c++基础学习(03)--(存储类,运算符,循环,判断)
  6. poj1958 Strange Towers of Hanoi 题解报告
  7. mysql8.0.13安装不_Windows环境下MySql8.0.13的安装及常见问题解决方案
  8. Undefined symbols for architecture i386的错误
  9. cvErode() 形态腐蚀(可多次)
  10. 微信小程序 测试环境和正式环境 access_token冲突问题
  11. 前端web设计师_Web设计师的时尚Web设计主题
  12. 组合导航(九):三维简化的INS/GPS组合导航系统
  13. 犀牛云企业云网站:当我们在谈论网站建设的时候,我们在谈论什么?
  14. 酷比魔方 iwork10 pe重装系统 解决红屏 只需一个u盘
  15. 制作自己的ChatGPT
  16. java 设计模式之设计原则篇
  17. Coursera | Andrew Ng (01-week-2-2.5)—导数
  18. LPC1768的P0.27,P0.28管脚作为GPIO口输出需要外接上拉电阻才能输出高电平
  19. windows系统卸载VMware Workstation 并删除注册表残留信息
  20. 学 习 中 的 思 考

热门文章

  1. 通过SQL手工注入拿到管理员密码--辛巴猫舍
  2. matplot模块中的pylab
  3. PHPstorm配置PHP运行环境
  4. Centos 查看端口是否开放的三种方式
  5. 基于Transformer的YOLOv5小目标检测器 | 四头加注意力
  6. python获取某地铁站经纬度_python通过百度地图API获取某地址的经纬度详解
  7. 什么是异常?为什么要抛出异常?throws和throw的区别
  8. Rabbitmq中常用的五种连接方式
  9. 云课堂计算机测试答案,2020智慧职教云课堂计算机数学答案最新最全章节测试答案...
  10. 【技术贴】完美解决win7字体模糊!解决360浏览器在win7的标签字体图标模糊。最新办法收集。...