一 、测试用例
1.1为什么要写测试用例?
理清思路,避免遗漏
如果我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能点设计测试用例,再通过功能间的关系进行系统测试,有助于我们理解需求,理清思路,避免遗漏掉要测试的测试点
评估工作量,跟踪测试进展
具体的用例量可以帮助我们客观的评估工作量,执行测试时方便跟踪测试进度
历史参考
在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据
重复性
我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为
1.2不写测试用例,能进行测试执行吗?
- 答:可以
- 能保证覆盖全面吗?
- 答:看经验
举个例子:
- 要去商场购物,不写购物清单可以吗?
- 答:可以
-
能保证东西都买齐?不漏吗?
答:只能看记忆力了
1.3怎么写好测试用例?
用例编号
测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则: PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
测试标题
对测试用例的描述,测试用例标题应该简洁描述测试目的。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。
重要级别
用例的重要级别一般分成三个级别:高、中、低。
预置条件
测试用例在执行前需要满足一些前提条件,否则测试用例是无法执行的,这些前提条件就是预置条件。
操作步骤
明确描述该条用例执行的几步操作,以方便测试执行人员可以根据该操作步骤完成测试用例执行。
预期结果
预期结果根据需求中的输出得出。如果在实际测试过程中,得到的实际结果与预期结果不符,那么测试不通过;反之则测试通过。
样例:
用例编号 | 测试项目 | 测试标题 | 优先级 | 预置条件 | 输入 | 执行步骤 | 预期输出 |
ATM-ST-01 | ATM取款功能 | 本行卡:全部操作正确,进行正常取款 | 高 | 1、网络正常 2、服务正常 3、账户余额充足 4、ATM余额充足 5、未超单笔上限 6、未超当日上限 7、操作在10秒内 8、银行卡类型:借记卡 | 1、本行卡123456789 2、密码:123456 3、取款金额:500 | 1、插卡 2、输入密码和取款金额 3、确认取款 | 取款成功 |
二、用例设计方法
2.1 等价类:适用于测试数据量过大,且数据操作可以分类,例如给三角形三个边赋值,三角形的3个边长是要输入的3个参数,定义取值范围(0-100)
分析过程:
输入参数分析表 | ||||||||
输入参数个数 | 输入参数名称 | 类型 | 长度 | 取值范围 | 是否为空 | 是否重复 | 其他组成规则 | |
1 | A | 正数 | 1-3位 | (0,100) | 否 | 是 | / | |
2 | B | 正数 | 1-3位 | (0,100) | 否 | 是 | / | |
3 | C | 正数 | 1-3位 | (0,100) | 否 | 是 | / |
参数名 | 有效等价类 | 有效数据 | 无效等价类 | 无效数据 |
A、B、C | (0,100)之间的正数 | 1 50 99 | 小于等于零的数 | 0、-1 |
大于100的数 | 100、105 | |||
空 | 不输入/空格 | |||
汉字 | 赵 | |||
字母 | m | |||
特殊符号 | & |
2.2 边界值:边界值分析法是作为等价类的补充方法,其测试数据取自等价类的取值范围边界,如上输入参数取值0到100的开区间,即有效边界就是1和99
分析过程:
2.3 判定表:适用于输入参数间存在一定的逻辑关系,例如三角形的3个边赋值,看能后组成三角形
分析过程:
判定表 | 判断能否组成三角形 | |||||||||
条件桩 | A+B>C | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |
A+C>B | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | ||
B+C>A | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | ||
动作桩 | 能组成三角形 | 1 | ||||||||
不能组成三角形 | 1 | 1 | 1 | |||||||
不存在(找不出测试数据) | 1 | 1 | 1 | 1 |
根据判定变计算公式:可以得出8条组合,每条组合即每列就是一条测试用例
2.4正交实验:是利用正交表来对试验进行设计,通过少数的试验代替全面实验,根据正交表的正交性从全面试验中挑选适量的、有代表性的点进行试验,这些有代表性的点具备了“均匀分散,整齐可比”的特点。
例如ppt打印功能利用正交实验法设计用例
分析过程:
用例的设计过程
一、画因子状态表 | ||||
打印范围 | 打印内容 | 打印颜色/灰度 | 效果 | |
全部 | 幻灯片 | 颜色 | 加框 | |
当前幻灯片 | 讲义 | 灰度 | 不加框 | |
给定范围 | 备注页 | 黑白 | ||
大纲视图 | ||||
二、用符号代替因子状态 | ||||
A | B | C | D | |
A1 | B1 | C1 | D1 | |
A2 | B2 | C2 | D2 | |
A3 | B3 | C3 | ||
B4 | ||||
三、合并或补充因子状态表 | ||||
A | B | C | D | |
A1 | B1 | C1 | D1 | |
A2 | B2 | C2 | D2 | |
A3 | B34 | C3 | ~D |
合并或补充因子状态表是为了选取正交表:常用正交表可以查看https://wenku.baidu.com/view/c750077801f69e3143329464.html
正交表无需自己设计,直接选取一个符合的表即可
四、带入正交表,按列带入 | ||||
序号 | A | B | C | D |
1 | A1 | B1 | C1 | D1 |
2 | A1 | B2 | C2 | D2 |
3 | A1 | B34 | C3 | ~D |
4 | A2 | B1 | C2 | ~D |
5 | A2 | B2 | C3 | D1 |
6 | A2 | B34 | C1 | D2 |
7 | A3 | B1 | C3 | D2 |
8 | A3 | B2 | C1 | ~D |
9 | A3 | B34 | C2 | D1 |
五、拆分正交表 | ||||
序号 | A | B | C | D |
1 | A1 | B1 | C1 | D1 |
2 | A1 | B2 | C2 | D2 |
3 | A1 | B3 | C3 | D1 |
4 | A1 | B4 | C3 | D2 |
5 | A2 | B1 | C2 | D1 |
6 | A2 | B2 | C3 | D1 |
7 | A2 | B3 | C1 | D2 |
8 | A2 | B4 | C1 | D2 |
9 | A3 | B1 | C3 | D2 |
10 | A3 | B2 | C1 | D1 |
11 | A3 | B3 | C2 | D1 |
12 | A3 | B4 | C2 | D1 |
六、将符号替换成文字 | ||||
序号 | 打印范围 | 打印内容 | 打印颜色 | 效果 |
1 | 全部 | 幻灯片 | 颜色 | 加框 |
2 | A1 | B2 | C2 | D2 |
3 | A1 | B3 | C3 | D1 |
4 | A1 | B4 | C3 | D2 |
5 | A2 | B1 | C2 | D1 |
6 | A2 | B2 | C3 | D1 |
7 | A2 | B3 | C1 | D2 |
8 | A2 | B4 | C1 | D2 |
9 | A3 | B1 | C3 | D2 |
10 | A3 | B2 | C1 | D1 |
11 | A3 | B3 | C2 | D1 |
12 | A3 | B4 | C2 | D1 |
用例数可以根据公式n=因素数 *(最大水平数-1)+1,因为有因子合并,所以用例数+3;n=4*(3-1)+1+3=12
这个是手工正交实验设计方法,如果觉得比较麻烦,有一种正交法测试用例生成工具(pairs)可以参考应用
2.5流程分析法:适用于多个界面、多个操作、多个输入参数共同完成一个功能,例如ATM机的取款功能
设计流程图,从开始到结束每一条路径就是一条测试用例
2.6状态迁移法:适用于测试各种状态间的转换,多个状态串联起来进行测试的思路。例如播放器的播放、快进、快退、ldle、录音几个状态可以转换到达
分析过程:
状态树从开始到结束,每一条路径就是一条用例
2.7其他补充: