黑盒测试
定义:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序的接口进行测试
测试案例设计方法:
1)等价类划分
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例
有效等价类:合理的、有意义的输入数据构成的集合
无效等价类:无意义的输入数据构成的集合
如:输入值是学生成绩x,范围是0~100
则:0≤x≤100为有效等价类,x<0和x>100为无效等价类
输入范围 | 测试输入值 | 类型 |
---|---|---|
0≤x≤100 | 0,15,57,100等 | 有效等价类 |
x<0 | -1,-200等 | 无效等价类 |
x>100 | 110,333等 | 无效等价类 |
2)边界值分析
大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
找到有效等价类和无效等价类的边界点,对边界点数据专门进行测试。
如:输入值是学生成绩x,范围是0~100
则:
边界值 | 测试输入值 |
---|---|
0 | -1,0,1 |
100 | 99,100,101 |
3)错误推测法
基于经验和直觉,列举出程序中所有可能有的错误和容易发生错误的 特殊情况/异常场景,推测所有可能存在的错误。
针对 特殊情况/异常场景,可以考虑以下方面:
1、断网断电
2、硬件损坏
3、文件操作异常(存储空间不足、权限不足、文件过大被负载均衡/代码等拦截)
4、服务器异常(服务未启动或异常、拒绝服务、处理报错)
5、数据库异常(数据库实例未启动或异常、连接池已满、表空间不足、SQL报错)
6、接口调用异常(请求类型、请求参数名称、参数个数、参数类型、参数值、必填校验异常)
7、页面异常(待补充)
例1:
测试一个输入框和搜索按钮(页面测试+接口测试)
分析:
输入内容并点击搜索后,请求从前端浏览器到后端服务器、从后端服务器返回相应的全过程,可能发生的错误:
1、浏览器组装参数失败,未能向后端发出请求
2、浏览器正常发出请求,但浏览器->服务器之间网络异常,服务器未能接收到请求
3、服务器收到请求,但处于高压或其他异常状态,无法进行响应
4、服务器收到请求,执行相应的代码逻辑时,产生错误
5、服务器收到请求,进行数据库操作时,产生错误
6、服务器收到请求,并正常响应,但服务器->浏览器之间网络异常,浏览器未能接收到响应结果
7、浏览器收到响应结果,但对内容无法解析
8、浏览器收到响应结果,并正常展示
测试案例中,对以上几种场景进行覆盖,并根据需求或设计文档,确定每种场景的预期结果
例2:
测试一个文件导出功能
分析:
分析这个功能的每个执行步骤:
1、从数据库中查询目标数据
2、在服务器的目标路径创建一个新的文件,把目标数据写入到改文件中(上传)
3、在页面上点击下载文件