- 等价类与边界值适用于测试应用的数字、文字、软件输入和输出。
- 软件测试的另一方面是通过不同的状态验证程序的逻辑流程。
目录
一、流程法
1. 基本概念
刚接触一个新项目时,如果直接开始编写用例,可能会没有头绪。遇到这种情况可以先画出业务的流程图。这样能快速的对业务有一个了解,也更容易整理出设计用例的思路。
- 流程分析法又叫场景设计法。流程法中有三种类型的流程:
- 基本流:通过业务流程输入都为正确的,能够最终达到目标的流程。
- 备选流:通过实现业务流程时,因错误操作或异常输入,导致流程存在反复,但最终能够达到预期的操作流程。
- 异常流:通过实现业务流程时,因错误操作或异常输入,导致没有完成业务流程。
2. 使用方法
- 网上教程常见的使用方法是:绘制流程图,抽取测试路径,每个路径需包含一个从未走过的路径,再从中抽取用例。
- 但这种方法太抽象了,在不熟悉业务时也很难列出三种类型的流程,还有可能存在遗漏的情况。
- 这里介绍另一种使用方法:
- 先根据需求,画出业务流程的基本流,也就是正向流程
- 在每一个节点,列出可能发生的除正向流程外的其他情况,也就异常情况
- 把每一个异常情况也看做一个节点,思考是否可以回到基本流中。如果经过操作,可以回到基本流,那这种情况就是备选流;如果无法通过操作回到基本流,那就是异常流程
- 最后,使用等价类划分法或其他用例设计方法,将流程精简,去除冗余部分。
(在进行流程筛选时,如果只存在一个流程的节点不同的,就仍然把整条流程作为一条新测试用例,这样的用例存在许多重复部分。代码的编写也是遵循模块化原则,重复的用例最终只是反复的在测试同一段代码,所以在使用流程分析法时也要同时使用等价类划分来精简用例。)
3. 适用范围
- 流程法在用例编写上只会校验整个流程是否能够顺利进行,并不校验单个功能节点的正确性。
- 这就意味着这种方式只适用于功能节点之间有很强的关联性的情况下。
- 如果功能节点间关联性不大的情况下,使用其他用例设计方法即可。
- 也正是因为流程法不校验单个功能节点的正确性,所以在使用流程法时,也要先确保单个功能的正确性。
二、状态分析法
1. 基本概念
- 软件状态,是指软件当前所处的条件或者模式。
- 达到软件的所有状态这很简单,也是测试时必须要做到的,但困难的在于走遍所有分支,达到所有状态。
- 状态分析法就是运用测试技术选择状态和分支,从而达到测试目的。
2. 使用方法
- 建立状态转换图,需要包含以下内容:
- 软件可能进入的每一种独立状态。
- 从一种状态转入另一种状态所需的输入和条件
- 进入或者退出某种状态时的设置条件及输出结果
- 对状态及分支进行等价类划分,将大量的可能性减少到可以操作的测试用例集合。最后的集合要满足以下条件:
- 每种状态至少访问一次
- 需要覆盖所有正向流程
- 需要覆盖所有的错误状态及其返回值
三、流程分析法与状态分析法
1. 将两种方法结合使用
- 流程法有一部分是与状态分析法重叠的:
- 流程法在于达到一个目标
- 状态分析法在于达到待测软件的所有状态
- 可以将这两种方法结合起来:
- 首先先分析一个软件能达到的所有状态。
- 再用流程法,把每一个状态当做一个最终目标分析。
- 将这两种方法结合起来使用,能够使用例更完整。
四、示例
以这个购买商品的流程为示例,业务逻辑如下:
- 针对这个业务逻辑,存在三种情况支付成功、已登录但购买失败、未登录并取消登录
首先,分析正向流程
发起商品购买->进入订单确认页面->支付商品->购买成功
分析每个节点的异常情况
针对“发起商品购买”这个节点,从业务逻辑上看,可能存在由于账号未登录需要先登录的情况,使用测试技术分析,此时可能会存在网络异常或其他异常原因导致没能正常发起购买的情况。
图中,红色部分(发起购买失败、取消登录)显然是没能回到后续的流程,这种流程类型是异常流程。绿色部分(登录成功)显然可以回到后续的流程,这种流程类型就是备选流
针对“支付商品” 这个节点,从业务逻辑上看,可能存在账号余额不足、密码输入错误、直接取消支付等情况,使用测试技术分析,此时可能会存在网络异常或其他异常原因导致没能支付的情况。
图中,红色部分(购买失败)显然是没能回到后续的流程,这种流程类型是异常流程。绿色部分(输入正确密码)显然可以回到后续的流程,这种流程类型就是备选流
使用等价类划分法,去除多余流程
- 经过分析后,所有流程如下:
- 去除重复部分
- 经过分析后,所有流程如下:
- 这样就完成了流程法的分析
附录:【测试用例入门系列目录】
测试用例入门(一)-如何编写用例标题、前置条件、测试步骤和预期结果?
测试用例入门(二)-使用等价类划分法编写测试用例
测试用例入门(三)-使用边界值分析法编写测试用例
测试用例入门(四)-使用流程分析法、状态分析法编写测试用例
测试用例入门(五)-如何进行需求分析
测试用例入门(六) - 根据测试类型与颗粒度归纳测试点
本文含有隐藏内容,请 开通VIP 后查看