测试之测试用例篇
目录
一.测试用例
1.介绍
2.测试用例的一般设计思路
1>:设计测试的"万能公式"
2>:弱⽹测试
3>:下载安装测试
3.设计测试⽤例的方法
1>:基于需求的设计⽅法
2>:等价类
3>:边界值
4>:错误猜测法
5>:正交法(重)
6>:判定表法(重)
7>:正交法与判断表法小总结
8>:场景法
二:总结
前言:对于测试来说,测试方法是很重要的,接下的博客内容在实际测试中,并不一定非得按照我的"先这样在这样",具体场景具体分析
一.测试用例
1.介绍
测试用例是专门为被测程序提供的一组集合,包含:测试环境、操作步骤、测试数据、预期结果等要素
为什么一定需要测试用例??
当产品上线出现问题的第一责任人,就是测试的问题,他为什么没有测试到该错误,测试就扣工资了
2.测试用例的一般设计思路
1>:设计测试的"万能公式"
对于测试来说,用例一定是尽可能包含所有情况,保证生产品正确,那么好的测试用例必不可少
一般思路:
功能测试 + 界⾯测试 + 性能测试 + 兼容性测试 + 易⽤性测试 + 安全测试

因为需要测试的都是新的,为了方便理解,举例水杯,大家就当不知道这个东西

2>:弱⽹测试
测试在延迟差的网络环境下,数据的请求响应时间是否可以接受、超时文案的设计是否合理、是否有超时重连等
在fidder里面设置弱网环境


接下来访问搜狗网址

3>:下载安装测试
检查下载是否正确,卸载是否正确,及卸载后再下载数据有没有清除干净
4>:小总结
针对一切未知、没有需求文档等情况的产品时,设计测试用例一般从: 功能测试 + 界⾯测试 + 性能测试 + 兼容性测试 + 易⽤性测试 + 安全测试 + 弱网测试 + 下载安装测试
3.设计测试⽤例的方法
上面的可以保证我们在"面对未知产品"可以设计有效的方法,但真实的生产环境下很少用它,都是按照需求文档设计,因为很少会对所有项目都 “无差别、全维度” 地铺开测试,按需取选取即可
1>:基于需求的设计⽅法
a.对需求进⾏分析和验证 b.分析细化需求
c.从细化的 需求中找出测试点 d.根据测试点再去设计测试⽤例
假设需求是:用户登录时输入正确账号密码应成功登录
a.确定需求是否描述清楚,确保对需求的理解是准确的
b.宏观的需求拆解为更具体子需求或需求点,比如:账号格式符合要求、密码格式符合要求
c.从账号格式符合要求找出测试点,比如:“账号长度为 5-10 位”“账号仅包含字母和数字''
d.编写测试用例,比如:账号长度是小于5或大于10位能登陆成功等
注:我们面对测试用例有时会出现无法穷举的情况,此时就需要如何减少数量且设计高效的测试用例的方法,接下来的讲的都是该方法
2>:等价类
用于解决穷举法无法实现的情况,依据需求将输⼊划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试⽤例测试通过,则认为所代表的等价类测试通过,解决了不能穷举测试的问题
等价类分类:• 有效等价类:有效的数据构成的集合,利⽤有效等价类验证程序是否实现了规格说明中所规定的功能和性能• ⽆效等价类:无效的数据构成的集合,根据需求说明书,不满⾜需求的集合。
比如上面的账号密码正确格式是5-10位,不正确的太多位数,不好测试,可以用等价类表示

3>:边界值
在有效等价类存在边界值,但等价类着重处理的是"范围内"数据是否合法,而边界值着重处理边界条件,是对等价类的补充

所以此时测试只需要: 5、10、4、11,即可全部测试完成
4>:错误猜测法
基于测试人员的经验、直觉和对系统的理解,推测程序中可能存在错误的地方,从而设计测试用例的方法。关键在"猜"
比如:谈到登录系统,就想到测试账号密码等
5>:正交法(重)
等价类与边界值解决 “单一变量” 的 “范围覆盖” 和 “边界风险”,但面对多变量无法准确覆盖典型用例,此时就需要正交法进行解决
(1).了解
概念:正交试验设计是根据正交性,由试验的全部组合中挑选出部分有代表性的点进⾏实验以及结果分析,从而找出最优的⽔平组合的设计方法核心:通过正交表减少⽤例数⽬,⽤尽量少的⽤例覆盖输⼊不同变量的组合。
(2).正交表
正交表一般由表 + 实验次数(行) + 因素数(列) + 水平(填写的元素) 组成

性质一:每⼀列中,不同的数字出现的次数相等
这个大家看图,每一列的 1 与 2 的次数相同
性质二:任意两列中数字的排列⽅式⻬全⽽且唯一

当满足这两条性质,在数学上才是一个标准正交表
(3).如何用正交表设计测试用例
假设给定因素姓名、年龄、密码、确认密码、邮箱,每个的水平都是填与不填,按步骤设计正交表
第一步:下载allpairs测试工具,给定因素与水平,自动设计正交表
第二步:在excel表格填写水平与因素

第三步:在pairs.exe文件下创建空文本,并把该表格内容复制到记事本并保存

第四步:打开cmd输入命令创建正交表

第五步:打开result文件,查看result表

第六步:可以根据数据写出测试用例
- 场景:所有信息均填写(姓名、年龄、密码、确认密码、邮箱全为 “填写”)
- 场景:姓名填写,年龄不填写,密码不填写,确认密码不填写,邮箱不填写
- 场景:姓名不填写,年龄填写,密码不填写,确认密码填写,邮箱不填写
- 场景:姓名不填写,年龄不填写,密码填写,确认密码不填写,邮箱填写
- 场景:姓名填写,年龄填写,密码填写,确认密码不填写,邮箱不填写
- 场景:姓名填写,年龄不填写,密码不填写,确认密码填写,邮箱填写
第七步:补充重要用例
7.场景:所有信息均不填写(姓名、年龄、密码、确认密码、邮箱全为 “不填写”)
第八步:把生成的测试用例带入对应产品进行测试
(4).使用场景
适用于输入因素多、组合数量极大的场景(如超过 20 种组合)
6>:判定表法(重)
(1).了解
通过表格形式表达输入条件的组合与输出结果之间的逻辑关系,明确 “什么条件下执行什么动作”,且不同组合测试的是同一段代码
(2).使用场景
适用于输入条件少、组合逻辑复杂的场景,尤其是输入之间存在 “与、或、非” 等逻辑关系,且不同组合对应不同结果的情况
eg:
- 公交一卡通充值系统(投币金额与充值金额的组合对应不同的充值结果);
- 订单优惠规则(订单金额 > 500 元或使用红包则有优惠)。
(3).如何用判断表设计测试用例
假设案例:等我们输入的账号包含admin信息或通过内部链接注册,点击注册获得的管理员权限,请设计测试案例
第一步:确定用什么方法,法相对于不同的组合有不同的结果,只能用判断表
第二步:确认需求中输⼊条件和输出条件
输入条件: 账号包含admin信息(a)、通过内部链接(b)、点击注册(c)
输出条件: 管理员(y) 非管理员(n)
第三步:找出输⼊条件和输出条件之间的关系
关系: a b c ab ac bc abc !(abc)
结果: n n n n y y y n
第四步:画判定表

第五步:根据判定表编写测试⽤例
- 场景:账号包含 admin,不通过内部注册链接,点击注册按钮
- 场景:账号包含 admin,通过内部注册链接,不点击注册按钮
- 场景:账号不包含 admin,通过内部注册链接,点击注册按钮
- 场景:账号包含 admin,通过内部注册链接,点击注册按钮
- 场景:账号包含 admin,不通过内部注册链接,不点击注册按钮
- 场景:账号不包含 admin,通过内部注册链接,不点击注册按钮
- 场景:账号不包含 admin,不通过内部注册链接,点击注册按钮
- 场景:账号不包含 admin,不通过内部注册链接,不点击注册按钮
第六步:把生成的测试用例带入对应产品进行测试
7>:正交法与判断表法小总结

简单来说:
若需在大量组合中高效覆盖核心场景,选正交表;
若需理清复杂逻辑的全量组合关系,选判定表法
8>:场景法
(1).了解
场景法就是⼀个常规的流程中,某些阶段可能会出现⼀些意想不到的情况其中常规流程是基本流,从阶段中分析出来的不同情况被称之为备选流
还是不懂???看图:

紫色的流程是基本流,除此之外的称为备选流(异常分支流)
(2).根据场景法设计测试⽤例的步骤
1.和女朋友见面,家长叫我回家,拜拜~2.和女朋友见面,她想逛街,结果困了会酒店睡觉3.和女朋友见面,她想逛街,吃晚饭~~..........................
(3).使用场景
通过模拟用户使用软件的实际业务流程场景来设计测试用例,以验证软件在不同场景下的功能是否正常、流程是否通顺
二:总结
1.当面对不熟悉的产品,直接按照"一般设计思路"来写
2.在实际的生产环境下,都是有需求文档的,此时就需要按照需求文档设计测试用例,但因为有的需求测试无法穷举,此时就需要如何减少数量且设计高效的测试用例的方法,再根据测试的属性的变量数量、覆盖范围等确定方法
