测试用例设计
目录
测试用例概念
测试用例常见设计方法
等级类划分法
举例一:测试两个参数的值相加后的结果是否正确
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
举例三:—个程序读入3个整数,把这三个数值看做一个三角形的3条边的长度值
等价类的特点
边界值法
举例一:边界值设计测试用例测试两位数加法计算器
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
因果图法
举例一:使用因果图+判定表设计测试用例测试两位数加法计算器
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
举例三某厂工资发放,分析测试需求,列出输入和输出条件,情况描述如下:
正交实验法
举例一:
场景法
举例 :以淘宝网为例,我们都在淘宝上买过东西,整个购买过程为
测试用例综合设计
举例共享单车充值
测试用例概念
测试用例是通过使用在测试计划中确定的测试技术,对于已确定的测试条件进行逐步推敲,精炼而设计出来的重点说明如何具体操作产生何种结果的文档。
测试用例模板
测试用例常见设计方法
等价类划分法、边界值法、因果图法、正交分解法、场景法
等级类划分法
概念等价类划分的办法是把程序的输入域划分成若干部分然后从每个部分中选取少数代表性数据当作测试用例每一类的代表性数据在测试中的作用等价于这一类中的其他值
举例一:测试两个参数的值相加后的结果是否正确
有效等价类: 输入的数值在-99到99之间
无效等价类:大于99或小于-99的输入应被拒绝,并显示错误信息
由此我们可以写出三个测试用例
1、-99<=数值<=99
2、数值<-99
3、 数值>99
测试用例编号 | 输入数值 | 预期输出 |
1 | -50+24 | 输入正确 |
2 | -130 | 错误输出 |
3 | 125 | 错误输出 |
细化等级划分法
在测试“-99<=数值<=99”的这个等价类区间的时候,我们会发现如10+40,-20+30和-30+(-30)这类的正数相加,正数负数相加,负数相加也是不同的等价区间
完善测试用例
测试用例编号 | 输入数值 | 预计输出 |
1 | 50+2 | 输入正确 |
2 | -63+(20) | 输入正确 |
3 | -30+10 | 输入正确 |
4 | -130 | 错误信息 |
5 | 125 | 错误信息 |
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
设计用例
功能点1:快速提现
有效等价类:0<=取现金额<=10000
无效等级类:取现金额<0 或 取现金额>10000
功能点2:普通提现
有效等价类:0<=取现金额<=10000
无效等级类:取现金额<0 或 取现金额>10000
举例三:—个程序读入3个整数,把这三个数值看做一个三角形的3条边的长度值
设计用例
有效等价类:构成一个有效的不规则三角形
构成一个有效的等腰三角形
构成一个有效的等边三角形
无效等价类:小于0或等于0 非整数值 无效符号
等价类的特点
1.测试相同的内容
2.如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
3.如果等价类中的一个测试不能够捕缺陷,那么选择该等价类中的其他测试也不会捕获缺陷
4.如果正确的划分等价类,可以大大降低测试用例的数量,测试会准确有效
5.如果错误的将两个不同的等价类当作一个等价类,那就会遗漏—种测试情况
边界值法
概念大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
举例一:边界值设计测试用例测试两位数加法计算器
由于允许输入的数值在-99到99之间,所以我们可以把-99和99看作两个边界值。我们测试的时候可以取紧邻边界值的数值和边界值本身作为输入。
测试用例编号 | 输入数值 | 被测边界 | 预期输出 |
1 | -100 | -99 | 错误 |
2 | -99+(-99) | 正确 | |
3 | -98+(-98) | ||
4 | 98+98 | 99 | 正确 |
5 | 99+99 | ||
6 | 100 | 错误 |
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
边界值用例
序号 | 功能项 | 输入数值 | 被测边界 | 预期输出 |
1 | 快速提现 (第一次) | 0 -1 1 | 0 | |
10000 9999 10001 | 10000 | |||
2 | 快速的提现(第N次,假设已提现金额5000) | 0 -1 1 | 0 | |
5000 4999 5001 | 10000-已提现金额 | |||
3 | 普通提现 | 0 -1 1 | 0 | |
999999 | 最大金额 |
因果图法
概念:分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。分析软件规格说明中语义的内容,找出原因与结果之间、原因与原因之间对应的关系
举例一:使用因果图+判定表设计测试用例测试两位数加法计算器
分析
输入1 | 输入2 | 输出 |
条件1:0<=X<=99 | 条件1:0<=X<=99 | 正确 |
条件2:-99<=X<0 | 条件2:-99<=X<0 | 错误 |
条件3:X<-99 | 条件3:X<-99 | |
条件4:X>99 | 条件4:X>99 |
判断表
输入1 | ||||||||
条件1 | T | T | ||||||
条件2 | T | T | ||||||
条件3 | T | |||||||
条件4 | T | |||||||
输入2 | ||||||||
条件1 | T | T | ||||||
条件2 | T | T | ||||||
条件3 | T | |||||||
条件4 | T | |||||||
输出 | ||||||||
正确 | X | X | X | X | ||||
错误 | X | X | X | X |
得到测试用例
测试用例编号 | 输入数值 | 预期输出 |
1 | 98+98 | 正确 |
2 | 99+(-99) | |
3 | -98+(50) | |
4 | -34+(-45) | |
5 | -100 | 错误 |
6 | 100 | |
7 | 20+(-123) | |
8 | 20+(123) |
举例二:余额宝提现到银行卡增加新规则:快速到账(2小时)日限额1w元,超过1w元只能选择普通到账。
分析
输入1 | 输出2 | 输出 |
a1:快速提现 | b1:0<X<=10000 | c1:提现成功 |
a2:普通提现 | b2:X<=0 | c2:提现失败 |
b3:X>10000 |
判断表
输入1 | ||||||
a1 | T | T | T | |||
a2 | T | T | T | |||
输出2 | ||||||
b1 | T | T | ||||
b2 | T | T | ||||
b3 | T | T | ||||
输出 | ||||||
c1 | X | X | X | |||
c2 | X | X | X |
得到测试用例
测试用例编号 | 输入数值 | 输出 |
1 | a1:b1 | T |
2 | a1:b2 | F |
3 | a1:b3 | F |
4 | a2:b1 | T |
5 | a2:b2 | F |
6 | a2:b3 | T |
举例三某厂工资发放,分析测试需求,列出输入和输出条件,情况描述如下:
工资分年薪制a1,月薪制a2;
错误程度分普通a3,严重a4;
工资为a1的员工范普通错误时扣工资1%(b1),犯严重错误时扣工资2%(b2);
工资为a2的员工范普通错误时扣工资2%(b3),犯严重错误时扣工资4%(b4);
其中a1与a2互斥,b1,b2与b3,b4互斥;a3和a4可同时兼备。
分析
输入1 | 输入2 | 预期结果 |
a1:年薪制 | b1 | 成功 |
a2:月薪制 | b2 | 失败 |
a3:普通 | b3 | |
a4:,严重 | b4 |
判断表
输入 | ||||||||
a1 | T | T | T | T | F | F | F | F |
a2 | F | F | F | F | T | T | T | T |
a3 | T | F | T | F | T | F | T | F |
a4 | F | T | T | F | F | T | T | F |
输出 | ||||||||
b1 | × | × | ||||||
b2 | × | × | ||||||
b3 | × | × | ||||||
b4 | × | × |
测试用例
测试用例编号 | 输入数值 | 输出 |
1 | a1:a3 | b1 |
2 | a1:a4 | b2 |
3 | a1:a3:a4 | b1+b2 |
4 | a1 | 0 |
5 | a2:a3 | b3 |
6 | a2:a4 | b4 |
7 | a2:a3:a4 | b3+b4 |
8 | a2 | 0 |
正交实验法
概念正交试验设计法(Orthogonal experimental design ),是从大量的试验点中挑选出适量的、有代表性的点,应用依据迦罗卡瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法
指标:通常把判断试验结果优劣的标准叫做试验的指标
因子(因素Factor):所有影响试验指标的条件
因子的状态(水平Level):而影响实验因子的,叫做因子的状态(因子变量的取值)
如何查找正交表
1.Technical Support ( support.sas.com)
http://support.sas.com/techsup/technote/ts723_Designs.txt
2.查Dr.GenichiTaguchi设计的正交表,
https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
举例一:
WEB浏览器:IE11、chrome、FireFox
插件:无、Flash、支付宝插件
应用服务器:lIS、Apache、Jetty
操作系统:Windows2000、Windows NT、Linux
插件:1=None、2=Flash、3=支付宝插件
WEB浏览器:1=lE11、2=chrome、3=FireFox
应用服务器:1=llS、2=Apache、3=Jetty
操作系统:1=windows2000、2=Windows NT、3=Linux
正交表水平数为3,因素数为4选择L9(3^4)
正交表
1 | 2 | 3 | 4 | |
1 | 1 | 1 | 1 | 1 |
2 | 1 | 2 | 2 | 2 |
3 | 1 | 3 | 3 | 3 |
4 | 2 | 1 | 2 | 3 |
5 | 2 | 2 | 3 | 1 |
6 | 2 | 3 | 1 | 2 |
7 | 3 | 1 | 3 | 2 |
8 | 3 | 2 | 1 | 3 |
9 | 3 | 3 | 2 | 1 |
映射
WEB浏览器 | 插件 | 应用服务器 | 操作系统 | |
1 | IE11 | None | lIS | windows2000 |
2 | IE11 | Flash | Apache | Windows NT |
3 | IE11 | Apache | Jetty | Linux |
4 | chrome | None | Apache | Linux |
5 | chrome | Flash | Jetty | windows2000 |
6 | chrome | 支付宝插件 | lIS | Windows NT |
7 | FireFox | None | Jetty | Windows NT |
8 | FireFox | Flash | lIS | Linux |
9 | FireFox | 支付宝插件 | Apache | windows2000 |
场景法
概念事件触发时的情景形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。
举例 :以淘宝网为例,我们都在淘宝上买过东西,整个购买过程为
用户登录到网站后,进行商品的选择,当选好自己心仪的商品后进行购买,这时把所需商品放进购物车,等进行结帐的时候,用户需要登录自己注册的帐号,登录成功后,进行结帐并生成订单,整个购物过程结束。
基本流 | 用户登录到网站,商品的下选择,把所需商品放进购物车,等进行结账的时候,登录自己的账号,登录成功后,生产订单 |
备选流1 | 账号不存在 |
备选流2 | 账号错误 |
备选流3 | 密码错误 |
备选流4 | 无选购商品 |
备选流x | 退出系统 |
测试用例综合设计
功能点用例设计
1任何情况下都必须使网边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强
2必要时用等价类划分方法补充一些测试用例
3如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法
4如果程序业务复杂度比较高,则适当使用场景法补充—部分测试用例
举例共享单车充值
1.边界值考虑充值金额:0元,1元,负数,非金额参数,多位小数(小数后位3位),银行卡限额
2.由于充值时可以选择不同的银行、支付渠道,所以针对支付宝、微信、通联、银联、银行直连等渠道分别设计测试用例
3.考虑异常场景,如充值失败、银行卡余额不足、.行返回超时等
4.如果场景中还包含更复杂的业务场景,如满减、满赠、增加抽奖次数等,还需要结合场景法进行测试