3年测试经验,测试用例应该达到这个水平才合格

2023-09-20 14:27:54

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

1、 应用范围

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

2、状态迁移法的步骤

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

  2. 画出状态迁移图;

  3. 列出状态-事件表;

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

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

3、案例:

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

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

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

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

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

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

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

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

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

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

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

b、画出状态迁移图:

图片

c、列出状态-事件表:

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

图片

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

图片

通过以上得到测试路径:

  1. 未支付--> 已取消

  2. 未支付--> 已支付--> 已出票--> 改签成功--> 退票成功

  3. 未支付--> 已支付--> 已出票--> 改签成功--> 已使用

  4. 未支付--> 已支付--> 已出票--> 退票成功

  5. 未支付--> 已支付--> 已出票--> 已使用

  6. 未支付--> 已支付--> 改签成功--> 退票成功

  7. 未支付--> 已支付--> 改签成功--> 已使用

  8. 未支付--> 已支付--> 退票成功

  9. 未支付--> 已支付--> 已使用

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

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

4、总结

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

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

更多推荐

《计算机视觉中的多视图几何》笔记(2)

2ProjectiveGeometryandTransformationsof2D本章主要介绍本书必要的几何知识与符号。文章目录2ProjectiveGeometryandTransformationsof2D2.1Planargeometry2.2The2Dprojectiveplane2.2.1Pointsandl

无人机倾斜摄影测量技术标准及关键技术研究

无人机倾斜摄影测量技术在应用过程中,存在模型分辨率不一致、精度不可靠、格式不匹配的问题,但没有现行的标准对任务质量进行评价,这在一定程度上限制了无人机倾斜摄影测量技术进一步发展。《无人机航空摄影测量精品教程》:无人机航测外业作业流程(像控点布设、航线规划、仿地飞行、航拍)和内业数据处理软件(Pix4d、CC、EPS、P

什么是无人机倾斜摄影?无人机倾斜摄影测量测绘中的应用有哪些?

无人机倾斜摄影是国际测绘遥感领域近年发展起来的一项高新技术,通过在同一飞行平台上搭载多台传感器,可以同时从垂直、倾斜等不同角度采集影像,获取地面物体更为完整准确的信息。无人机倾斜摄影测量技术以大范围、高精度、高清晰的方式全面感知复杂场景,通过高效的数据采集设备和专业的数据处理流程生成的数据成果直观反映地物的外观、位置、

WhatsApp营销:避免封禁账号的关键策略

首先,我们需要明白,WhatsApp官方明确反对群发为,随时可能导致账号被封禁的风险存在。因此,我们应该避免避免群发,而更多地采用单一发单的方式。当找到目标客户后,应先仔细研究客户的主页,例如他们的网站、Facebook、LinkedIn主页等信息,然后手动调整模板化的开发信函,以个性化的方式进行发送。如果您使用询盘云

C++:deque的概念以及stack和queue的模拟实现

文章目录stack的模拟实现dequequeue的模拟实现本篇主要总结的是stack和queue的模拟实现以及deque的原理stack的模拟实现和前面的模拟实现相同,首先要看官方实现的功能这里引入了Container的概念,从字面意思来看,也就是说,在实例化模板的时候实际上是需要实例化两个参数的,一个是栈内元素的数据

超级详细 SQL 优化大全

1、MySQL的基本架构1)MySQL的基础架构图左边的client可以看成是客户端,客户端有很多,像我们经常你使用的CMD黑窗口,像我们经常用于学习的WorkBench,像企业经常使用的Navicat工具,它们都是一个客户端。右边的这一大堆都可以看成是Server(MySQL的服务端),我们将Server在细分为sq

MySQL的binlog日志的简介与查看

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻1.Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。Python从入门到精通😁2.毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。❤️3.Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,

Gitlab仓库部署

Gitlab仓库部署一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Git

【Mysql系列】mysql中删除数据的几种方法

写在前面在MySQL数据库中,删除数据是一个常见的操作,它允许从表中移除不再需要的数据。在执行删除操作时,需要谨慎,以免误删重要数据。方法介绍以下是MySQL中删除数据的几种方法:DELETE语句DROPTABLE语句TRUNCATETABLE使用外键约束1.DELETE语句DELETE语句是最常用的删除数据方法之一。

pyarmor 加密许可证的使用

一pyarmor许可证的用处文档:5.许可模式和许可证—Pyarmor8.3.6文档试用版本有如下的限制:加密功能对脚本大小有限制,不能加密超过限制的大脚本。混淆字符串功能在试用版中无法使用。RFT加密模式,BCC加密模式在试用版无法使用。不可以应用于商用产品。特别的,如果商用产品的累计销售额小于基础版许可证费用乘以3

Rocky Linux 安装图解(替代centos)服务器+桌面

centos自从20年底转变为不稳定版本后,有很多替代方案经过近3年的发展,rockylinux算是一个比较好的选择,一是依照redhat企业版来做,二是rocky的发起者也是centos的创始人如果想安装debian,可以参考:debian图解安装如果想安装ubuntu,可以参考:ubuntu图解安装2023.9.1

热文推荐