目录
1. 测试用例的基本要素
2. 测试用例的设计方法
2.1 基于需求进行测试用例的设计
⭐️(1)功能需求测试分析
⭐️(2)非功能需求测试分析
2.2 具体的设计方法 (黑盒测试)
⭐️(1)等价类
⭐️(2)边界值
⭐️(3)错误猜测法
⭐️(4)场景设计法
⭐️(5)因果图
⭐️(6)判定表
用例表达清楚,无二义性
用例可操作性强
用例的输入与输出明确。一条用例只有一个预期结果
用例的可维护性好
用例对需求的覆盖率高
测试执行者的依据
使得工作可重复,自动化测试的基础
评估需求覆盖率
用例的复用
积累测试的方法思路以供后续借鉴
使用中带来困扰:
测试用例的设计是费时费力的工作,往往设计测试用例所花费的时间比执行所花费的时间还多
解决如下问题:
不知道是否较全面的测试了所有功能
测试的覆盖率无法衡量
对新版本的重复测试很难实施
存在大量冗余测试影响测试效率
(1)业务流程(软件规格说明书)(2)界面相关(UI设计稿)(3)易用性(测试人员经验)
因材施教的例子:原则上讲, 老师应该依据每个学生自身的情况, 指定符合的学习方案. 但是实际上学生太多老湿管不过来, 只能分成几类: 优等生强调知识面的扩展和综合能力的提升; 中等生强调夯实基础, 查缺补漏; 差等生强调 优先掌握重点, 暂时跳过难点...思路:输入的集合是无穷的, 不能全都覆盖到
概念:依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
- 有效等价类: 满足用户需求对应的输入集合就是有效的等价类
- 无效等价类:不满足用户需求对应的输入集合就是无效等价类
超市买水果有效等价类:苹果、桃子、梨无效等价类:青菜、米、饮料, ...
- 上点: 边界上的点
- 内点: 边界内的点
- 离点:上点附近的一个点 (如果是闭区间,边界外的点,如果是开区间,边界内的点)
如何通过这个方法设计测试用例
- (1)充分理解需求
- (2)找边界点
- (3)针对边界点设计测试用例
需求: 用户名长度6~15
上点: 6,15
内点: 10
离点:5,16
以注册为例1 、校验中特殊字符空格的处理 ?2 、密码校验中的大小写?3 、姓名中的特殊字符?4 、密码发送是否明文
- ①什么是判定表
判定表(Decision table)是另一种表达逻辑判断的工具。一个表格,表格里面有条件,有结果。
- ②关系
恒等、非、与、或
恒等: 条件为真,结果一定为真
非: 条件为假,结果为真
与: 两个条件必须为真 -> 结果才为真,如果一个条件为假 -> 结果就为假
或: 两个条件全为假 -> 结果才为假,如果条件一个为真 -> 结果为真
- ③如何设计测试用例
分析所有可能的输入和可能的输出。
找出输入与输出之间的对应关系。
根据输入和输出确定判定表。
把判定表对应到每一个测试用例。
假设业务单据的处理规则为: “ 淘宝 618 活动,订单已提交,订单合计金额大于 300 元或有红包,则进优惠” 。1. 对于这条业务规则,首先通过分析所有可能的输入和可能的输出,可以得到如下结果:
- 输入:订单已提交、金额大于300、有红包。
- 输出:优惠、不优惠。
2. 然后,进行第二步,找出输入与输出之间的对应关系。通过分析,可以看出有以下的对应关系。(1) 订单已提交,订单金额大于 300 元,则优惠。(2) 订单已提交,订单金额小于等于 300 元,无红包,不优惠(3) 订单已提交,有红包,则优惠。(4) 订单已提交,订单金额大于 300 元,有红包,则优惠。(5) 订单未提交,不优惠。3. 画出判定表