一、用例设计方法
1.1 基本概念
- 测试用例: 在一次实际测试中使用的数据和步骤的组合
- 测试的经济学原理:
尽可能使用少的用例去覆盖尽可能多的情况。穷举法就不合理。 - 测试覆盖度: 按照可能的分类去覆盖
- 测试悖论:测不尽悖论。不可能找出所有的缺陷,我们所有的工作都是在无限的接近0缺陷。
- y=x+c:c是一个已知的常量(测试发现的缺陷数),x是没有发现的缺陷数,y是提测版本所固有的缺陷数。
二、等价类划分法
2.1 概念
- 等价类:按照输入数据的效果相近或相同来划分类型,然后从这些分类中选择有代表性的数据来作为测试数据的方法。
- 有效等价类:满足要求的等价类
- 无效等价类:不满足要求的等价类
2.2 作用
- 使用等价类的方法在保持较高的覆盖率的同时,降低测试用例的数量。
2.3 适用范围
- 输入域:提供输入功能的组件,只针对单个的输入域
2.4 使用步骤
1. 确认等价类:
- 输入项有哪些(输入长度、类型等)
- 再从输入项找出条件限制,针对条件限制进行分类
2. 画出等价类划分表- 把确认好的有效类和无效类都填入到表中
3. 根据等价类划分表编写用例 - 使用尽可能少的用例去覆盖所有的有效类
- 对于无效类,只能一个用例覆盖一个
2.5 优缺点
优点:
- 减少了大量的用例
- 保证了比较高的覆盖度
- 设计的步骤清楚简单
缺点:
- 只关注分类,忽略了逻辑和特殊情况
- 弥补方式:边界值分析法
2.6 功能测试的最终对象是什么?
- 代码实现逻辑
三、边界值分析法
3.1 概念
- 边界值:输入数据是一个有序集合或者是一个范围的时候,处于集合或者范围的边界上的值。
- 上点:边界上的点。无论开闭区间,上点都是边界点
- (4,8)上点是4和8
- [3,9] 上点是3和9
- 离点:将要离开规定区间的点。闭区间的离点在外侧,开区间的离点在内侧。
- (2,5)离点是3,4
- [3,8] 离点是2,9
- 内点:区间内除上点和离点之外的任意一点。
- 测试用例取值时,上点和离点都要取。
3.2 适用范围
- 输入域条件中有有序集合或范围的时候。
- 2、计算机内部的一些数据类型或者配置条件(带宽、容量等都有一个极限值)
3.3 使用步骤
- 划分等价类
- 设计等价类划分表
- 根据适用范围的要求填写边界值
3.4 优缺点
优点
- 聚焦于输入的边界情况,能够非常有效的找到边界上的问题。
- 用较少的用例找到大量的BUG。
缺点
- 只关注边界的情况,不关注其他情况。
- 不能单独使用,一般配合“等价类划分方法”一起使用,作为等价类的补充。
四、流程分析法
4.1 概念
- 流程:用户为了完成或者达成一定的业务目的,需要进行的一系列操作过程。
- 基本流:顺利完成业务的流程。
- 备选流:由于使用过程出现了一些其他的选择,使得用户需要处理完这些选择后重新回到基本流的过程。
- 异常流:使用过程中由于系统故障,导致需要处理这些故障的流程。
4.2 适用范围
- 涉及到与业务逻辑相关
4.3 使用步骤
- 根据需求,画出流程图
(在画流程图的时候,需要注意:判定条件为多个与的话,则放在一个菱形里面,如果是多个条件或的话,要一个条件一个菱形图,避免因为放在一起而漏掉判定,从而导致测试用例覆盖不全) - 根据流程图,编写测试用例
一个流程分支一条用例,流程分支的数量为菱形的个数+1
4.4 优缺点
优点
- 快速覆盖用户使用场景,确认用户操作的流程是否通畅,冒烟测试常用。
缺点
- 只关注场景是否通畅,忽略了大量的异常输入或无效类,因此会导致缺陷遗漏。
五、错误推测法
5.1 概念
- 基于经验或直觉推荐程序中出现的各种错误,从而针对性的去设计测试用例。
- 依赖测试工程师对产品业务的熟悉程度,对历史问题的熟悉程度、项目经验等。
- 有哪些经验可以借鉴?
-
- 边界值
-
- 极限值
-
- 特殊取值:单引号、尖括号<>
-
- 年月日取值
-
- 工作当中曾经出现过的问题
5.2 优缺点
优点
- 发挥人的直觉和经验
- 集思广益
- 方便使用、快速切入
缺点
- 无法评估用例的覆盖度
- 容易遗漏未知区域
- 带有主观性,无法复制
- 只能是一种用例设计的补充方法,无法单独使用
六、状态迁移法
6.1 概念
- 根据事物在不同状态下进行转换,从而使用状态转换事件来设计测试用例的方法。
- 状态机:在某些事件的推动下,事物的状态会发生变化,但是总的状态的数量是有限的。(有限状态机)
6.2 两个要素
- 事件:导致事物状态发生变化的行为。
- 状态:事物在某一时刻所呈现出来的情况。
6.3 适用范围
- 针对被测对象的状态比较多,且转换情况比较复杂的情况。
- 示例:
6.4 使用步骤
- 确定被测对象的状态,以及触发状态发生变化的事件,画出状态迁移表:
- 根据状态迁移表,绘制状态迁移图
- 圆圈代表状态
- 有向箭头指示状态迁移的方向
- 剪头上标记事件
- 根据状态迁移图,画出状态迁移树
- 在状态迁移图中任选一个状态,观察指出箭头,按照箭头的方向,转化为树图。
- 编写测试用例
- 根据状态迁移树,编写测试用例,一个分支一条用例。
6.5 优缺点
优点
- 针对被测对象状态比较多,且转换情况比较复杂的情况,能够保证测试用例设计的完整性。
缺点
- 不关注输入、业务逻辑
七、正交实验法
7.1 概念
- 用来研究多因素多水平的一种实验方法。
- 使用数学工具:正交表
7.2 适用范围
- 配置测试:通过调整不同的配置单元以及配置项,使得软件系统获得最有的服务效果。
- 兼容测试
- 功能测试:有多个输入框,每个输入框又分别有不同个数的值。
适用特点
- 均匀分散
- 整齐可比
使用步骤
- 在使用正交表设计用例之后,需要根据自己的经验去检查补充遗失的用例。因为正交实验法是两两匹配,对于三个的水平匹配会主动遗失掉,在审查用例的时候,从三个组合入手。