常见的软件测试用例设计方法有哪些?

常见的软件测试用例设计方法,个人认为主要是下面这6种:

1)流程图法(也叫场景法)

2)等价类划分法

3)边界值分析

4)判定表

5)正交法

6)错误推测法

这6种常见方法中,我分别按照定义、应用场景、使用步骤、案例讲解这4个部分进行讲解。

所以本文行文结构如下

1、每种用例方法定义、应用场景、使用步骤、案例讲解

2、每种用例方法应用场景的区别

一、流程图法(也叫场景法)

1、使用场景

所谓流程图法,就是专门针对软件业务流程测试的方法。

2、什么是业务流程?

业务流程,是指客户在使用软件的过程中,为了达成自身的所想要的目的,按照指定的顺序去操作软件的功能,这样的操作过程叫业务流程。

业务流程是多个功能的组合。比如:把大象放进冰箱就是一个业务流程。

常见的软件测试用例设计方法有哪些?_第1张图片

3、使用频率
高。

未来不管面向什么项目,都是为了实现用户价值去开发的,所以一定会有业务场景测试。也就意味着一定会使用到流程图法。

流程图法测试不需要深入功能内部详细测试,主要测试流程。

4、使用步骤

根据流程图找出路径

编写测试用例(从开始到结束为一条路径,有多少条路径就有多少条用例)
路径数 = 判定节点数 + 1

5、测试流程使用案例

流程图举例如下:

常见的软件测试用例设计方法有哪些?_第2张图片

测试用例设计步骤:

1)找出流程图的路径
路径数 = 3 + 1 = 4

2)编写测试用例
① 结账流程成功
② 结账流程失败-登录失败
③ 结账流程失败-选择桌台失败
④ 结账流程失败-支付失败

二、等价类划分法

1、概念
等价类定义:满足某种共同特征的数据子集

等价类分类:
有效等价类,满足需求的数据集合
无效等价类,不满足需求的数据集合
2、使用场景
没法穷举的,或数据集过大的数据集。
比如手机号,无法穷举。
比如一年365天,虽然有限,但数据集过大。
那为了缩小测试范围,就可以考虑使用等价类划分法。
3、使用频率
该方法的使用频率高。
针对:需要有大量数据测试输入, 但是没法穷举测试的地方。
比如:输入框、下拉列表、 单选复选框
4、使用步骤
步骤1:分析需求
步骤2:划分等价类—等价类表
等价类划分:按照 1)长度(空)2)类型 3)规则 去设置无效等价类
步骤3:设计用例原则
① 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类。
② 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类。
5、使用案例
注册邮箱验证
要求:

  1. 6-18个字符
  2. 包含数字、字母和下划线
  3. 必须以字母开头

解题思路:
步骤1:分析需求
图片

步骤2:划分等价类——等价类表

图片

步骤3:设计用例原则

① 先写能覆盖所有有效测试点的正向用例
一条正向用例,覆盖编号1+2+3这3条有效等价类
图片
② 剩下的所有无效测试点,再分别和正确的测试点组成反向测试用例(有多少无效测试点,就要设置多少条反向测试用例)

有6个无效测试点,就要另外再设置6条反向测试用例。
常见的软件测试用例设计方法有哪些?_第3张图片

三、边界值分析法

1、概念

规律:边界和边界内的值,更容易发现错误

所以要优先选取正好等于、刚好大于、刚好小于边界的值作为测试数据。

举例数据范围为 [-99,99]

上点:边界上的点(正好等于,下图中的绿色)

离点:距离上点最近的点(刚好大于、刚好小于, 下图中的黄色)

内点:范围内的点(区间范围内的数据,下图中的紫色)

其中,上点和内点【必选】。

常见的软件测试用例设计方法有哪些?_第4张图片

2、使用场景

输入范围有边界。意味着使用场景只能是数字或时间类型。

边界值分析法一般都是结合等价类使用。

在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)

常见词语描述:大小、 尺寸、 重量、 最大、 最小、 至多、 至少等修饰词语
典型代表:有边界范围的输入框类测试

疑问:中英文字符串可以使用边界值吗?

中英文没有边界,意味着无法使用边界值。

3、使用步骤

边界值设计用例步骤:

明确需求

确定有效和无效等价类

确定边界范围值

提取数据编写测试用例

4、使用案例

需求:验证QQ账号的合法性

要求: 6~10位自然数

明确需求

确定有效和无效等价类

确定边界范围值

常见的软件测试用例设计方法有哪些?_第5张图片

  1. 提取数据编写测试用例

常见的软件测试用例设计方法有哪些?_第6张图片

四、判定表法

1、定义

判定表法,是一种以表格形式,表达多条件逻辑判断的工具。

2、使用场景

1)多条件组合的测试 且 2)各条件之间要有约束(依赖)

图片

上方截图中,通过表格将各种组合情况都列出来,非常清晰。其中:

灰色背景色是条件桩:列出问题中的所有条件,列出条件的次序无关紧要。

绿色背景色是动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。

黄色背景色是条件项:列出条件对应的取值,所有可能情况下的真假值。

蓝色背景色是动作项:列出条件项的、各种取值情况下应该采取的动作结果。

3、判定表使用步骤

Step1、明确需求

Step2、画出判定表

1)列出条件桩和动作桩

2)填写条件项,对条件进行全组合

3)根据条件项的组合确定动作项

4)简化、合并相似规则(有相同的动作)

step3、根据规则编写测试用例

4、使用案例

订购单检查。规则:

1)如果金额大于500元,又未过期,则发出批准单和提货单;

2)如果金额大于500元,但过期了,则不发批准单与提货单;

3)如果金额小于等于500元,则不论是否过期都发出批准单和提货单;

4)在过期的情况下不论金额大小还需要发出通知。

Step1、明确需求

条件桩,两个

金额是否大于500元
订单状态是否过期

动作桩,三个

发出批准单
发出提货单
发出通知单

Step2、画出判定表

    • 列出条件桩和动作桩

常见的软件测试用例设计方法有哪些?_第7张图片

2)填写条件项,对条件进行全组合

图片

3)根据条件项的组合确定动作项

常见的软件测试用例设计方法有哪些?_第8张图片

4)简化、合并相似规则(有相同的动作)

没有,不用操作。

step3、根据规则编写测试用例

其中,判定表中贯穿条件项和动作项的一列就是一条规则,每条规则要配上一条测试用例。

常见的软件测试用例设计方法有哪些?_第9张图片

五、正交法

1、定义

正交法,是通过正交表选择部分有代表性的组合进行测试(降低测试成本)

正交表,是经过统计学的实验,分析得来的一个数学结果。它相当于是在大数据集合当中,按照数学的特性去均匀的选择挑选测试数据,以便大幅缩小测试范围。

2、应用场景

各条件相互独立,每一种有效用例里的组合数过多,而且这些组合都是有效数据。举例:

常见的软件测试用例设计方法有哪些?_第10张图片

比如,要为购票系统设置测试用例。到达北京的出发地至少有300个,以北京为出发地的目的地也至少有300个,加上出发日期,一年365天,取300天。

请问,覆盖出发地,目的地,出发日3个条件的测试用例,可以写多少条?

答案:300 x 300 x 300 =9w x 300= 2700w 条。

但由于城市名无法设置子集边界,不好使用等价类方法来缩小范围,那你就要考虑正交去降低了。

3、使用步骤

  1. 分析需求,确定因素(条件)和水平(条件取值)

  2. 选择正交表进行映射

  3. 设计测试用例:正交表一行对应一条用例

  4. 根据需求补充用例:常用的组合项

4、案例讲解

常见的软件测试用例设计方法有哪些?_第11张图片

4.1,分析需求,确定因素(条件)和水平(条件取值)

因素:出发地、目的地和出发日期 因素数:3个

水平:填写、不填写 水平数:2个

4.2,选择正交表进行映射

常见的软件测试用例设计方法有哪些?_第12张图片

正交表列名:条件具体取值替换。
水平:“填写”替代 1、“不填写”替代 2。

常见的软件测试用例设计方法有哪些?_第13张图片

4.3,设计测试用例:正交表一行对应一条用例

case1: 出发地:填写+目的地:填写+出发日期:填写

case2: 出发地:填写+目的地:不填写+出发日期:不填写

case3: 出发地:不填写+目的地:填写+出发日期:不填写

case4: 出发地:不填写+目的地:不填写+出发日期:填写

4.4, 根据需求补充用例:常用的组合项

如果某些组合情况,用户经常使用,还可以进行适度的用例完善。

六、错误推测法

1、定义

通过【经验】推测系统可能出现的问题。

可以作为正常用例方法的补充存在。

2、场景

2.1、 时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试

2.2、 时间宽裕通过该方法,列出之前出现问题较多的模块再次测试

3、使用方法

根据【经验】和【直觉】列举出可能出现问题的清单,根据清单分析问题可能原因,推测发现缺陷。

4、案例讲解

比如,输入框填入“空”。

七、最后用例方法总结

常见的软件测试用例设计方法有哪些?_第14张图片

以上六种用例,最重要的是区别每种用例方法的应用场景。简单总结如下:

1)流程图法(也叫场景法),主要针对业务场景,也就是多个功能的组合使用场景。

2)等价类划分法,主要针对数据很大,且数据主要为数字、日期类型。

3)边界值, 确认边界,要结合等价类使用

4)判定表, 一条测试用例覆盖多个条件,且条件之间有约束

5)正交法, 数据很大,但是无法使用等价类缩小范围(比如城市名,浏览器名称不是数字、日期类型),就用正交表来缩小范围

6)错误推测法,有经验的人使用

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

你可能感兴趣的:(软件测试工程师,软件测试,自动化测试,测试用例,软件测试,自动化测试,功能测试,程序人生,职场和发展)