黑盒测试学下来感觉是以高中集合、统计相关的知识为基础,理解easy,难得总是知行合一!
该笔记总结:多角度带你编写更规范的黑盒测试用例 以及什么是测试用例_哔哩哔哩_bilibili
1. 引言
所谓的黑盒测试或者白盒测试都是对众多测试方法的划分,这些方法是用来干什么的?用于设计测试用例的!那什么是测试用例?一图以蔽之。。。
测试用例的组成:
- 用例编号:唯一标识,也就是身份证编号
- 用例标题:用例的简要描述,什么情况下做什么事实现什么结果,也就是测试目的
- 测试项目:用例所属项目范畴,不同项目做不同的测试
- 用例级别:用例重要程度
- 预设条件:用例执行的前提,测试环境,测试数据等
- 测试输入:测试数据
- 执行步骤:执行用例的步骤
- 预期结果:预期结果 (标红的3项为测试用例的核心要素)
实际测试用例的组成可以根据项目要求做出调整,不是固定的,上述这些都是最基本的。
2. 黑盒测试用例设计方法
等价类 | 用于有输入功能,但是输入没有组合的场合 |
边界值 | 用于有输入功能,且输入范围有边界的场合 |
判定表 | 有多个输入和输出,且输入和输出之间、输入与输入之间存在依赖关系。用于条件桩少的情况。 |
因果图 | 有多个输入和输出,且输入和输出之间、输入与输入之间存在依赖关系。用于条件桩多的情况。 |
正交试验 | 参数配置类功能,参数相互组合 |
状态迁移图 | 多个功能之间的组合逻辑测试 |
场景法 | 多个功能之间的组合逻辑测试 |
错误推测 | 经验、直觉,结合上面的方法进行补充测试 |
2.1 等价类
在所有测试数据中,满足测试需求的称为“有效等价类”;不满足测试需求的称为“无效等价类”。测试数据也分为线性和非线性。
等价类划分规则:
- 数据组成个数(比如规定为6位)
- 集合/数据类型(比如只能是数字,字母、汉字、特殊字数不行)
- 符合某些规则的输入(数据首位必须为‘#’)
- 取值范围(0~9)
- 布尔值(T or F)
等价类测试用例设计步骤
- 分析需求,确定输入的数据类型
- 使用规则划分有效类和无效等价类
- 设计用例,覆盖有效等价类。(一条用例尽可能多的覆盖有效等价类,这样一条用例就可以尽可能多的测试有效类)
- 设计用例,覆盖无效等价类。(一条用例只能覆盖一个无效等价类,如果一个用例覆盖了两个无效等价类那如何判断是哪个无效等价类呢)
2.2 边界值
大量的错误发生在输入或输出范围的边界上,而不是在输入范围的内部(比如要求a不大于0,记作a<=0,但是有时就会写成a<0),所以一般选取正好等于、刚好大于、刚好小于这种边界值作为测试数据,也就是边界值的上点、离点。
域封闭,离点就在范围外;域开放,离点就在范围内
边界类测试用例设计步骤
- 分析需求,确定输入的数据类型
- 使用规则划分有效类和无效等价类
- 确认上点、离点、内点
- 设计用例,覆盖有效等价类。(一条用例尽可能多的覆盖有效等价类,这样一条用例就可以尽可能多的测试有效类)
- 设计用例,覆盖无效等价类。(一条用例只能覆盖一个无效等价类,如果一个用例覆盖了两个无效等价类那如何判断是哪个无效等价类呢)
2.3 判定表
这就是判定表,一图以蔽之。
什么时候需要用判定表呢?
判定表测试用例设计步骤
- 定义条件桩与动作桩
- 设计优化判定表(全组合),规则数 = 2 ^ 条件桩
- 填写动作项
- 简化判定表:将判定表中结果相同的列,如果其条件只有一个不相同,将这两列进行合并
- 抽取用例(每个规则对应一条用例)
2.4 因果图
前面介绍的判定表,规则数 = 2 ^ 条件桩,也就是指数关系,在条件桩过多时,规则数指数级增长那不让人头大,那么怎么办呢?
因果图!!!所谓因果图,就是不再直接对输入事件判定结果进行全组合获取条件项,而是经过分析之后进行组合,具体如下:
- 考虑所有输入/输出条件的相互制约关系以及组合关系
- 考虑输入条件之间的依赖关系
- 再根据分析的关系转化为判定表的规则
2.5 正交实验
一种测试多条件、多输入的用例设计方法,从大量的实验数据(测试例)中挑选适量,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法。
条件 <===> 因子 因子对应条件数
取值 <===> 水平 水平对应每个条件有多少个取值
正交实验设计步骤:
- 分析需求获取因子及水平
- 根据因子及水平选择正交表
- 替换因子水平,获取实验次数
- 细化输出测试用例
------------------------------------------------- 2023.11.28 未完待续 ---------------------------------------------------
2.6 场景法
目前的软件基本都是由事件触发==>控制流程,事件触发时的情景形成场景,同一事件不同的触发顺序和处理结果形成事件流。用例场景用于描述流经用例的路径,从用例开始到结束遍历这条路径上所有的基本流和备选流。
流程分析法(场景法)设计测试用例步骤
- 画出业务流程图
- 定义状态节点和条件分支
- 确定测试路径
- 选取测试数据,构造测试用例
微信发红包案例
想要将测试用例覆盖完全,可以将流程分为上、下两部分。首先将上部分的无效用例利用等价类进行设计(B1~5),然后将下部分的无效用例利用等价类进行设计(B6~7),最后是整体的有效用例设计(A1A3A5A7,A2A4A6A8)
找回密码案例
- 在登录页面,点击“忘记密码”
- 输入登录时使用的邮箱/手机号/昵称,点击“下一步”
- 出现“选择身份验证方式”弹窗,可通过注册邮箱或绑定手机号获取验证码
- 通过注册邮箱找回密码:登录邮箱获取验证码后,输入“验证码”, 点击“确定”按钮
- 通过手机号找回密码:前往手机获取验证码后,输入“验证码” ,点击“确定”按钮
- 在确认账户及密码重置页面,输入“设置新密码“,“确认新密码” 信息,单击“提交”按钮
- 提示“您的新密码设置成功”,操作完成。