软测-第5个小时-黑盒测试

一、黑盒测试(又叫功能测试)核心定义

黑盒:不看内部代码、程序逻辑,只把软件当成一个看不见内部的黑箱子。 只关心:输入什么 → 输出是不是预期结果 不知道代码怎么写、里面怎么运算,只测功能对不对。

对比:白盒测试,打开盒子,看代码内部逻辑、分支。

✅ 核心特点:

  1. 不用懂代码
  2. 测需求、功能是否符合用户要求
  3. 关注输入输出,不关心内部实现
  4. 一般系统测试、验收测试大量用黑盒

二、黑盒常用 5 大测试方法(考试重点)

  1. 等价类划分 把输入分成:有效等价类(合法输入)、无效等价类(非法输入)

例子:密码要求 6-12 位 有效:8 位字符;无效:3 位、15 位、纯空格。 思路:同类只选 1 个代表,不用全部试,减少用例数量。

  1. 边界值分析法(高频考点!) 错误大多发生在边界临界点,测边界。 还是密码 6~12 位: 边界点:5、6、12、13 这几个数字优先测。 口诀:取边界、边界 - 1、边界 + 1
  2. 错误推测法 凭经验猜哪里容易出 bug,直接针对性测试。 比如输入框、提交按钮、网络中断场景。 缺点:依赖测试人员经验,没有固定标准。
  3. 因果图法 多个输入条件互相组合、有制约关系,画出因果图,生成判定表。 适合:多个条件组合,不同条件组合产生不同结果。
  4. 判定表驱动测试 把所有条件、对应的结果整理成表格,覆盖所有组合场景。 适合条件多、组合复杂的业务(订单、登录)

简单区分: 输入范围 → 等价类 + 边界值 多条件组合 → 因果图、判定表 凭经验猜 bug → 错误推测

三、黑盒测试能测什么 / 不能测什么

✅ 适合测:

  • 软件功能是否满足需求
  • 界面操作
  • 业务流程(下单、登录)
  • 兼容性(浏览器、不同手机)

❌ 不能发现:

  • 代码内部逻辑错误
  • 内存泄漏、代码冗余(这类是白盒测)
  • 无法覆盖所有代码分支(看不到代码,不知道哪段代码没跑)

四、考点一句话背诵版

  1. 黑盒测试又称功能测试,不考虑程序内部结构,仅依据需求规格说明书,检查程序功能。
  2. 黑盒方法:等价类划分、边界值、因果图、判定表、错误推测。
  3. 边界值:重点测试输入范围临界点,是黑盒最常考。
  4. 黑盒不能覆盖代码分支,无法发现代码内部缺陷。

 

用【登录功能】举例,讲因果图 + 判定表(软件测评师考点)

前提规则(登录页面)

条件(原因):

  • C1:输入用户名
  • C2:输入密码
  • C3:点击登录按钮

结果(效果):

  • E1:登录成功
  • E2:提示 “用户名不能为空”
  • E3:提示 “密码不能为空”
  • E4:提示 “账号或密码错误”

业务逻辑:

  1. 用户名空 → 提示用户名不能为空
  2. 用户名不为空,密码空 → 提示密码不能为空
  3. 用户、密码都填,但信息不对 → 账号密码错误
  4. 用户、密码都填且正确 → 登录成功

✅ 因果图:画 “原因→结果” 的逻辑关系图 因果图就是把上面这些条件之间的与 / 或 / 非逻辑画成图。

  • C1 并且 C2 并且账号密码正确 → E1 登录成功
  • 没有 C1(用户空) → E2
  • 有 C1,没有 C2 → E3
  • C1、C2 都有,但账号密码不对 → E4

因果图作用:梳理多个条件之间的逻辑约束,然后生成判定表。 因果图是画图分析,判定表是把所有组合整理成表格,用来写测试用例。


判定表(核心!考试重点)

判定表 = 把所有条件组合全部列成一张表格,每一列就是一条测试用例

表格

项目用例 1用例 2用例 3用例 4
C1 用户名 空 填写 填写 填写
C2 密码 任意 空 填写(错误) 填写(正确)
预期结果 E2 用户名不能为空 E3 密码不能为空 E4 账号密码错误 E1 登录成功

每一列,就是1 条测试用例。

大白话总结两者关系

  1. 因果图:先画图,理清多个条件之间的逻辑(哪些条件一起生效、互斥)
  2. 判定表:因果图画完之后,把所有可行组合整理成表格,直接拿来写测试用例

适用场景:多个输入条件互相组合,不同组合产生不同结果(登录、下单、会员优惠) 不适合:输入是连续范围(这种用等价类 + 边界值,不用这俩)

考试一句话背诵

因果图:分析输入条件的逻辑关系(与、或、非);由因果图导出判定表;判定表用来生成测试用例。

 

正交实验法(软件测评师考点)

一句话理解

当因素很多,每个因素有多个取值,全部组合测试数量爆炸。 正交实验:挑选少量、均匀分散、代表性强的组合,不用全部测,节省用例。

对比判定表:判定表是穷举所有组合;正交是选代表性组合,精简数量。

案例:浏览器兼容性测试

因素(变量,有 3 个)

A:浏览器 A1=Chrome,A2=Edge,A3=Firefox B:操作系统 B1=Win10,B2=Win11,B3=MacOS C:分辨率 C1=19201080,C2=25601440,C3=1366*768

👉 全部组合:3×3×3 = 27 条用例,太多。 用正交表 L9 (3³),只需要9 条就能覆盖。

L9 (3³) 正交表含义: L = 正交表;9 = 一共 9 行(9 条用例);3 = 每个因素 3 个水平;³= 最多 3 个因素

表格

用例编号A 浏览器B 系统C 分辨率
1 Chrome Win10 1920*1080
2 Chrome Win11 2560*1440
3 Chrome MacOS 1366*768
4 Edge Win10 2560*1440
5 Edge Win11 1366*768
6 Edge MacOS 1920*1080
7 Firefox Win10 1366*768
8 Firefox Win11 1920*1080
9 Firefox MacOS 2560*1440

核心特点(考试背)

  1. 每个因素的各个水平,出现次数均等
  2. 任意两个因素,所有水平组合都会出现一次
  3. 减少测试用例数量,用少量用例代表大量组合

✅什么时候用正交实验?

多个独立因素,每个因素多个取值,不需要全部穷举,想减少用例。

例子:兼容性、多下拉选项组合。

❌什么时候不用正交?

条件之间有强逻辑约束(A 成立 B 才生效)→ 用判定表 / 因果图,不要正交。 比如优惠券:会员并且满减才优惠,这种有依赖关系,正交不合适。

背诵短句

正交试验法:多因素多水平,组合数量巨大,选取代表性用例,减少用例数量。

 

功能图法(软件测评师考点)

✅一句话定义

功能图法 = 状态迁移图 + 逻辑功能(因果图 / 判定表) 专门测有状态流转的系统:一件东西有好几个状态,做不同操作,就跳到别的状态。

核心目标:覆盖状态、状态转换路径,设计测试用例。 别名:状态迁移图法,黑盒测试。

适用场景:订单、ATM 机、登录会话、购物下单、工单流转(有前后状态变化) 不适合:单纯输入框范围校验(等价类 / 边界值)

📖例子:ATM 取款机(经典考题案例)

步骤 1:列出全部状态

S0:初始空闲状态(待机,等待插卡) S1:已插卡,等待输入密码 S2:密码正确,进入功能选择页 S3:取款操作中 S4:交易完成,退卡

步骤 2:状态迁移(触发事件)

  1. S0 → S1:插入银行卡
  2. S1 → S0:密码输错 3 次,吞卡;或者直接退出
  3. S1 → S2:密码输入正确
  4. S2 → S3:选择取款
  5. S3 → S2:取款金额输入错误(余额不足 / 不是 50 倍数)
  6. S3 → S4:取款成功,吐出钞票
  7. S4 → S0:拿走卡片,回到待机

步骤 3:写测试路径(测试用例,重点!)

  1. 正常完整路径:S0 插卡 → S1 输正确密码 → S2 选取款 → S3 输入合法金额 → S4 取款成功 → S0(正常取款流程)
  2. 密码错误路径:S0 插卡 → S1 密码错一次 → S1 再错 → S1 第三次错 → S0 吞卡
  3. 取款失败路径:S0 插卡→S1 密码正确→S2 选取款→S3 输入大于余额金额→退回 S2
  4. 中途退出:S0 插卡→S1,直接点退出,回到 S0

功能图就是把这些状态画成图,然后遍历不同状态跳转路径,每条路径 = 一条测试用例

对比记忆(考试超级重要)

  • 等价类、边界值:静态输入,只看输入输出,没有状态流转
  • 因果图 + 判定表:同一时刻多个条件组合,没有先后状态
  • 正交:多因素独立组合,精简用例
  • 功能图:有先后顺序、状态切换(先 A 操作,进入状态 1;再 B 操作,进入状态 2)

📌背诵短句

功能图法由状态迁移图和逻辑功能模型组成;用于状态会发生变迁的业务,测试覆盖状态迁移路径。

场景法(软件测评师考点)

一句话理解

场景法:模拟用户使用软件的业务场景(业务流程),分基本流(正常主干流程)和备选流(各种异常 / 分支情况),从用户角度走完整业务。

简单记:基本流 = 一帆风顺;备选流 = 中途出各种状况。 和功能图对比:

  • 功能图:重点状态之间的跳转
  • 场景法:重点人的业务操作流程,从用户视角,非常贴近实际业务使用

例子:网上下单(经典考题)

定义

✅ 基本流(正常场景,主干) 用户登录 → 挑选商品加入购物车 → 去结算 → 提交订单 → 支付成功 → 下单完成

✅ 备选流(各种异常、分支场景) 备选流 1:登录时账号密码错误,登录失败,回到登录页 备选流 2:加入购物车,商品库存不足,提示无法加入 备选流 3:结算时,优惠券过期,不能抵扣 备选流 4:提交订单后,超时没有付款,订单自动关闭 备选流 5:支付中途网络中断,支付失败

场景法生成测试用例思路

  1. 基本流(正常从头到尾):用例 1
  2. 基本流 + 备选流 1:走到登录环节报错
  3. 基本流 + 备选流 4:正常选商品、提交订单,最后超时未支付,订单关闭
  4. 基本流 + 备选流 5:提交订单,支付断网,支付失败

核心:场景 = 基本流 + 一条 / 多条备选流组合

✅适用场景

业务有连贯操作流程(购物、ATM、订票、登录下单),用户一步步操作的业务。 ❌不适合:单纯输入框校验(等价类、边界值更合适)

场景法 vs 功能图(考试必区分!)

  1. 场景法:以用户操作流程为主,基本流、备选流,侧重业务场景。
  2. 功能图(状态迁移):以系统状态为主,各个状态之间怎么跳转。

举个极简对比: ATM 取钱

  • 场景法:描述人操作:插卡→输密码→选取款→取钱(基本流;备选流:密码输错、余额不足)
  • 功能图:描述系统状态:待机 S0→已插卡 S1→功能选择 S2→取款中 S3

背诵短句

场景法:划分基本流(正常)和备选流(异常分支),模拟用户业务场景设计测试用例,多用于业务流程类软件。

总结:

黑盒测试 7 大方法【背诵总表|软件测评师】

表格

方法核心思想适合场景关键词不适合
等价类划分 把输入划分有效、无效等价类,一类只用 1 条用例代表 输入框、参数范围校验 有效 / 无效等价类 业务流程、多条件组合
边界值分析 重点测临界点,bug 大多出在边界 有范围的输入(长度、数字) 边界、边界 ±1 流程类业务
错误推测法 凭测试经验,猜测容易出错的地方设计用例 有项目经验的模块 经验、猜测 新项目,无经验参考;考试一般不作为首选
因果图 + 判定表 分析多个输入条件的逻辑(与 / 或),穷举条件组合 同一时刻多个条件互相组合,不同组合不同结果(登录、优惠券) 条件组合、判定表 有先后顺序的业务流程
正交实验法 多独立因素,挑选少量代表性组合,减少用例数量 兼容性测试、多下拉选项独立搭配 多因素、精简用例 条件之间有逻辑约束、有依赖关系
场景法 基本流(正常流程)+ 备选流(异常分支),模拟用户操作 连贯业务流程(下单、ATM) 基本流、备选流、用户操作 单纯输入框校验
功能图法(状态迁移) 梳理系统各个状态,设计用例覆盖状态之间的跳转 存在系统状态流转:订单、ATM、工单(会把系统停留在某个状态) 状态、状态迁移、状态跳转 单纯用户操作流程,无明确状态节点

易混辨析(必考)

  1. 场景法 VS 功能图(状态迁移)
  • 场景法:站在用户操作角度,强调操作步骤,基本流 + 备选流
  • 功能图:站在系统状态角度,强调状态之间的跳转流转

一句话:场景看人的操作;功能图看系统状态变化

  1. 因果判定表 VS 正交
  • 判定表:穷举全部组合,覆盖完整,用例多;适合条件有约束依赖
  • 正交:抽样选代表性组合,用例少;适合条件互相独立

极简口诀(考前快速读一遍)

等价分好坏,边界测临界点; 经验猜错误,因果组合看; 正交少用例,场景走业务。

快速选择题判断技巧

  • 看到输入范围 → 等价类 + 边界值
  • 多个条件同时作用、有逻辑判断 →因果图 + 判定表
  • 多因素独立搭配,想减少用例 →正交实验
  • 用户一步步操作的业务流程 →场景法
  • 系统状态来回切换 →功能图
posted on 2026-10-15 16:58  轻微强迫症  阅读(21)  评论(0)    收藏  举报