功能测试基础之业务流程测试

article/2025/9/14 8:39:32

功能测试基础之业务流程测试

文章目录

  • 功能测试基础之业务流程测试
  • 前言
  • 一、面向结构分析
    • 定义
    • 实例分析
  • 二、面向过程分析
    • 定义
    • 面向过程分析过程与步骤
    • 主事件流和备选事件流说明
    • 实例分析
  • 三、面向角色分析
    • 定义
    • 测试注意事项
    • 怎样分析系统中的角色
    • 实例分析(以一个流程为例)
  • 四、面向状态分析
    • 定义
    • 交手机费状态图
    • 生成状态事件表
    • 交手机费状态图分析,生成事件状态表
    • 状态图与流程图的区别
  • 五、面向数据分析
    • 定义
    • 实例分析


前言

业务流程分析方法从不同的角度分析,有以下六种方法,分别是:
面向结构分析、面向过程分析、面向角色分析、面向状态分析、面向场景分析和面向数据分析。
通过上述方法的分析及结合使用,能对系统的业务比较清楚的描述出来,使得测试过程中业务流程覆盖率更全面。


一、面向结构分析

定义

面向结构分析主要是针对软件系统结构的分析,根据软件系统相互间的关系,得出系统中各各子系统、子系统各块间各功能的相互间关系和数据传输间的关系,从整体上来把握系统业务关系。特点是软件系统间的架构分析
系统功能模块间的关联关系的分析
数据结构是系统间的数据条件和结果


实例分析

例如信用卡系统进行不同的交易,就会与各子系统和外部系统产生不同的操作,以下面的两个例子进行分析。 信用卡进行行外交易,要做哪些操作,且在实际测试时如何要考虑系统间的关系? 行外交易——》中国银联——》龙卡系统——》信用卡核心系统——》银行卡综合业务系统——》总账系统。 在这个操作中,除了行外交易产生的最终结果处理正确时,在实际测试时,因为信用卡核心系统还要与总账系统交互,来保证平帐,所以发生交易后,信用卡核心系统数据变化正确,且总账系统的数据也要保证发生相同的变化,保持系统间的数据一致性。 信用卡发卡:信用卡核心系统——》制卡/发卡系统 由信用卡核心系统记录客户信息,把客户信息发送给制卡/发卡系统,生成信用卡账号及卡号。

二、面向过程分析

定义

面向过程分析主要是在分析系统业务时,清楚的分析出业务流转过程中正常操作所经历的步骤,及其在各步骤所产生的场景,这些场景形成了测试过程中的业务测试案例。


面向过程分析过程与步骤

1.首先确定业务流程过程的步骤划分,即整个业务流程都有那些核心步骤,并进行标号。
2.确定业务操作流程的主事件流,即业务能得到正常进行下去的业务操作。
3.确定业务操作的备选事件流,即此业务流程在流转过程中,由于条件的变化产生的其他业务流程。
4.根据主事件流和备选事件流的的结果,构造出场景,并形成场景表。
5.形成业务流程的测试案例,每个场景为一案例。


主事件流和备选事件流说明

1.主事件流
1)每一个步骤都需要用数字编号以清楚地标明步骤的先后顺序。
2)用一句简短的标题来概括每一步骤的主要内容,然后针对每一步骤详细描述参与者和系统之间所发生的交互。每一步骤都需要从正反两个方面来描述:
− 参与者向系统提交了什么信息;
− 对此系统有什么样的响应。
3)在 描述参与者和系统之间的信息交换时,需指出来回传递的具体信息。例如,只表述参与者输入了客户信息就不够明确,最好明确地说参与者输入了客户姓名和地址。
4)描述主事件流时应该使用主动语态,不要出现被动式。
2.备选事件流
在描述备选事件流时,应该包括以下几个要素:
1) 起点:该备选事件流从事件流的哪一步开始;
2) 条件:在什么条件下会触发该备选事件流;
3) 动作:系统在该备选事件流下会采取哪些动作;
4) 恢复:该备选事件流结束之后,该Use Case应如何继续执行。
备选事件流的描述格式可以与基本事件流的格式一致,也需要编号并以标题概述其内容,编号前可以加以字母前缀A(Alternative)以示与基本事件流步骤相区别


实例分析

在网银系统上交手机费,怎样来进行分析。
1.业务流程的过程步骤确定
1) 选择缴费支付功能,交手机费;
2) 输入手机号码信息,提交移动系统认证
3) 移动系统认证通过,显示应缴费信息;
4) 选择缴费账户,提交
5) 进行密码确认,输入密码提交
6) 网银将从银行账户把手机费转入到移动系统账户,并对银行系统系统提交一个转账请求
7) 银行核心系统认证通过帐户动态口令后,将转出方帐户的钱转移到一个 转入方帐户上,并将转账成功的消息通知网银系统
8) 网银在获知银行系统转账成功后,通知移动计费系统对客户手机号码充值
9) 网银在获知移动计费系统对客户手机号码充值成功后,通知客户缴费成功
10) 客户通过缴费支付记录查询,进一步确认交易成功
从以上的手机缴费操作过程来看,如果不能做到对于缴费过程清晰表明出来,那么就会漏测某些功能。
2.主事件流
1)在网银系统首页,客户选择缴费支付功能区的缴费支付激活此用例。
2)输入手机号码信息
− 客户选择收费单位所在地区:北京市
− 客户选择缴费支付项目类别:通讯服务类
− 客户选择收费单位:北京移动手机费
− 客户选择缴费内容:北京移动手机代理缴费
− 客户输入手机号码:1360*******
客户点击下一步,网银将收机号码提交移动系统认证
3)移动系统认证通过后,返回 “请输入缴费信息”页面,显示应缴费金额
4)在“请输入缴费信息”页面,客户选择缴费帐户:62270000147100860**,点击下一步,进入“请确认缴费信息”页面
5) 客户输入动态口令:423597
6)网银将缴费金额,转出方(客户帐户)以及转入方帐户(移动公司)信息,构造成转账请求消息提交给银行核心系统
7)银行核心系统认证通过帐户动态口令后,将转出方帐户的钱转移到一个 转入方帐户上,并将转账成功的消息通知网银系统
8)网银在获知银行系统转账成功后,通知移动计费系统对客户手机号码充值
9)网银在获知移动计费系统对客户手机号码充值成功后,通知客户缴费成功
10)客户通过缴费支付记录查询,进一步确认交易成功
11)客户退出缴费支付功能区,用例结束
3.备选事件流的分析
备选事件流a.1
手机号码不正确 在主事件流的步骤2- 输入手机号码中,如果输入的手机号码不正确,则系统提示“非法手机号”,客户点击确定后,回到主事件流步骤2,重新输入手机号码。
备选事件流a.2
帐户状态不对 在主事件流的步骤6-银行认证中,如果该帐户状态不正确,如挂失、冻结等不能取款的状态,系统将提示帐户状态错误信息。客户确认后,回到主事件流步骤4,重新选择账号
备选事件流a.3
帐户中现金不足 在主事件流的步骤6-银行扣款的过程中,如果客户帐号中的金额小于在主事件流步骤3中移动返回的缴费金额,系统将显示相应的消息,客户确认后,回到主事件流步骤4,重新选择账号
备选事件流a.4
超出每日最大限额 在主事件流的步骤6-银行扣款的过程中,如果银行系统返回一个错误码标明客户所要取的金额已经超出了24小时内所允许取的最大限额,系统将显示相应的消息,客户确认后,回到主事件流步骤4,重新选择账号
备选事件流a.5
用户取消 用户在主事件流的任何一步骤,都可以通过点击取消按钮或关闭网页的方式,中断缴费操作,Use Case执行结束
备选事件流a.6
没有收到充值成功消息 在主事件流的步骤9-如果网银系统没有收到移动计费系统充值成功的消息,则会把从客户帐户中已经扣掉的款项返还给客户,Use Case结束
备选事件流a.7
缴费密码输入错误 在主事件流的步骤5-输入动态口令部分,如果客户输入动态口令有误,网银将会提示客户重新输入,如果输错超过三次,则此Use Case结束
4.构造场景
编号 场景名称
1 正常缴费 主事件流
2 非法手机号 主事件流 备选流1 主事件流
3 账户状态不对 主事件流 备选流2 主事件流
4 账户现金不足 主事件流 备选流3 主事件流
5 超过支取额度 主事件流 备选流4 主事件流
6 取消操作 主事件流 备选流5 主事件流
7 充值失败 主事件流 备选流6 主事件流
8 缴费密码错1次 主事件流 备选流7 主事件流
9 缴费密码错2次 主事件流 备选流7 备选流7 主事件流
5.生成案例
根据上面的场景图,最终此业务流共9个测试案例,1个业务正例,8个业务反例。


三、面向角色分析

定义

面向角色分析是在做业务需求分析时,把系统中的各功能操作按角色及角色权限划分出来,执行业务流程时,按角色权限执行相应的业务操作。


测试注意事项

1.测试过程中每一角色在系统中的操作是否满足该角色的权限。
2.对于角色在系统中的操做是否超出了该角色所具有的操作权限。


怎样分析系统中的角色

1.系统中有哪些角色?
2.每个角色都能做什么事情?
3.每个角色都对应哪些岗位的人?
4.这些角色所要实现的功能是否已实现?
5.是否已分析系统中的所有权限?


实例分析(以一个流程为例)

对于一个公司使用的OA系统统怎么进行角色分析呢?
1.首先确定有哪些角色:系统管理员、普通用户、部门领导、总经理
2.每个角色都包括哪些人呢?
系统管理员:一般指定给一个人
普通用户:公司的普通员工
部门领导:公司内的各部门领导
总经理:公司的最高领导人
3.每种角色都能做什么工作?
系统管理员:维护管理公司OA平台并对公司各人员进行角色划分和权限分配。
普通用户:可以接收邮件,看通知和其他权限内的操作。
部门领导:对部门内员工的管理,例如请假的审批等
总经理:具有最大权限,可以对OA平台内的所有功能具有查询和审批权限。
2.业务流程与角色结合来分析一个业务流程。
1.确定角色:拟稿部门、拟稿部门领导、办公室人员,办公室领导
2.确定角色对应人员
拟稿角色:政府机关的各部门人员
拟稿核稿:政府机关各部门领导
办公室人员:办公室的所有人员
办公室领导:办公室主任
3.每种角色在整个发文流程中的权限
拟稿角色:进行发文拟稿,并发送给部门领导核稿。
拟稿核稿角色:你搞部门核稿
办公室人员:办公室核稿、合法性审核、发文登记、印制、校对、封发和送归档科室。
办公室领导:签发
4.确定角色与流程中的关系后,画出按角色画出流程图,一目了然看清楚角色在流程中的权限。
如下图:
在这里插入图片描述


四、面向状态分析

定义

1.状态:是指在对象生命周期中的一个离散的条件或状况,在此期间对象将满足某些条件,执行某些活动或者等待某些事件。
2.事件:是指在事件和空间上占有一定位置,有意义的,能激发状态转换的事情的说明
3.转换:转换是两个状态之间的一种关系,它表明对象在第一个状态中执行一定的动作,并当特定事情发生或特定的条件满足时进入第二个状态。
4.活动:是状态途中进行的非原子执行
5.动作:是一个引起模型状态改变或值的返回的,可执行原子操作


交手机费状态图

在这里插入图片描述


生成状态事件表

输入手机号码 手机号码认证 构造转账申请 银行执行转账 手机充值 银行撤销转账
提交手机号码 手机号码认证 • • • • •
手机号码无效 • 输入手机号码 • • • •
客户取消 结束 • 结束 • • •
客户提交帐户信息 • • 银行执行转账 • • •
帐户余额不足 • • • 构造转账申请 • •
超出支付额度 • • • 构造转账申请 • •
客户动态密码输错 • • • 构造转账申请/结束 • •
形成测试案例


交手机费状态图分析,生成事件状态表

在上面流程图中,每个节点都被认为是业务流程中的一个状态,进入某个状态要通过不同的条件(事件)来进行触发,来达到状态的转换。

状态图与流程图的区别

控制流程圖一般描述單一的處理过程,也就是在每一个节点只满足一个条件来进行流程的流转。上图转化成流程图如下:
在这里插入图片描述


五、面向数据分析

定义

面向数据分析主要是在业务分析过程中根据输入数据产生的结果,分析数据的一致性和准确性。(数据流通过何种方式进行转换及数据间的关联性)

实例分析

在以上的分析中,通过不同的输入数据,构造了7个测试用例,在实际测试时,按上面的分析为每个输入项确定输入值就可以了 ,如下:
编号 手机号码 动态口令 口令错三次 账户状态 账户余额 支付额度 期望结果
1 V V I V V V 缴费成功
2 I NA NA NA NA NA 报手机号码错
3 V I I NA NA NA 报动态口令错
4 V I V NA NA NA 取消缴费
5 V V NA I NA NA 提示账户状态不对
6 V V NA V NA NA 提示账户余额不足
7 V V NA V V I 提示超过支付额度
编号 手机号码
(假设应交费用320) 动态口令 口令错三次 账户状态 账户余额 累计支付–支付额度 期望结果
1 13810034560 12345 I 正常 500 500 缴费成功
2 13810034666 NA NA NA NA NA 报手机号码错
3 13810034560 12567 I NA NA NA 报动态口令错
4 13810034560 12567 V NA NA NA 取消缴费
5 13810034560 12345 NA 冻结 NA NA 提示账户状态不对
6 13810034560 12345 NA 冻结 200 NA 提示账户余额不足
7 13810034560 12345 NA 冻结 500 -20 提示超过支付额度


http://chatgpt.dhexx.cn/article/oQKAAPxf.shtml

相关文章

测试基本流程

一测试流程 立项(确定项目)——>产品说明书(PRD)——>需求文档(需求人员)——>需求评审(开发、测试人员、经理)——>开发人员进行(详细概要设计——>编码…

详述功能测试流程

一:功能测试介绍 功能测试又称黑盒测试;顾名思义就是一个盒子内部是黑色的,我们只能看见它的外部(表面);功能测试就是不考虑内部结构,仅对外部功能进行测试; 二:功能测试…

功能测试的测试流程

01 1.测试计划:这个计划,我个人觉得应该在详细设计确定后,代码开始编写的时候进行制定,因为我是“提早开始测试工作”思路的忠实fans,虽然现在项目里都只有我一个人在这么早开始工作。。。 a) 测试计划,主…

功能测试Ⅷ——业务流程测试

文章目录 总目录业务流程测试用例设计主要问题目标1、状态迁移法2、订单测试3、业务流程测试3.1 流程图介绍(复习)3.2 绘制流程图3.3 业务流程测试3.4 业务流程测试用例设计3.5 测试团队中体现专业价值,个人价值 4、tpshop业务流程测试4.1 绘…

测试流程||功能测试

一、话题引入 功能测试的流程是什么?给你一个页面你怎么测?给你一个杯子,你怎么测? 这几个问题,参加过校招测试岗面试的小伙伴可能都不陌生,因为在面试的时候,这几个问题基本上每次都会被问到。…

【Binder】Android 跨进程通信原理解析

前言 在Android开发的过程中,用到跨进程通信的地方非常非常多,我们所使用的Activity、Service等组件都需要和AMS进行跨进程通信,而这种跨进程的通信都是由Binder完成的。 甚至一个看似简单的startActivity操作,就有可能发生 7 次…

Linux进程通信和线程通信

1、进程和线程是什么 简单的描述:进程好比是工厂,线程是工厂里的生产线,一个进程里面可以包含多个线程。 专业术语:进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。 每个进程都有独立的代码和数据空间&#xf…

操作系统实验三、进程通信

文章目录 操作系统实验三、进程通信一、实验目的二、实验内容三、设计原理(或方案)及相关算法四、结果分析五、源代码 操作系统实验三、进程通信 一、实验目的 ​ 1、了解和熟悉Linux支持的消息通信机制、管道道通信、共享存储区机制及信息量机制。 2…

C++进程和Python进程通信

项目研发过程中用到了进程通信,由C应用程序创建共享内存及两个同步事件(Event1、Event2),然后阻塞等待外部进程激活事件Event1,Event1激活后,C应用程序读取共享内存中的数据,完成数据解析后执行相应指令,并…

Linux 进程通信

Linux 进程通信 1.传统进程通信 1.1 信号 信号机制是在软件层次上对中断机制的一种模拟。 信号的捕获与处理也成为系统的“软中断”机制。 1.1.1 常用信号 每个信号都有一个编号和宏定义的名称,这些名字都已SIG开头。宏定义在signal.h头文件中。 1.1.2 信号的…

进程间通信

文章目录 前言1、进程间通信的目的2、管道1.1 匿名管道1.2 命名管道 3、共享内存2.1 shmget函数2.2 shmctl函数2.3 shmat函数2.4 shmdt函数 4、消息队列5、信号量 前言 进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或…

【操作系统】进程通信

什么是进程通信?进程为什么需要通信? 进程通信:进程通信就是进程之间的信息交换。 进程通信的目的: 数据传输:一个进程需要将它的数据发送给另一个进程。通知事件:一个进程需要向另一个或一组进程发送消息…

【Linux】进程通信之管道通信详解

🍎作者:阿润菜菜 📖专栏:Linux系统编程 文章目录 一、什么是管道通信1. 管道通信是一种在进程间传递数据的方法2.看看接口:匿名管道和命名管道3. 管道通信的本质是什么? 二、管道通信的实现和深入理解1.如何…

进程通信方式总结与盘点

​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到…

《操作系统》实验报告——进程通信

理论知识 Linux——Linux C语言编程基础知识 Linux——进程通信 一、实验目的 (1) 熟悉并掌握管道机制,并实现进程间通信 (2) 熟悉并掌握共享内存机制,并实现进程间通信 二、实验内容 任务一: (1)阅读以上父子…

多进程通信

多进程: 首先,先来讲一下fork之后,发生了什么事情。 由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则…

进程间通信详解

目录 一.进程间通信介绍 1.进程间通信的目的 2.进程间通信的本质 3.进程间通信分类 二.什么是管道 三.匿名管道 1. 匿名管道只能用于具有亲缘关系的进程之间进行通信,常用于父子。 2.pipe函数 3. 匿名管道的使用 4.管道的读写…

QProcess实现进程通信

QProcess实现进程通信的方式有点类似于管道。 QProcess父进程通过write来写入标准输入stdin,通过ReadyRead信号来接收子进程的消息。 QProcess子进程通过QFile来读取标准输入来接收父进程信息。通过QFile绑定QSocketNotifier来接收标准输入的实时信号,…

进程通信原理

目录 进程通信原理 1、同主机间的消息通讯机制 1.1 管道(pipe),流管道(s_pipe)和有名管道(FIFO) 1.2 信号(signal) 1.3 消息队列 1.4 共享内存 信号量 套接字(socket) 进程间通信各种方式效率比…

Linux进程通信

笔者在学习linux的过程中对linux进程通信进行记录学习。现在在 Linux 中使用较多的进程间通信方式主要有以下几种。 (1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信…