编写测试用例实战
一、什么是测试用例
- H模型
- 测试准备阶段就是编写测试用例的过程。
二、测试用例写什么
- 测试数据、操作步骤、预期结果和实际结果。
- 前置条件,用例标题,编号,重要级别,编写人等。
三、测试用例的写作规范
-
测试数据:
- 输入项及取值
- 需要输入项名称对应取值
- 建议所有的输入项都应该体现在用例的测试数据项中
- 一个用例是一组数据的测试
- 设计测试数据的时候,可以选择精确数据也可以选择范围数据
- 在设计测试数据的时候,既要设计有效数据,也要设计无效数据
-
操作步骤:
- 操作步骤在同一个功能点,理论上是相同的
- 操作步骤不要写的太长,一般建议是一个页面的输入一个提交
- 一定要注意操作步骤中,不要写数据,只要写数据项的名称
-
预期结果
- 是用户期望的结果,同一个数据只能有一种预期结果
- 预期结果包括总体结果和具体说明
-
前置条件
- 在做测试的时候是需要在一定的条件去进行,这个条件就是前置条件
- 只有特殊条件才会写前置条件,否则直接写无
-
标题:
- 标题的含义是简明扼要的描述这个测试用例
- 标题简单说就是核心数据和核心预期结果的合并
- 有效用例:核心数据+预期结果
- 无效用例:导致失败的数据+预期结果
- 理论上用例的标题是不同的
-
编号
- 1,2,3,4,...,10
- 项目名称-模块名称-1
-
所属模块
- 所属功能点
- 所属功能点
-
重要级别
- 重要、一般、不重要
- 时间紧的话就测试重要的部分。
四、应用篇
1. 等价类
- 等价类:某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其他输入条件进行测试也不可能发现错误。
- 有效等价类:有效等价类是程序规格说明有意义,合理的输入数据。
- 无效等价类:无效等价类是程序规格说明无意义,不合理的输入数据。
1.1 划分等价类的原则
- 如果输入条件规定了取值范围或值的格式,则可以确定一个有效等价类和两个无效等价类。
- 输入条件规定了输入值的集合,或是规定了必须如何的条件,则可以确定一个有效等价类和一个无效等价类。
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
- 在规定了一个输入数据的一组值假定n个,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
- 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和n个无效等价类(从不同角度违反规则)
1.2 等价类法设计的步骤
- 为每个输入项划分等价类,得到等价类表
- 进行等价类覆盖
- 设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类,重复这一步骤,使得有效等价类均被测试用例覆盖
- 设计一个测试用例,使其只覆盖一个无效等价类,重复这一步骤使得所有无效等价类均被覆盖。
1.3 案例
- 有效等价类组合
- 利用有效编号进行遍历
- 有效等价类的个数为规则最多的个数来决定组合后的个数
-
无效等价类组合
-
测试用例编写
- 测试用例写作
2. 边界值分析法
2.1 使用条件
- 输入条件明确了一个值的取值范围,或是规定了值的个数
- 输入条件明确了一个有序集合
2.2 原则
- 取范围的边界内及边界附近的值作为测试用例
- 如何输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据
- 如何输入(输出)条件是一个有序的集合,应该注意选取有序几个的第一个和最后一个元素作为测试用例
- 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
2.3 边值点定义
案例:
2.4 设计用例的步骤
- 分析输入参数的类型:从测试规格中分析得到输入参数类型
- 等价类划分(可选):对于输入等价类划分方法进行等价类划分
- 确定边界:上点、离点与内点
- 根据等价类来组合测试用例
3. 案例篇
等价类组合:
测试用例:
4. 场景法
3.1 场景说明
- 基本流:是流经用例的最重要的路径,图中的给黑线。
- 备选流:自基本流开始,之后会在某特定条件下执行:
- 可能重新加入基本流(备选流1和3)
- 可能取源于另一备选流(备选流2)
- 终止用例不再重新加入某个流。(备选流2和4)
实现步骤