主要基于黑盒测试设计测试用例。
测试用例要素
测试用例的重要要素:测试环境、操作步骤、测试数据、预期结果 等
注意:测试用例要素中不需要执行结果,因为执行结果是执行了测试用例之后才会有的。
测试用例的优点:
-
避免了重复测试,提高测试效率,节省测试时间
-
手工测试用例是自动化测试用例的前提
测试用例设计方法
基于需求进行设计测试用例
需求文档 -> 梳理需求 -> 针对文档设计测试用例
需求文档 :是需要产品经理进行讲解的
梳理需求:测试人员进行的,需要充分理解需求(掌握需求)。
针对文档设计测试用例:就是用到了基于需求进行设计测试用例
基于需求设计测试用例的万能公式:
- 功能:业务流程,界面,易用性
- 非功能:兼容,性能,安全,网络。
上面的测试用例的设计只是针对需求进行了大概的测试,很难完整的列举出来,所以我们需要一些设计测试用例的方法
1. 等价类
在图书馆中的图书进行分类摆放:数学,人文,语言,经济……这个就是等价类的思想
软件测试的等价类:依据需求将输入的数据集合(特殊情况下会考虑输出)划分为若干个类别,从每一类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的这一类测试通过。这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
- 有效等价类:满足用户需求输入集合
- 无效等价类:不满足用户需求的输入集合
等价类思想设计测试用例步骤
- 充分理解需求
- 划分有效等价类,划分无效等价类
- 从有效等价类抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行设计测试用例
以下面的需求为例
|用户名 | 必填,录入用户名 | 6至15
用户名长度6~15位(等价类设计测试用例)
2. 边界值
通常边界值分析法是作为对等。价类划分法的补充,这种情况下,其测试用例来自等价类的边界 。
边界点:
- 上点:边界上的点
- 内点:边界内的点
- 离点:边界附近的一个点
- 闭区间:区间外距离上点最近的点
- 开区间:区间内距离上点最近的点
边界值设计测试用例方法:
- 充分理解需求
- 找边界点
- 针对边界点设计测试用例
以下面的需求为例
|用户名 | 必填,录入用户名 | 6至15
用户名长度6~15位(边界值设计测试用例)
通常情况下会把等价类和边界值法一起来设计测试用例
3. 判定表
为什么不用因果图法?
通过因果图设计测试用例,就是把因果图专化为判定表。
判定表(Decision table):是另一种表达逻辑判断的工具
判定表的关系:
- 与:所有条件为真则为真,反之为假
- 或:所有条件为假则为假,反之为真
- 恒等:条件为真,结果一定为真
- 动物园运进来熊猫,动物园有熊猫
- 非:条件为假,结果才为真
- 你不好好学习,找到好工作
如何通过判定表设计测试用例:
(1)分析所有可能的输入和可能的输出。
(2)找出输入与输出之间的对应关系。
(3)设计判定表
(4)把判定表对应到每一个测试用例。
案例:
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
-
分析所有可能的输入和可能的输出。
- 输入:订单已提交,订单金额大于300,有红包。
- 输出:优惠,不优惠
-
找出输入与输出之间的对应关系。
- 订单已提交,金额大于300, 有红包,优惠
- 订单已提交,金额大于300, 没有红包,优惠
- 订单已提交,金额小于300, 有红包,优惠
- 订单已提交,金额小于300, 没有红包,不优惠
- 订单未提交,金额大于300, 有红包,不优惠
- 订单未提交,金额大于300, 没有红包,不优惠
- 订单未提交,金额小于300, 有红包,不优惠
- 订单未提交,金额小于300, 没有红包,不优惠
-
设计判定表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|
订单提交 | Y | Y | Y | Y | Y | Y | Y | Y |
金额大于300 | Y | Y | N | N | Y | Y | N | N |
有红包 | Y | N | Y | N | Y | N | Y | N |
优惠 | Y | Y | Y | N | N | N | N | N |
不优惠 | N | N | N | Y | Y | Y | Y | Y |
- 把判定表对应到每一个测试用例。
淘宝618(判定表设计测试用例)
找到输入与输出的关系和测试用例不是一样吗?为什么还要有设计判定表,对应到测试用例。
因为第四步是测试点,后期要针对测试点补充测试用例要素的。标准的测试用例要有测试用例的要素的(测试环境、操作步骤、测试数据、预期结果)
4. 正交表法
最简单的正交表是L⁴(2³),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。
名词的意思:
- 因素:变量
- 水平: 变量取值
正交表的两条性质:
- 每一列中各数字出现的次数都一样多。
- 任何两列中的各有序数对出现的次数都一样多。
通过正交表设计测试用例:
充分理解需求 -> 确定因素水平 -> 画正交表 -> 补充正交表 -> 将正交表转换成测试用例
以注册的需求为例:
姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册 。
因素:姓名、邮箱、密码、确认密码、验证码
水平:填写,不填写
allpirs画正交表。
-
将水平和因素填写到excel中。
姓名 邮箱 密码 确认密码 验证码 填写 填写 填写 填写 填写 不填写 不填写 不填写 不填写 不填写 -
将excel表格复制到txt文件中
-
在allpirs安装路径下进入cmd
-
执行一个命令 allpirs.exe 文件名 >结果文件名
allpairs.exe 20230906.txt > 20230906_result.txt
执行结果:
~意味着此时这个取值可以是填写也可以是不填写
-
补充正交表:
姓名、邮箱、密码、确认密码、验证码都不填写
5. 场景设计法
针对全流程设计测试用例。
主事件流:用户经常使用的场景
次事件流:此事件流基于主事件流,用户在使用的时候可能会出的意外的事件。
通常情况下,需要把用户经常用到的功能模块串联到一起进行测试。保障了用户经常使用的功能没有问题。
6. 错误猜测法
依赖于测试人员的经验。
以注册为例
1、校验中特殊字符空格的处理? 开始位置,中间位置的空格的处理。
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文
面试题
1. 模拟弱网
可以借助许多工具(Charles,Fiddler……).
打开限速模式:
打开用户规则:
2. 接口如何测试
用postman来进行接口测试。
- 复制接口地址
- 将接口导入到postman中进行测试
- 对接口进行测试:
3. 写一个冒泡排序,针对这个代码如何测试
方法参数(参数类型,不给参数,参数传递为空)
异常处理
代码规范:语句覆盖,条件覆盖,语句条件覆盖,判定覆盖。
4. linux中的zip命令
功能:
-
打包的文件是一个不存在的文件
-
命令使用正确,文件存在,文件是否被压缩
-
能否一次性打包多个文件
-
打包后的内容是否有缺失
界面:
- 打包后的zip高亮
- 打包后的文件后缀名.zip
易用:
- 输入错误,此时有没有提示
- 输入成功,会不会有提示
性能:
- 打包一个1KB文件时间是多少
- 打包的文件是一个20GB
- 一次打包多个文件时间多少
- 打包之后空间节省多少
5. 针对水杯设计测试用例
水杯的测试用例
测试用例的万能公式
功能:
- 物体:这个物体主要是干什么的
- 软件:软件实现的功能
界面:
- 物体:外表,材质,大小,容量……
- 软件:界面,字体大小,字体颜色,页面布局是否合理
易用:
- 操作简单,使用流畅,人性化
兼容:
- 物体:除了本质功能,还有没有其他功能
- 软件:操作系统,设备,浏览器版本
性能:
- 物体:使用寿命
- 软件:相应时间,吞吐量,并发数
安全:
- 物体:物体材质是否有毒,物体会不会对人体健康造成威胁
- 软件:sql注入,XSS漏洞,输入有毒的脚本
网络:
- 软件:2G~5G。wifi,弱网
6. 微信发朋友圈
微信发送朋友圈 - 飞书云文档 (feishu.cn)