✏️作者:银河罐头
📋系列专栏:JavaEE
🌲“种一棵树最好的时间是十年前,其次是现在”
目录
- 测试用例好处
- 测试用例的设计方法
- 基于需求进行测试用例的设计
- 等价类
- 边界值
- 判定表
- 正交表法
- 案例
- 场景设计法
- 错误猜测法
- 面试题
测试用例好处
1)提高测试效率,节约时间。
2)测试用例是自动化测试用例的前提。
测试用例的设计方法
基于需求进行测试用例的设计
需求文档 -> 数理需求(掌握需求) -> 针对文档设计测试用例(基于需求设计测试用例)
举例 :
等价类
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果 这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的 功能覆盖,解决了不能穷举测试的问题。
-
有效等价类:满足用户需求输入的集合。
-
无效等价类:不满足用户需求输入的集合。
等价类思想设计测试用例步骤:
1.充分理解需求
2.划分有效等价类和无效等价类
3.从有效等价类中抽取一个数据设计测试用例;从无效等价类中抽取一个数据设计测试用例。
举例:用户名要求长度为6-15位
边界值
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
上述例子中要求长度是6~15位有效
//写法1:len > 6 && len < 15
//写法2:len >= 7 && len <= 14
6 和 15 这里的边界值就可能出现问题,需要测试。
- 边界点
1)上点:边界上的点。
2)内点:边界内的点。
3)离点:边界值附近的一个点。
(如果是闭区间,离点是区间外距离上点最近的点;如果是开区间,离点是区间内距离上点最近的点)
边界值设计测试用例:
1.充分理解需求
2.找边界点
3.针对边界点设计测试用例
判定表
判定表(Decision table)是另一种表达逻辑判断的工具。
输入和输出的对应关系:
与:只有所有原因都为真,那么结果为真。
或:多个原因中有一个为真时,结果就为真。
恒等:条件为真,结果一定为真。
非:只有原因为假,结果才为真。
因果图法设计测试用例的步骤如下:
(1)分析所有可能的输入和可能的输出。
(2)找出输入与输出之间的对应关系。
(3)设计判定表。
(4)把判定表对应到每一个测试用例。
举例:
假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。
1)输入:订单已提交,订单合计金额大于300元,有红包
输出:有优惠,没优惠
2)关系:
订单已提交,订单合计金额大于300元,有红包,有优惠
订单已提交,订单合计金额大于300元,没红包,有优惠
订单已提交,订单合计金额小于300元,有红包,有优惠
订单已提交,订单合计金额小于300元,没红包,没优惠
订单没提交,订单合计金额大于300元,有红包,没优惠
订单没提交,订单合计金额大于300元,没红包,没优惠
订单没提交,订单合计金额小于300元,有红包,没优惠
订单没提交,订单合计金额小于300元,没红包,没优惠
3)设计判定表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
---|---|---|---|---|---|---|---|---|
订单提交 | Y | Y | Y | Y | N | N | N | N |
金额大于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 |
4)编写测试用例
正交表法
最简单的正交表是L4(23),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。
名词:
1.因素:变量
2.水平:变量取值
正交表的两条性质:
每一列中各数字出现的次数都一样多。
任何两列中的各有序数对出现的次数都一样多。
- 如何通过正交表设计测试用例?
充分理解需求 -> 确定因素水平 -> 画正交表 -> 补充正交表 -> 将正交表转换成测试用例
案例
案例:姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册
确定因素水平:
因素:姓名、邮箱、密码、确认密码、验证码
水平:填写,不填写
allpirs 画正交表:
先写一个 excel 表格。
将exe 表格这里的内容复制到记事本当中,记事本内容保存到和 allpairs.exe 同一级的目录下。
windows+r, cmd
C:\Users\86187>d:
D:>cd downloadSoftware
D:\downloadSoftware>dir
D:\downloadSoftware>cd allpairs
D:\downloadSoftware\allpairs>dir
D:\downloadSoftware\allpairs>allpairs.exe 20230525.txt > 20230525_result.txt
~填写: 表示这个可以是"填写",也可以是"不填写"。
生成的正交表:
补充正交表:
比如观察上面生成的结果发现漏了一种情况,都不填写的情况。
下面是测试表。
场景设计法
主事件流:用户经常使用的场景。
次事件流:一些意外情况。
场景1:追女神
场景2:ATM 机取钱
通常情况下,需要把用户经常使用的模块串联到一起去测试。
错误猜测法
错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针 对性地设计测试用例的方法。
以注册为例
1、校验中特殊字符空格的处理?
2、密码校验中的大小写?
3、姓名中的特殊字符?
4、密码发送是否明文
比如登录账号的时候,输入账号的时候开头允许有空格,但是中间不能有空格。
面试题
1)如何模拟弱网?
可以借助很多工具。比如 fiddler
1.打开限速模式
进入文件,搜索关键字"before"
上传 1 kb, 花费 300ms;
下载 1 kb, 花费 150ms.
2)接口如何测试?
借助 postman。
针对 http 方法进行测试
针对参数进行测试(传参数,不传参数,传非法参数)
参数通过 parameter 传递,还是通过 JSON 传递。
3)写一个冒泡排序,针对这个代码如何进行测试?
方法参数(参数类型,不给参数,传递参数为空)
异常处理
代码规范
语句覆盖
条件覆盖
语句条件覆盖
判定覆盖
…
4)linux 命令
对zip 命令测试
功能:
1.要打包的文件不存在?
2.能否一次性打包多个文件?
3.打包后的内容是否有缺失?
4.命令正确,文件存在,是否成功被压缩?
界面:
1.打包后的高亮显示
2.打包后的文件后缀名.zip
易用:
输入错误,是否有提示?
性能:
打包一个 1 KB 文件要耗费多长时间?
打包一个 20GB 文件要耗费多长时间?
一次打包多个的时间?
用 zip 打包,空间给我节省了多少?
测试用例设计万能公式(黑盒测试):
功能:①物体:这个物体是用来干嘛的?②软件:软件实现功能
界面:①物体:外表,材质,大小,容量②软件:图片大小,文字,颜色,界面布局,按钮
易用:(经验)操作简单,使用流畅,符合人体工学,见名知意
兼容:①物体:除了本质功能,还有没有一些其他功能②软件:操作系统,设备,浏览器版本,手机品牌
性能:①物体:使用寿命②软件:软件响应时间,吞吐量,并发数,CPU占用率
安全:①物体:材质是否有毒,会不会对人体健康造成危险②软件:sql 注入,xss 漏洞,输入有毒脚本,密码加密保存,加密传输,权限控制。
网络:2G,4G,弱网
中断:比如一个电话来了,切回到桌面?
5)水杯测试用例
6)微信发送朋友圈