软件测试的主要方法之一,黑盒测试
以下是软件黑盒测试中主要方法的详细展开,每种方法均包含核心原理、实施步骤、实例演示及适用场景说明。重点突出你要求的等价类划分法的完整解析,并结合其他主流方法形成系统化知识框架。
一、等价类划分法(Equivalence Partitioning)
核心原理
将输入域划分为若干子集(等价类),同一子集中的数据对揭露程序错误具有等效性。测试时仅需从每个子集选取一个代表值,即可代表整个子集的测试效果
关键概念
- 有效等价类:符合需求的合法输入(如年龄输入框的18-60岁)
- 无效等价类:违反需求的非法输入(如年龄<18或>60)
- 划分原则(6条核心规则):
- 取值范围:一个有效类 + 两个无效类(如
0 < x ≤ 100→ 有效类:(0,100];无效类:x≤0和x>100) - 集合取值:一个有效类(如性别为{男,女}) + 一个无效类(如“未知”)
- 布尔值:一个有效类(
true) + 一个无效类(false) - 多值独立处理:n个有效类(如城市选北京/上海/广州) + 一个无效类(如“重庆”)
- 规则约束:一个有效类(符合规则) + 多个无效类(不同角度违反规则,如密码长度不足/含非法字符)
- 处理方式差异:进一步划分子类(如负数按绝对值处理需单独分类)
- 取值范围:一个有效类 + 两个无效类(如
实施步骤
- 确定输入条件:分析需求,识别所有输入参数(如用户名长度3-10字符)
- 划分等价类:按上述6原则生成有效/无效等价类表
- 设计测试用例:
- 每个有效类设计1个用例,覆盖尽可能多的有效类(如用户名为”abc”覆盖长度3)。
- 每个无效类设计独立用例(如用户名为”ab”(长度不足)、”abcdefghijk”(超长))
实例演示
需求:密码输入框要求6-12位数字。
- 等价类划分:
类型 子类 测试用例 有效等价类 长度6位 “123456” 长度12位 “123456789012” 无效等价类 长度<6(5位) “12345” 长度>12(13位) “1234567890123” 非数字字符 “abc!@”
二、边界值分析法(Boundary Value Analysis)
核心原理
错误更易发生在输入/输出范围的边界点,需测试边界及相邻值
三类关键测试点
- 上点:边界值(如范围
[1,100]的上点为1和100)。 - 离点:紧邻上点的外侧值(闭区间取外部值:0和101;开区间取内部值)。
- 内点:范围内任意值(如50)
实施步骤
- 识别输入/输出的边界(如文件大小1-100MB)。
- 选取上点(1,100)、离点(0.99,100.01)、内点(50)。
- 设计用例覆盖所有边界组合。
实例:邮箱用户名长度要求5-30字符。
- 测试值:4(无效)、5(有效)、6(有效)、29(有效)、30(有效)、31(无效)
三、错误推测法(Error Guessing)
核心原理
基于经验预测易错场景,补充非显性缺陷测试
- 典型场景:空输入、超长字符、特殊字符(如SQL注入
' OR 1=1--)、0值、重复提交 - 适用:回归测试或经验丰富的测试人员快速补充用例。
四、因果图与判定表法(Cause-Effect Graphing & Decision Table)
核心原理
处理多条件组合逻辑,将输入条件(因)与输出结果(果)的因果关系转化为判定表
实施步骤
- 标识所有原因(输入条件)和结果(输出动作)。
- 画出因果图,标注约束(如某些条件互斥)。
- 转换为判定表,覆盖所有条件组合。
- 每列生成一个测试用例。
实例:登录功能(条件:用户名有效/无效 + 密码有效/无效)
| 用户名 | 密码 | 预期结果 |
|---|---|---|
| 有效 | 有效 | 登录成功 |
| 有效 | 无效 | 提示密码错误 |
| 无效 | 有效 | 提示用户名不存在 |
| 无效 | 无效 | 提示双重错误 |
五、场景法(Scenario-Based Testing)
核心原理
模拟用户真实操作流程,覆盖正常/异常分支
- 基本流:主成功路径(如电商下单付款成功)。
- 备选流:分支路径(如库存不足、支付超时)。
实例:ATM取款流程
- 基本流:插卡→输密码→输入金额→出钞→退卡。
- 备选流:密码错误→重试/锁卡;余额不足→提示失败
六、正交试验法(Orthogonal Array Testing)
核心原理
用正交表减少多因素组合的用例数(如浏览器×OS×分辨率)
- 优势:5因素3水平仅需9次测试(全面组合需243次)。
- 工具:使用正交表生成工具(如AllPairs)。
七、状态迁移法(State Transition Testing)
核心原理
针对状态机系统(如订单状态),测试状态转换合法性
步骤:
- 绘制状态图(如订单:待支付→已支付→发货中→已完成)。
- 测试非法转换(如从“已完成”回退到“待支付”)。
方法对比与适用场景
| 方法 | 适用场景 | 测试重点 |
|---|---|---|
| 等价类+边界值 | 输入范围明确(数值、文本长度) | 合法/非法输入及边界 |
| 因果图/判定表 | 多条件组合逻辑(规则引擎) | 条件组合全覆盖 |
| 场景法 | 用户流程(电商、金融) | 主路径+异常分支 |
| 正交试验 | 多配置兼容性(浏览器/OS组合) | 高效覆盖因素组合 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
没有相关内容!