当前位置: 首页 > news >正文

软件测试笔记【黑盒测试篇】:基于需求、面向功能

黑盒测试完全指南:7大设计方法 + 场景实战

不懂代码也能做测试?黑盒测试正是这样一门基于需求、面向功能的测试技术。
本文带你系统掌握等价类、边界值、判定表、因果图、正交试验、场景法等核心方法,
配合案例 + 优缺点分析,一篇打通黑盒测试理论到实践!


文章目录

  • 黑盒测试完全指南:7大设计方法 + 场景实战
    • @[toc]
    • 1. 🎯 黑盒测试概述
    • 2. ☁️ 等价类划分法
      • 操作步骤
      • 案例:用户年龄输入框(要求 18~60 岁整数)
    • 3. 📝 边界值划分法
      • 常用取点方式
      • 局限性
    • 4. 📋 决策表(判定表)
      • 表结构组成
      • 设计步骤
      • 案例:订购系统(会员折扣判断)
      • 优缺点
    • 5. 🔗 因果图
      • 逻辑关系符
      • 约束关系
    • 6. 🔢 正交表生成法
      • 操作步骤
      • 工具推荐
    • 7. 💡 特殊值法
    • 8. 🧠 故障猜测法
    • 9. 🎬 场景法
      • 核心概念
      • 测试步骤
      • 案例:在线商城下单支付
      • 适用场景与缺点
    • 10. 🧭 方法对比与选择建议
    • 🔮 系列内容
    • ✨ 写在最后

1. 🎯 黑盒测试概述

  • 测试依据:软件需求规格说明书
  • 测试重点:检查功能是否符合需求,输入 → 输出的正确性

2. ☁️ 等价类划分法

等价类划分法 是将程序的输入域划分成若干互不相交的子集,每个子集选取一个代表值进行测试。

操作步骤

  1. 分析需求,确定输入条件
  2. 划分有效等价类无效等价类,制定等价类表
  3. 设计测试用例,覆盖所有有效等价类和无效等价类

案例:用户年龄输入框(要求 18~60 岁整数)


3. 📝 边界值划分法

边界值分析法 针对输入/输出的边界位置设计用例,因为边界处最容易出现错误。

常用取点方式

  • 5点法minmin+、正常值、max-max
  • 7点法:5点法基础上增加min-max+两个点

局限性

  • 仅适用于有序的数值型输入
  • 多个输入参数时,组合爆炸
  • 不适用于布尔型和枚举型输入

4. 📋 决策表(判定表)

决策表 用于分析和表达多个逻辑条件下执行不同操作的工具。贯穿条件项和动作项的一列称为一条规则

表结构组成

组成部分说明
条件桩问题的所有输入条件(无序)
动作桩问题所有可能采取的操作(有序)
条件项条件可能的所有取值(Y/N)
动作项在条件项组合下应采取的动作(多对一)

设计步骤

  1. 列出所有条件桩和动作桩,填入条件项/动作项
  2. 确定规则个数(2^条件数)
  3. 简化合并相似规则(动作值相同可合并,无关条件用-表示)

案例:订购系统(会员折扣判断)

  • 条件:是否会员、金额>1000元、是否老用户
  • 动作:给予折扣、拒绝折扣

优缺点

  • ✅ 能够处理复杂的逻辑关系,穷举所有情况
  • ❌ 条件较多时规则数指数增长,设计工作量大

5. 🔗 因果图

通过分析输入条件(因)和输出结果(果)的关系设计测试用例,最后采用决策表展示

逻辑关系符

符号名称含义
恒等恒等原因出现 → 结果出现
原因出现 → 结果不出现
多个原因中至少一个出现 → 结果出现
所有原因都出现 → 结果才出现

约束关系

  • 异约束 E:至多一个原因成立
  • 或约束 I:至少一个原因成立
  • 唯一约束 O:有且仅有一个原因成立
  • 要求约束 R:原因出现 → 结果也必须出现

6. 🔢 正交表生成法

利用正交试验设计原理,从大量数据中挑选有代表性的测试点,用最少的用例获得最佳覆盖。

操作步骤

  1. 构造要因表
  2. 选择正交表
  3. 映射因子的状态

工具推荐

  • AllPairs、PICT、正交表生成器等

7. 💡 特殊值法

基于测试人员的经验和直觉,选择最可能发现错误的测试数据。
依赖测试者的专业背景和领域知识。
例如:基于对输入域的分析,选择那些程序容易处理出错的值进行测试,比如零、空值、极值、负数、特殊字符等。


8. 🧠 故障猜测法

基于测试经验猜测软件可能存在的故障,并针对性地设计用例。
是一种经验驱动的测试方法,常用于探索性测试。
可能未对邮箱格式做严格校验,导致带特殊符号的邮箱入库时出错。

例如按测试人员的经验猜测:

  1. 程序员可能忘记过滤SQL注入字符。

  2. 可能未对邮箱格式做严格校验,导致带特殊符号的邮箱入库时出错。

  3. 可能未处理并发注册,导致同个用户名被注册两次。

  4. 可能没有对邮箱后缀做长度限制,导致超长后缀使存储溢出。


9. 🎬 场景法

基于“事件流”概念,通过描述用户使用系统的典型场景设计用例。
重点关注用户完成特定任务的完整流程,模拟真实环境。

核心概念

  • 基本流(成功流/主路径):从初始状态到目标状态,最直接、无异常的流程
  • 备选流(异常流):因异常操作、条件或输入导致偏离基本流的路径
  • 场景 = 基本流 + 0 或多个备选流

测试步骤

  1. 分析需求,确定用例
  2. 描述基本流 / 备选流(可画流程图)
  3. 组合生成场景实例

案例:在线商城下单支付

基本流:用户登录 → 搜索商品 → 加入购物车 → 去结算 → 选择支付方式 → 支付成功 → 下单成功。

备选流1:登录时密码错误,重试后成功。
备选流2:结算时购物车为空。
备选流3:支付时账户余额不足,支付失败

适用场景与缺点

  • ✅ 适合业务流清晰的系统(尤其验收测试)
  • ❌ 用例数量可能爆炸,可能遗漏边界条件

10. 🧭 方法对比与选择建议

方法适用场景优点缺点
等价类划分输入域明确且有无限取值减少用例数量边界问题可能遗漏
边界值分析有序数值范围高效发现边界缺陷仅适用于数值
决策表多条件多动作逻辑全面、无遗漏条件多时爆炸
因果图输入输出有复杂依赖可视化逻辑学习成本高
正交表多因子组合优化覆盖均匀、用例少需要选择合适正交表
场景法业务流程测试、验收测试贴近真实用户可能遗漏边界
特殊值/故障猜测经验辅助测试发现隐藏缺陷依赖个人经验
  • 常用方法细致对比
方法优点缺点
等价类划分大幅减少用例数量,提升效率;系统性覆盖输入域,避免遗漏划分依赖个人经验,主观性强;对边界值与条件组合考虑不足
边界值分析针对错误高发区,缺陷发现率高;用例数少,投入产出比优异测试焦点单一,对输入域内部覆盖不足;仅适用于有序变量,无法处理逻辑依赖
决策表严谨处理复杂逻辑,覆盖所有组合;结构清晰,有效避免用例遗漏条件增多将导致用例数指数级增长;无法表达操作顺序,场景臃肿
因果图能有效处理输入条件间的约束关系;分析过程系统性强,引导深度思考方法复杂,学习和应用成本高;步骤繁琐,从分析到用例生成效率低

🔮 系列内容

系列文章链接(持续更新中)

  • 上一篇 软件测试基础篇
  • 下一篇 白盒测试
  • 还有更多…

关注我,第一时间获取更新


✨ 写在最后

如果本文对你有帮助,欢迎点赞收藏评论转载引用请私信作者本人(╹ڡ╹ )~

http://www.jsqmd.com/news/855553/

相关文章:

  • 无人机算法之第四章 ArduPilot 主要配置参数及效果
  • 数据库一体机简史:谁为数据仓库正名?
  • Perplexity到底是什么:从信息熵到模型评估,一文讲透3个核心公式与4种误用场景
  • 基于PSoC 6与BMI160构建嵌入式IMU测试系统:从驱动到上位机全流程
  • COMSOL电磁超声仿真避坑指南:从‘域不适用’报错到结果收敛的完整调试流程
  • DeepSeek大模型推理显存爆满?揭秘vLLM+FlashAttention下GPU显存占用突增217%的真实根因
  • HC32F4A0实战:用SPI驱动国产BL25CMIA EEPROM,从引脚配置到可靠性存储的完整流程
  • 项目——基于C/S架构的文件传输系统平台 (2)——重构
  • 保姆级教程:在S32G274ARDB2上,用IPCF点亮RGB LED(附源码解析)
  • AI 写代码总跑偏?mirrorai 让 Claude Code、Cursor、Copilot 严格遵守你项目的真实规范
  • 2026年自助建站平台哪个好?推荐这4个知名建站平台!
  • Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
  • 【正式版上线】Open Claw 2.7.5 桌面端一键安装部署教程
  • 三步告别键盘连击:KeyboardChatterBlocker高效使用全攻略
  • C#如何优雅处理引用类型的深拷贝 (十一)
  • Kimi、DeepSeek、阶跃星辰三天融资超百亿,中国AI的“中场战事”刚刚开始
  • 掌握Linux网络设计中的WebSocket服务器
  • 港科大沈劭劼、谭平团队最新成果:开源280万全景数据集,实现零样本立体匹配
  • 测试经理为保障项目按期交付,主动规划核心内容
  • 我开发了一个 AI 表单填写 Chrome 插件:AutoFormX,提升 Web 测试和表单联调效率
  • 3步搞定OFD兼容难题:Ofd2Pdf实战手册
  • Cursor试用限制终极解决方案:3分钟快速重置设备标识实战指南
  • STM32 HAL库驱动中景园0.96寸OLED(SSD1306)避坑指南:从IIC地址到GRAM刷新的完整流程
  • 别再傻傻分不清:一张图看懂BLDC六步换相与PMSM FOC的本质区别与应用选型
  • 不止是省9.9刀:解锁特斯拉Model 3的‘行驶中保持WiFi’功能,打造家庭移动娱乐中心
  • 告别臃肿UI!5K行代码的GuiLite在STM32 HAL库上跑起来了(附工程源码)
  • 避开这3个坑,你的C# + VisionPro相机采集程序才算稳定(WinForm实战)
  • 告别接线混乱!用ESP32的I2C接口驱动LCD1602,5分钟搞定温湿度显示(附完整代码)
  • 从音箱分频到电源净化:聊聊RLC低通滤波器那些意想不到的实用场景
  • 操作系统概述(4)--操作系统运行机制(1):处理机双重模式与中断