黑盒测试方法以及测试网关步骤

一、经典黑盒测试方法(必会款)

1️⃣ 等价类划分(最基础,但很多人用错)

核心思想

把输入分组,每组里随便挑一个都"等价"。

例子

  • 年龄输入:0--120

    • 有效等价类:1--120

    • 无效等价类:≤0>120、非数字

真相

👉 你不是在省测试量,是在防止无脑穷举

2️⃣ 边界值分析(BUG 高发区)

口诀

错误,80% 在边界附近

测试点通常是:

  • min-1, min, min+1

  • max-1, max, max+1

反例吐槽

只测 max 不测 max+1 = 没测。

3️⃣ 决策表测试(规则一多就靠它)

适合场景

  • 业务规则复杂

  • 多条件组合(权限、状态机、订单流)

例子

用户是否能下单?

  • 是否登录

  • 是否实名认证

  • 是否余额充足

👉 全部组合列成表,一刀切漏测。

4️⃣ 状态迁移测试(状态型系统必备)

适合

  • 登录 / 登出

  • 设备在线 / 离线 / 升级中

  • IoT、网关、协议栈

关注点

  • 合法迁移

  • 非法迁移

  • 重复迁移

  • 异常打断后状态是否错乱

⚠️ 很多线上事故,本质是状态回不去

5️⃣ 因果图法(决策表 Pro Max)

  • 输入条件 = 原因

  • 输出结果 = 结果

👉 把逻辑关系画出来,再转成测试用例

👉 防"条件遗漏症"

6️⃣ 错误推测法(老测试最值钱的能力)

一句话

靠经验"猜"哪里会炸

常见高危点:

  • 空值 / NULL

  • 网络抖动

  • 重复提交

  • 超时重试

  • 并发 + 顺序错乱

⚠️ 这不是瞎猜,是踩坑史换来的直觉

7️⃣ 场景法 / 用例流测试(老板最爱)

不关心单点功能,只关心:

  • 用户从 A 到 Z 能不能走完

  • 中途失败后能不能恢复

例子:

登录 → 配网 → 绑定设备 → 升级 → 控制 → 断网 → 重连

8️⃣ 随机测试 / Monkey Test

  • 随机输入

  • 随机操作

  • 随机顺序

适合

  • UI

  • 移动端

  • 嵌入式交互系统

真相

👉 稳定性不靠设计,靠折磨。

9️⃣ 兼容性测试

  • 系统版本

  • 浏览器

  • 设备型号

  • 分辨率

现实世界真理

你没测到的环境,就是用户用的环境。

🔟 性能 & 压力测试(虽是黑盒,但经常被忽略)

  • 响应时间

  • 并发

  • 内存泄漏(长期跑)

对 IoT / 网关来说:

  • 设备数上来以后,才是真正的测试开始

二、网关测试用例设计

你这个不是"单一方法",而是多种黑盒方法叠加

测试点 对应黑盒方法
Web 配置页 等价类 / 边界值 / 异常输入
MQTT 连接流程 状态迁移测试
服务器 IP 配置 决策表 / 场景法
网关唯一性校验 规则校验 + 错误推测
多网关接入 并发 / 冲突测试

测试对象

  • 网关(有 Web 配置页)

  • 本地 / 私有云 MQTT 服务器

  • 网关唯一标识:Gateway No / MAC / IP


1.Web 配置页面(服务器 IP / 端口)

用例ID 测试点 输入 操作 预期结果
CFG-01 正常 IP 192.168.1.10 保存 保存成功
CFG-02 非法 IP 999.1.1.1 保存 提示格式错误
CFG-03 字符串 IP abc.def 保存 拒绝
CFG-04 空 IP 保存 不允许
CFG-05 前后空格 " 192.168.1.10 " 保存 自动 trim
CFG-06 端口 1883 1883 保存 成功
CFG-07 端口 0 0 保存 拒绝
CFG-08 端口 65536 65536 保存 拒绝
CFG-09 修改后立即生效 新 IP 保存 断旧连新
CFG-10 重启后保留 正常参数 重启 参数不丢

⚠️ 如果 CFG-09 / CFG-10 没测,等着返工


2.MQTT 连接状态迁移

用例ID 测试点 场景 操作 预期结果
MQTT-01 初始状态 未配置 上电 显示未连接
MQTT-02 正常连接 正确 IP 上电 连接成功
MQTT-03 IP 错误 错 IP 上电 连接失败
MQTT-04 服务器断网 已连接 断网 状态变离线
MQTT-05 自动重连 断网后恢复 等待 自动恢复
MQTT-06 重连风暴 IP 错 观察 不疯狂刷日志
MQTT-07 配置变更 在线 改 IP 旧连接断开
MQTT-08 服务器重启 在线 重启服务器 网关重连

👉 状态显示 ≠ 实际连接,必须抓服务器日志验证


3.网关信息上报(注册 / 心跳)

用例ID 测试点 操作 预期
REG-01 首次上线 上电 上报 No/MAC/IP
REG-02 断线重连 拔网线 重连后重新上报
REG-03 服务器重启 重启 网关重新注册
REG-04 字段完整性 抓包 字段齐全
REG-05 固件版本 上报 正确显示
REG-06 IP 变化 DHCP 改 IP 新 IP 上报

4.唯一性校验(重点🔥)

1️⃣ Gateway No 冲突

用例ID 场景 网关 A 网关 B 预期
UNI-NO-01 No 相同 No=001 No=001 B 被拒
UNI-NO-02 A 在线 在线 上线 B 注册失败
UNI-NO-03 A 离线 掉线 上线 是否允许(需求)
UNI-NO-04 顶替场景 离线 同 No 行为明确

⚠️ 这个"是否允许顶替"必须产品拍板,不是技术自作主张


2️⃣ MAC 冲突(最高风险)

用例ID 场景 操作 预期
UNI-MAC-01 MAC 重复 两网关 MAC 相同 后者拒绝
UNI-MAC-02 伪造 MAC 手动改 服务器拒
UNI-MAC-03 已注册 MAC 再上线 不覆盖
UNI-MAC-04 MAC 冲突提示 冲突 明确错误码

👉 MAC 冲突 ≠ 静默失败,否则排障地狱


3️⃣ IP 冲突(灰色地带)

用例ID 场景 操作 预期
UNI-IP-01 DHCP 冲突 两网关同 IP 是否告警
UNI-IP-02 IP 变化 改 IP 服务器更新
UNI-IP-03 NAT 场景 同出口 IP 不误判

5.并发 & 极端场景(真实世界)

用例ID 场景 操作 预期
CON-01 同时上线 两网关同时 无异常
CON-02 同 No 并发 同时连 只允许一个
CON-03 快速重连 反复断连 不死锁
CON-04 配置中断 保存时断电 不脏数据
相关推荐
苦学编程的谢3 天前
好运buff机 ------ 测试报告
java·开发语言·功能测试
观音山保我别报错7 天前
抽奖项目-接口自动化测试
功能测试·测试工具·单元测试
测试_AI_一辰7 天前
项目实战15:Agent主观题怎么评测?先定底线,再做回归
开发语言·人工智能·功能测试·数据挖掘·ai编程
Elastic 中国社区官方博客8 天前
AI 可观察性:公共部门使命韧性的支柱
大数据·人工智能·功能测试·elasticsearch·搜索引擎·语言模型·全文检索
Mr_Xuhhh8 天前
Web自动化测试入门:Selenium实现百度搜索自动化
功能测试
在坚持一下我可没意见10 天前
ideaPool论坛系统测试报告
java·spring boot·功能测试·selenium·jmeter·mybatis·压力测试
薯条不要番茄酱11 天前
【测试实战篇】“发好论坛”接口自动化测试
python·功能测试·测试工具·单元测试·测试用例·pytest·测试覆盖率
可可南木12 天前
3070文件格式--16--hosts文件
功能测试·测试工具·pcb工艺
有技巧搬砖12 天前
让 FCT/ICT/ATE/BMS 测试更简单高效
功能测试·测试工具·上位机
‎Melody.12 天前
如何进行AI大模型测试
人工智能·python·功能测试·算法·自动化·vllm