状态迁移与场景法:搞定复杂业务流测试的利器

news/2025/10/27 15:12:47/文章来源:https://www.cnblogs.com/hebendexiaomao/p/19169173

在软件测试中,我们经常会遇到各种复杂的业务流系统,比如电商订单、客服工单、审批流程等。这些系统都有一个共同特点:它们都有明确的状态,并且会在特定条件下在不同状态之间流转。

面对这样的系统,如何设计出覆盖全面、高效有效的测试用例呢?今天我们就来介绍两种利器:状态迁移法和场景法。

什么是状态迁移测试法?

状态迁移测试法是一种基于系统状态变化的测试方法,特别适用于有状态流转的系统。它的核心思想是:系统的行为取决于当前状态和触发事件。

状态迁移图基本元素

  • 状态(State)系统在特定时间点的状况

  • 迁移(Transition)从一个状态到另一个状态的转变

  • 事件(Event)触发状态迁移的条件或动作

  • 动作(Action)状态迁移时执行的操作

一个简单的状态迁移图示例

image

 

这个简单的状态迁移图描述了两个状态(锁定和解锁)以及它们之间的迁移条件。

状态迁移法在订单系统中的应用

让我们看一个更实际的例子:电商订单系统。

订单状态迁移图

image

 

状态迁移表

image

 


基于状态迁移的测试设计

使用状态迁移法,我们可以系统地设计测试用例:

  1. 覆盖所有状态确保测试到系统的每一个状态

  2. 覆盖所有迁移测试每一个状态之间的迁移路径

  3. 测试无效迁移尝试在错误的状态下触发事件

  4. 测试边界条件关注状态迁移的边界情况

这种方法确保了我们对订单系统的每一个状态和每一次状态变化都进行了测试,大大提高了测试覆盖率。

什么是场景法?

场景法(也称流程图法)是一种从用户视角出发的测试方法,通过描述用户使用系统的完整路径来设计测试用例。它关注的是用户为了完成某个目标而执行的一系列操作。

场景法的核心要素

  • 基本流用户最直接、最顺利达成目标的路径

  • 备选流用户在达成目标过程中可能遇到的各种分支路径

  • 异常流用户操作出错或系统异常时的处理路径

场景法在测试中的应用

场景法的优势

  1. 用户视角从用户如何使用系统的角度设计测试,更贴近实际使用情况

  2. 端到端覆盖覆盖用户完整的操作路径,而不是孤立的单个功能

  3. 业务逻辑覆盖能够更好地覆盖复杂的业务逻辑和交互

  4. 易于理解测试场景就像用户故事,容易被项目成员理解

场景设计步骤

  1. 理解业务需求和用户目标

  2. 识别主要用户和他们的目标

  3. 为每个目标设计基本流

  4. 识别并设计备选流和异常流

  5. 将场景转化为具体的测试用例

实战:电商下单流程测试场景设计

现在,让我们结合状态迁移法和场景法,为一个典型的电商下单流程设计测试场景。

电商下单业务流程分析

典型的电商下单流程包括以下步骤:

  1. 用户浏览商品

  2. 用户添加商品到购物车

  3. 用户进入结算页

  4. 用户选择收货地址

  5. 用户选择支付方式

  6. 用户提交订单

  7. 用户支付订单

  8. 商家发货

  9. 用户确认收货

  10. 订单完成

状态迁移图设计

首先,我们为电商订单系统设计一个详细的状态迁移图:

image

 

 

主页测试场景设计

场景1:正常下单流程(基本流)

场景描述用户顺利下单并完成收货的全过程

步骤

  1. 用户添加商品到购物车

  2. 用户进入结算页面,确认订单信息

  3. 用户选择收货地址和支付方式

  4. 用户提交订单,进入待支付状态

  5. 用户支付成功,订单状态变为已支付

  6. 商家发货,订单状态变为已发货

  7. 用户确认收货,订单状态变为已完成

测试点

  • 每个步骤的界面显示是否正确

  • 每个状态转换是否正确

  • 库存扣减和恢复是否正确

  • 通知消息是否及时发送

  • 订单日志是否完整记录

场景2:支付后取消订单(备选流)

场景描述用户支付成功后申请退款

步骤

  1. 用户完成支付,订单状态为已支付

  2. 用户申请退款,订单状态变为退款中

  3. 商家审核通过,执行退款

  4. 退款成功,订单状态变为已取消

测试点

  • 退款申请流程是否顺畅

  • 退款金额是否正确计算

  • 支付渠道退款是否正确触发

  • 库存是否正确恢复

  • 用户通知是否及时

场景3:退货流程(备选流)

场景描述用户收到商品后申请退货

步骤

  1. 用户确认收货前申请退货,订单状态变为退货中

  2. 商家审核退货申请

  3. 用户寄回商品

  4. 商家确认收到退货

  5. 退款执行,订单状态变为已退货

测试点

  • 退货申请条件判断是否正确(如是否在允许退货期内)

  • 退货物流信息跟踪是否正确

  • 退款金额计算是否正确(考虑部分退货情况)

  • 商品入库流程是否正确

场景4:支付异常处理(异常流)

场景描述用户支付过程中遇到问题

步骤

  1. 用户提交订单,进入待支付状态

  2. 用户支付时银行卡余额不足,支付失败

  3. 系统提示支付失败,订单仍处于待支付状态

  4. 用户更换支付方式,重新支付成功

测试点

  • 支付失败的错误信息是否清晰

  • 订单状态在支付失败后是否正确保持

  • 是否允许更换支付方式重新支付

  • 支付记录是否正确记录失败和成功记录

场景5:超时处理(异常流)

场景描述订单在各个环节的超时处理

步骤

  1. 用户提交订单但未支付,等待超时

  2. 系统自动取消订单,状态变为已取消

  3. 用户已支付,商家超时未发货

  4. 系统提醒商家尽快发货

  5. 商家发货,用户超时未确认收货

  6. 系统自动确认收货,订单状态变为已完成

测试点

  • 各种超时时间配置是否正确生效

  • 超时后的自动处理是否正确执行

  • 超时前的提醒通知是否正确发送

  • 超时后的状态转换是否正确

测试用例设计技巧

1. 基于场景矩阵设计用例

我们可以创建一个场景矩阵,确保覆盖所有重要的场景组合:

image

 

2. 使用场景模板

为每个测试场景创建一个标准模板,确保覆盖所有重要信息:

场景模板

  • 场景ID和名称

  • 场景描述

  • 前置条件

  • 测试步骤

  • 预期结果

  • 测试数据要求

  • 优先级

  • 关联的需求或用户故事

3. 结合边界值分析

在每个场景中,结合边界值分析方法设计更细致的测试用例:

  • 商品数量边界:0、1、正常数量、库存上限、超过库存

  • 金额边界:0元订单、小额订单、大额订单、金额上限

  • 时间边界:超时临界点、活动时间边界

状态迁移法与场景法的结合使用

状态迁移法和场景法并不是相互排斥的,而是可以很好地结合使用:

结合使用的优势

  1. 全面覆盖状态迁移法确保状态转换覆盖全面,场景法确保用户路径覆盖全面

  2. 深度与广度状态迁移法提供测试深度,场景法提供测试广度

  3. 不同视角状态迁移法从系统视角设计测试,场景法从用户视角设计测试

结合使用的实践方法

  1. 先状态,后场景先使用状态迁移法分析系统的所有状态和迁移,然后基于这些状态设计用户场景

  2. 状态验证融入场景在场景测试中,验证每个步骤后的系统状态是否正确

  3. 异常场景补充基于状态迁移图中的无效迁移设计异常场景

实际工作流程

  1. 分析需求,绘制状态迁移图

  2. 基于状态迁移图,设计状态迁移测试用例

  3. 分析用户操作,绘制业务流程图

  4. 基于业务流程图,设计场景测试用例

  5. 合并和优化测试用例,去除重复

  6. 确定测试用例优先级,制定测试计划

总结

状态迁移法和场景法是测试复杂业务流系统的两种重要方法。状态迁移法关注系统的状态变化,确保每个状态和迁移都被充分测试;场景法关注用户的完整操作路径,确保测试贴近用户实际使用情况。

在实际项目中,我们可以根据系统特点灵活运用这两种方法:

  • 对于状态流转复杂的系统(如订单、工单、审批流),可以以状态迁移法为主,场景法为辅

  • 对于用户操作路径复杂的系统(如电商购物、银行转账),可以以场景法为主,状态迁移法为辅

  • 对于复杂系统,最佳实践是结合使用两种方法,从不同视角设计测试用例

通过合理运用这两种方法,我们能够设计出覆盖全面、高效有效的测试用例,大大提高软件质量和测试效率。

希望本文能帮助你更好地理解状态迁移法和场景法,并在实际工作中灵活运用。如果你有任何问题或想法,欢迎在评论区留言交流!

本文原创于【程序员二黑】公众号,转载请注明出处!

欢迎大家关注笔者的公众号:程序员二黑,专注于软件测试干活分享,全套测试资源可免费分享!

最后如果你想学习软件测试,欢迎加入笔者的交流群:785128166,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025无机纤维喷涂/聚氨酯保温喷涂推荐榜:四川瀛都鑫顺防腐保温领衔,建筑/工业保温降噪优质厂家精选

2025 年建筑节能、工业设备绝热、声学降噪领域需求持续升级,无机纤维喷涂作为兼具保温、防火、降噪功能的核心材料,其 “材料环保性、施工专业性、场景适配性” 成为企业选择的核心标准。经技术实力与服务口碑筛选,…

实用指南:精读C++20设计模式——行动型设计模式:责任链

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Go语言测试全攻略:从单元测试到模糊测试

本文详细介绍了Go语言中的测试实践,包括单元测试编写、表驱动测试、代码覆盖率分析、CI/CD集成以及模糊测试技术,帮助开发者构建更健壮可靠的应用程序。Go语言测试指南 有些开发者通常选择不为代码编写测试,或者有很…

090_尚硅谷_循环控制基本介绍和入门

090_尚硅谷_循环控制基本介绍和入门1.for循环入门使用

2025锻造成型/多向锻造/锚杆托盘成型/粉末成型/拉伸成型/玻璃钢成型/复合材料成型/液压机推荐榜:山东威力重工机床领衔,工业 / 定制化液压设备优质厂家精选

2025 年工业制造、汽车零部件加工、金属成型等领域对液压机的需求持续细化,设备的 “高精度、节能性、场景定制能力” 成为企业选择的核心标准。经技术实力与服务口碑筛选,以下企业展现出突出竞争力,山东威力重工机…

JimuReport 积木报表 v2.1.5 版本发布,免费的可视化报表和大屏

JimuReport 积木报表 v2.1.5 版本发布,免费的可视化报表和大屏项目介绍积木报表,是一款免费的数据可视化报表,含报表、打印、大屏和仪表盘,像搭建积木一样完全在线设计!功能涵盖:复杂报表、打印设计、图表报表、…

2025实验室/小型/变压吸附/PSA/制氮机推荐榜:江阴三阳制氮机械领衔,工业/食品级制氮设备优质厂家精选

2025 年工业生产、食品加工、电子制造等领域对氮气的需求持续增长,制氮机作为核心供气设备,其 “节能性、稳定性、场景适配性” 成为企业选择的核心标准。经技术实力与服务口碑筛选,以下企业展现出突出竞争力,江阴…

人工智能背景下的智慧规划建设方案

在数字化浪潮席卷全球的今天,人工智能技术正以前所未有的深度和广度融入城市发展的各个领域。智慧规划作为城市现代化建设的核心环节,通过AI技术的赋能,正在从传统经验驱动转向数据驱动和智能决策的新模式。本文将系…

2025 年 10 月 OZON ERP,Temu ERP,Shopee ERP 公司最新推荐,聚焦跨平台能力与售后体系的实用指南

引言 随着跨境电商行业的蓬勃发展,OZON、Temu、Shopee 等平台成为众多企业拓展海外市场的重要阵地,专业的 ERP 系统则成为提升运营效率的关键。为帮助企业精准选择适配的 ERP 服务,本次测评由中国跨境电商协会联合行…

van-uploader 设置上传按钮的尺寸和预览图片的尺寸

<van-uploader 设置上传按钮的尺寸和预览图片的尺寸1 说明 1.1 代码<van-uploader file-list="{{ fileList }}"deletable="{{ true }}"max-count="10"multiple accept="ima…

2025 年 10 月进销存 erp,供应链 erp,零售 ERP 公司最新推荐,聚焦资质、案例、售后的五家机构深度解读!

引言 随着企业数字化管理需求的持续升级,进销存 ERP、供应链 ERP 及零售 ERP 作为企业运营的核心工具,其性能与服务质量直接影响企业效率与市场竞争力。为精准筛选优质服务商,2025 年 10 月,中国软件行业协会联合企…

MM-SAM

SAM的局限性:1、依赖用户手动提示,用户在输入一张图片后,还需要给予手动提示,模型才能分割。** 2、当用户未提供输入掩码时,则掩码嵌入将被随机初始化的嵌入替换,导致性能下降。 MM-SAM的结构:(1)将BLIP用于图…

测试用例设计的艺术:等价类、边界值与判定表实战

在软件测试领域,测试用例设计是核心技能之一。无论你是手工测试还是自动化测试,编写高质量的测试用例都是确保软件质量的关键。今天,我们将重温三种最经典的黑盒测试方法:等价类划分、边界值分析和判定表,并通过一…

2025年半自动冲芯机生产厂家权威推荐榜单:半自动矽钢片冲芯机/半自动铁芯冲压机/半自动冲芯设备源头厂家精选

根据行业数据显示,全球半自动冲孔机市场在2024年销量约为45,000台,平均售价为18,500美元/台,预计到2031年市场销售额将达到92.36亿元,期间年复合增长率为5.8% 。这一增长主要受到中小企业自动化改造、定制化生产需…

2025 年给水用 pe 管,钢丝网骨架 pe 管,大口径 pe 管厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 当前给水用 PE 管、钢丝网骨架 PE 管、大口径 PE 管在市政基建、水利工程等领域需求激增,塑料加工工业协会数据显示,此类管材在市政管网项目渗透率已达 68%,但不同厂家产品质量差距达 30%。为精准筛选优质厂家…

分销积分商城小程序系统:赋能商家的全场景营销解决方案

一、概述总结 这款分销积分商城小程序系统是一款深度融合分销与积分体系的全能营销工具,支持微信公众号与微信小程序多平台部署,通过微擎系统实现高效交付。系统以三级分销为核心架构,搭配灵活的会员等级体系与丰富…

图多多表情包斗图微信小程序:开启斗图新体验,赋能流量变现新可能

一、概述总结 图多多表情包斗图是一款专为微信小程序打造的斗图神器,内置海量优质斗图表情,能让用户轻松成为斗图王者。该小程序不仅具备丰富的表情相关功能,还支持多种广告形式,为运营者提供了多元的变现路径。其…

2025 年 10 月 PE 管道、PE 管材、HDPE 管、PE 管材管件厂家最新推荐,产能、专利、环保三维数据透视

引言 据塑料管道协会 2024 年度报告显示,PE 管市场年需求量已突破 120 亿米,但市场抽检合格率仅 76.3%,近五年因质量问题引发的工程事故直接损失超 50 亿元。2025 年四季度基建工程进入关键期,管材选型面临 “参数…

java(1)-安装JDK-mac

如何检查macOS上是否安装了JDK?终端输入命令: 输入 java -version,若显示版本号(如 java version "17.0.1")则已安装‌ 为什么要安装JDK?安装 JDK(Java Development Kit)是开发和运行 Java 程序的基…

2025 年燃气用 pe 管,pe 管件,矿用 pe 管厂家最新推荐,聚焦资质、案例、售后的深度解析

引言 2025 年 PE 管行业在燃气输送、矿山开采等领域的应用标准持续升级,为破解采购端资质辨别难、质量把控弱、售后无保障等痛点,塑料管道协会联合第三方检测机构开展专项测评。本次测评历时 3 个月,覆盖 30 余个省…