一、概念
1.为了某一目标而设计的一组测试输入、执行条件以及测试结果的例子
2.特性
特性 | 解释 |
---|---|
有效性 | 能被使用,被不同人员使用结果一致 |
可复用性 | 重复使用 |
易组织性 | 分门别类参考和使用 |
可评估性 | 测试用例的通过率和软件缺陷的数目是产品好坏的标准 |
可管理性 | 测试用例的通过率和软件缺陷的数目是产品好坏的标准(和上一样) |
3.测试用例八要素
(1)测试用例编号:字符和数字合成的字符串
(2)测试项目/模块:测试项目属于哪个项目
(3)预置条件
(4)测试输入
(5)预期输出
(6)操作步骤
(7)测试用例标题
(8)级别:高、中、低
其余要素:用例的设计者、用例设计日期、对应的开发人员、测试结果、测试性能、功能、压力等等
4.测试用例设计原则
(1)明确性
(2)代表性
(3)简洁性
二、设计方法
1.等价类划分法
(1)确定需求
(2)确定有效等价类和无效等价类
(3)对每条等价类设计测试用例
如:测试qq登录
Ⅰ、明确条件:[6-11]位的qq号、数字、整数、不能以0开头
Ⅱ、有效类等价:6位数字 7位数字 8位数字 9位数字 10位数字 11位数字(均不以0开头)
无效等价类:6位数字 7位数字 8位数字 9位数字 10位数字 11位数字(均以0开头)、小数、字符、字母、汉字、组合
Ⅲ、
用例编号 | 用例标题测试模块 | 预置条件 | 测试输入 | 预期输出 | 操作步骤 | 级别 | 开发人员 | 测试结果 | |
---|---|---|---|---|---|---|---|---|---|
qq-login-001 | 有效测试qq登录 | 登录 | 网络正常 | 100001 | qq号正确 | 1.把qq号填入qq号码栏2.登录 | 重要 | 小明 | 小红 |
qq-login-002 | 无效测试qq登录 | 登录 | 网络正常 | abcdef | 提示输入qq号错误 | 1.把qq号填入qq号码栏2.登录 | 重要 | 小明 | 小红 |
2.边界值法
边界点(上点):输入范围的边界点
离点:离边界点最近的点
内点:输入范围内任意一个点
步骤:
(1)明确需求
(2)确定有效等价类和无效等价类
(3)明确输入条件中的边界值
(4)编写测试用例
3.因果图法:利用图解法分析输入的组合情况
(1)考虑所有输入、输出条件的相互制约的关系以及组合关系
(2)输入条件的依赖关系,有什么因则有什么果
关系 | 含义 |
---|---|
E(Exclude) | a和b中至多有一个1 |
I(Include)包含 | a和b中至少有一个必须为1 |
M(Mandatory)强制 | 若结果a是1,结果b强制为0 |
O(Only)唯一 | a和b必须有一个,且仅有一个1 |
R(Requested)要求 | a是1时,b必须是1 |
步骤:
(1)找出所有的原因,原因即输入条件或输出条件的等价类
(2)找出所有的结果,结果即输出条件
(3)明确所有输入条件的制约关系和组合关系,哪些条件可以组合,哪些不能
(4)明确所有输出条件的制约关系和组合关系,哪些结果不能同时输出,哪些能
(5)找出什么样的输入条件组合会产生哪种输出结果
(6)把因果图转换成判定表/决策表
(7)为判定表/决策表中的每一列表示的情况设计测试用例
案例:交通一卡通自动充值软件
输入条件:
(1)输入50元
(2)输入100元
(3)选择充值50元
(4)选择充值100元
输入组合情况:
(1)与(2)不能组合;
(1)与(3)可以组合;
(1)与(4)可以组合;
(2)和(3)可以组合;
(2)和(4)可以组合;
(3)和(4)不能组合;
(1)(2)(3)(4)可单独出现
输出结果:
a.完成充值,退卡
b.提示充值成功
c.找零
d.提示错误
结果组合情况:
ab必须组合;
abc可以组合;
ad不能组合;
bd不能组合;
cd可以组合;
d可单独出现
因果图:(没有画完)
判定表:
测试用例:
用例编号 | 用例标题测试模块 | 预置条件 | 测试输入 | 预期输出 | 操作步骤 | 级别 | 开发人员 | 测试结果 | |
---|---|---|---|---|---|---|---|---|---|
buus-01 | 测试充值50元 | 充值模块 | 系统正常 | 50元选择充值50元 | 完成充值,退卡,提示充值成功 | 1.投入50元人民币2.选择充值50元 | 高 | 小红 | 通过 |
4.判定表法(如上的图)
(1)判定表也是决策表
(2)使用场景:多输入多输出
(3)组成
部分 | 含义 |
---|---|
条件桩 | 列出问题所有条件(无先后) |
动作桩 | 列出问题所采取的操作(无顺序约束) |
条件项 | 针对条件的取值 |
动作项 | 列出条件项各种情况所采取的动作 |
(4)任何一个条件组合的特定取值及其执行的操作称为规则 | |
(5)步骤: | |
Ⅰ、明确规则个数 | |
Ⅱ、列出所有条件项和动作项 | |
Ⅲ、填入条件项 | |
Ⅳ、填入动作项初始判定表 | |
Ⅴ、简化、合并相似规则 |
5.正交表法/正交实验法/正交排列法
L4(2^3):
L:正交表
4:试验次数(测试用例的个数)
3:因素数(输入条件)
2:水平数(输入条件的可选项)
(1)概念:使用最小的测试过程获得最大的测试覆盖率
(2)步骤:
Ⅰ、根据需求把其控件及其取值列举出来
Ⅱ、根据控件和控件的取值个数选择一个合适的正交表
Ⅲ、根据控件的个数选择正交表的次幂,也就是正交表中包含的最大值,例如:4个控件,选择4次幂
Ⅳ、根据控件取值个数,选择正交表的底,也就是正交表包含的最大值,例如:每个控件有3个取值,底是3
Ⅴ、把控件及其取值映射到正交表中
Ⅵ、把控件名字分别映射熬正交表 的列名位置
Ⅶ、把正交表中每一列数字分别用对应的空间取值替代
Ⅷ、根据正交表,编写测试用例
(3)特性:
Ⅰ:每一列中数字出现的次数是相同的
Ⅱ:任意两列中数字的排列方式齐全且均衡
案例:
allparis工具的使用:
(1)利用Excel准备一个表格
(2)将表格内容粘贴到txt文本中,并保存
(3)通过allparis命令生成
(4)拷贝结果到测试用例中
6.场景法
从起点,通过一系列操作步骤(事件),达到某一结果,到终点的过程调试。主要用于冒烟测试
7.流程分析法
(1)概念
流程分析法主要是针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。
(2)步骤
Ⅰ、详细了解需求
Ⅱ、根据需求说明和界面原型,找出业务流程的各个页面以及各页面之间的流转关系
Ⅲ、画出业务流程
Ⅳ、写用例,覆盖所有的路径分支
(3)案例
购物业务矩阵
画购物广度流程图
购物深度图
8.错误推断法
(1)概念:基于经验和直觉推断测试中可能存在的错误
(2)适用于项目实践比较短,任务比较重,测试经验多
三、测试用例设计
1.原则
(1).根据程序的重要性和一旦发生故障带来的损失,来确定测试等级和测试重点
(2).认真选择测试策略。用尽可能少的鸿试用例发现尽可能多的错误。测试用例不足则会导致风险的增大;测试过度导致资源的浪费。需要找到平衡点
2.方法选取
(1)先关注主要功能也业务流程、业务逻辑是否正确实现,考虑场景法
(2)需要输入数据的地方,考虑等价类划分法
(3)在任何情况行都使用边界值法
(4)如果程序的功能中包含输入条件的组合情况,则选取因果图和判定表法
(5)对于配置类软件,需要考虑参数的组合情况,考虑使用正交排列法
(6)对照程序逻辑,如果发现没有达到要求的覆盖标准。适当补充更多的测试用例
(7)采用错误推断法,追加其他测试用例
万能公式:功能测试+界面测试+性能测试+易用性测试+兼容性测试+安全测试
弱网测试
异常测试