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

测试--测试分类 (白盒 黑盒 单元 集成)

一、按照测试目标分类(测试目的是什么)

主类别细分说明
1. 界面测试UI内容完整性、一致性、准确性、友好性,布局排版合理性,控件可用性等
2. 功能测试检查软件功能是否符合需求说明书,常用黑盒方法:边界值、等价类、判定表等
3. 性能测试关注响应速度、系统负载、吞吐量等,需基于架构与性能需求设计测试
4. 可靠性测试评估系统稳定性、服务可用性(如99.99%、99.999%)
5. 安全性测试验证系统对数据、身份、访问权限的防护能力,防范SQL注入、XSS等攻击
6. 易用性测试符合UI标准、直观性、操作灵活性、美观舒适度等

二、按照执行方式分类(是否运行程序)

主类别细分说明
1. 静态测试不运行程序,仅分析代码/文档/结构,如代码审查、静态扫描
2. 动态测试运行程序并输入测试数据,如功能测试、系统测试等

三、按照测试方法分类(看代码与否)

主类别细分说明
1. 白盒测试分析程序结构和路径(语句覆盖、判定覆盖、路径覆盖等)
2. 黑盒测试基于功能需求进行测试(等价类、边界值、场景法等)
3. 灰盒测试结合黑盒和白盒,对输入输出及部分内部结构进行验证

一、白盒测试

✅ 强调对程序内部逻辑结构进行测试,关注“怎么实现的”。

🔹 主要应用阶段:

  • 多用于 单元测试

  • 开发人员或白盒测试工程师编写

🔹 特点:

  • 需要阅读和理解源代码

  • 关注每条路径是否被测试到

  • 能提高代码质量,及时发现隐藏逻辑问题

🔹 常见方法(6种逻辑覆盖):

覆盖类型描述说明
1. 语句覆盖要求程序中每条语句至少执行一次
2. 判定(分支)覆盖要求每个分支(if/else)都执行到,判断结果为 T 和 F 各一次
3. 条件覆盖每个判断条件的每个可能取值(T/F)都至少出现一次
4. 判定-条件覆盖同时满足判定覆盖条件覆盖的要求
5. 条件组合覆盖所有条件变量的 T/F 组合都测试(复杂度高)
6. 路径覆盖要求程序中所有可能的执行路径都至少测试一次(数量通常是指数级)


二、黑盒测试

✅ 不考虑程序内部实现,重点在于输入与输出是否符合需求说明书

🔹 主要应用阶段:

  • 多用于 系统测试验收测试

  • 测试工程师执行

🔹 特点:

  • 不需要读代码,只需理解需求

  • 能从用户角度检验功能是否正常

  • 无法覆盖具体逻辑路径,可能遗漏内部缺陷

🔹 常用设计方法:

测试方法描述说明
1. 等价类划分法将输入划分为有效/无效等价类,每类只取一个代表值进行测试
2. 边界值分析法对输入的边界点和边界附近的值进行测试,如 [0,100] 测试 -1, 0, 1, 99, 100, 101
3. 判定表法将输入条件与预期动作列为表格,覆盖所有输入组合,适用于复杂业务规则
4. 正交法利用正交表从大量组合中选出有代表性的少数组合,提升测试效率
5. 场景法根据真实业务流程设计测试用例,模拟用户操作路径
6. 错误推测法基于经验假设容易出错的情况,如输入为0、空字符串、最大长度等


三、灰盒测试

✅ 结合黑盒和白盒测试,既看外部行为,也关注部分内部实现

🔹 主要应用阶段:

  • 多用于 集成测试

  • 可由 测试人员与开发共同参与

🔹 特点:

  • 不需要深入所有源代码,但会参考接口文档、中间模块结构

  • 可以设计更有针对性的用例,如模拟接口调用、Mock 数据

  • 较全面,适用于复杂系统间数据流/状态流的验证


✅ 总结对比表:

类别是否看代码代表测试者应用阶段典型方法/技术
白盒测试✅ 是开发或白盒工程师单元测试语句/分支/路径/条件覆盖,静态扫描等
黑盒测试❌ 否测试工程师系统、验收测试等价类、边界值、场景法、判定表、错误猜测
灰盒测试⚠️ 部分联合测试者集成测试接口验证、中间状态分析、部分代码辅助设计用例

四、按照测试阶段分类(在哪个阶段进行)

主类别细分说明
1. 单元测试对最小功能单元(函数/类)测试,主要用白盒方法
2. 集成测试测试模块之间的接口与数据传递,结合白盒和黑盒方法
3. 系统测试测试整个系统功能、性能、界面、安全性等,主要用黑盒测试
4. 验收测试由用户或第三方进行确认测试,确认软件是否符合需求和交付标准
附加补充

冒烟测试:验证核心功能是否正常;回归测试:确保修改不引入新Bug

(冒烟测活着没,回归测改坏没)

五、按照是否手动执行分类

主类别细分说明
1. 手工测试人工执行测试用例,对灵活性和异常情况测试有优势
2. 自动化测试使用脚本与工具自动运行测试,提高效率,常用于回归、性能、安全性测试等

六、按照实施组织划分

主类别细分说明
1. Alpha测试开发方内部模拟用户环境的测试(内测)
2. Beta测试实际用户使用中进行的公开测试(公测)
3. 第三方测试由独立测试机构进行,保障客观性与专业性

七、按照地域范围划分

主类别细分说明
1. 国际化测试验证多语言、时区、货币等本地化因素是否正常
2. 本地测试针对单一地区、本地配置和用户习惯进行的测试

http://www.xdnf.cn/news/7126.html

相关文章:

  • vscode中Debug c++
  • Android开发-列表类视图
  • 亚马逊新品3周冲刺BSR前10:数据驱动的冷启动破局指南
  • 模型评估与调优(PyTorch)
  • 四品种交易策略
  • MetaMask安装及使用-使用水龙头获取测试币的坑?
  • C++ThreadPool
  • 回溯实战篇3
  • 新电脑软件配置二:安装python,git, pycharm
  • 2025年PMP 学习二十 第13章 项目相关方管理
  • docker-compose部署项目(springboot服务)以及基础环境(mysql、redis等)ruoyi-ry
  • 【数字电路】第七章 脉冲波形的产生与整形电路
  • 【推荐】新准则下对照会计报表172个会计科目解释
  • Gartner《如何将生成式人工智能(GenAI)集成到应用架构》学习心得
  • 【Docker 新手入门指南】第六章:容器操作
  • Spring3+Vue3项目中的知识点——JWT
  • 2.2.1
  • 抖音视频下载工具 v1.1 自用分享
  • 26考研——进程与线程_同步和互斥_同步与互斥的基本概念(2)
  • 【深度学习新浪潮】大模型在哪些垂域已经有比较好的落地?
  • 基于labview的声音采集、存储、处理
  • 创业分析平台Web端-三大前端核心语言详解-首页index
  • 如何在 Windows 11 或 10 家庭版上安装 Windows 沙盒
  • 用DeepSeek辅助法律文件起草
  • 整数的定义和带余除法
  • 【爬虫】DrissionPage-7
  • c/c++数据类型转换.
  • Java 线程池性能优化与监控全攻略
  • 【C++】string的使用【下】
  • 基于 Zookeeper 部署 Kafka 集群