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

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

主类别细分说明
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.mzph.cn/news/906062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

整理了 2009 - 2025 年的【199 管综真题 + 解析】PDF,全套共 34 份文件

每年真题原卷 ✅ 每年详细解析 ✅ 📂【管综真题 2009-2025】 📂【管综解析 2009-2025】 目录树: ├── 2009-2025管综真题 PDF │ ├── 2009年199管综真题.pdf │ ├── 2010年199管综真题.pdf │ ├── 2011年199管综真题.pd…

用golang实现二叉搜索树(BST)

目录 一、概念、性质二、二叉搜索树的实现1. 结构2. 查找3. 插入4. 删除5. 中序遍历 中序前驱/后继结点 一、概念、性质 二叉搜索树(Binary Search Tree),简写BST,又称为二叉查找树 它满足: 空树是一颗二叉搜索树对…

自动化:批量文件重命名

自动化:批量文件重命名 1、前言 2、效果图 3、源码 一、前言 今天来分享一款好玩的自动化脚:批量文件重命名 有时候呢,你的文件被下载下来文件名都是乱七八糟毫无规律,但是当时你下载的时候没办法重名或者你又不想另存为重新重…

VueUse/Core:提升Vue开发效率的实用工具库

文章目录 引言什么是VueUse/Core?为什么选择VueUse/Core?核心功能详解1. 状态管理2. 元素操作3. 实用工具函数4. 浏览器API封装5. 传感器相关 实战示例:构建一个拖拽上传组件性能优化技巧与原生实现对比常见问题解答总结 引言 在现代前端开发…

stm32 ADC单通道转换

stm32c8t6仅有12位分辨率 1、单次转换 非扫描 1、初始化 void Ad_Init() {RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//配置ADCCLK时钟分频,ADC的输入时钟不得超过14MHzRCC_ADCCLKConfig(RCC_PCLK2_Div6);G…

2KW压缩机驱动参考设计【SCH篇】

实物展示: ACDC: VAC和VAC-为交流电压检测: 1.C33 C34作为Y电容走线宽度要求: Y电容一般用于L/N到地之间(L-PE 或 N-PE),主要作用是抑制共模干扰。其走线的电流非常小,推荐使用 ≥ 1mm 宽的走…

python05——循环结构

1、while循环 n0 #初始条件 while n<5: #判断print(hello python) #要重复执行的代码print(n) #注意同级代码缩进相同n1 #计数器结果&#xff1a; hello python 0 hello python 1 hello python 2 hello python 3 hello python 4 hello python 5 #求阶乘和 sum0 n1 whil…

LINUX编译、运行、测试lowcoder_CN

参考 二者没有太大差异。 LINUX编译、运行、测试lowcoder-CSDN博客 下载 git clone https://github.com/mousheng/lowcoder_CN 或 git clone https://gitcode.com/gh_mirrors/lo/lowcoder_CNcd lowcoder_CN三个模块 node-service api-service client 每个模块都有自己的…

Python 基础之函数命名

几个问题 使用描述性蛇形命名法&#xff08;snake_case&#xff09;Python函数名应使用什么大小写格式&#xff1f;为什么函数名要具有描述性&#xff1f;方法的命名规范是什么&#xff1f;函数、变量和类的命名有何区别&#xff1f; Python函数的命名有一些不可违背的硬性规…

redis 命令大全整理

http://doc.redisfans.com/ 原网址 Redis 命令分类 Key(键) Key(键)命令 exists/del/keys/type/scanobject/move/dump/migratettl/pttl/persist/expireat/pexpireat/expire/pexpirerename/renamenxsort/randomkey/restoreexists 语法:exists key [key ...] 检查一个或多…

React中useDeferredValue与useTransition终极对比。

文章目录 前言一、核心差异对比二、代码示例对比1. useDeferredValue&#xff1a;延迟搜索结果更新2. useTransition&#xff1a;延迟路由切换 三、应用场景总结四、注意事项五、原理剖析1. 核心机制对比2. 关键差异3. 代码实现原理 总结 前言 在React的并发模式下&#xff0c…

高并发内存池|定长内存池的设计

二、定长内存池的设计 设计一个定长的内存池&#xff0c;这个内存池的定长在于&#xff0c;当剩余空间使用完毕后&#xff0c;总是开辟相同长度的新空间来使用。我们会使用到一个指针来切割划分大空间为小空间。大空间是内存池向系统申请的内存大小&#xff0c;而小空间是程序…

微信小程序 自定义图片分享-绘制数据图片以及信息文字

一 、需求 从数据库中读取头像&#xff0c;姓名电话等信息&#xff0c;当分享给女朋友时&#xff0c;每个信息不一样 二、实现方案 1、先将数据库中需要的头像姓名信息读取出来加载到data 数据项中 data:{firstName:, // 姓名img:, // 头像shareImage:,// 存储临时图片 } 2…

从零开始理解Jetty:轻量级Java服务器的入门指南

目录 一、Jetty是什么&#xff1f;先看一个生活比喻 二、5分钟快速入门&#xff1a;搭建你的第一个Jetty服务 步骤1&#xff1a;Maven依赖配置 步骤2&#xff1a;编写简易Servlet&#xff08;厨房厨师&#xff09; 步骤3&#xff1a;组装服务器&#xff08;餐厅开业准备&am…

深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖

第一篇&#xff1a;I2C总线协议深度解剖 副标题 : 两根线如何征服千亿设备&#xff1f;详解硬件工程师必须掌握的通信奥义 1. 为什么I2C仍是嵌入式经典&#xff1f; 1.1 总线拓扑的哲学 拓扑对比图 SPI需4线N片选 vs I2C仅2线级联 UART点对点 vs I2C多主从架构 成本控制实…

MySQL 索引优化以及慢查询优化

在数据库性能优化中&#xff0c;索引优化和慢查询优化是两个关键环节。合理使用索引可以显著提高查询效率&#xff0c;而识别和优化慢查询则能提升整体数据库性能。本文将详细介绍MySQL索引优化和慢查询优化的方法和最佳实践。 一、MySQL 索引优化 1.1 索引的基本概念 索引是…

vue使用Pinia实现不同页面共享token

文章目录 一、概述二、使用步骤安装pinia在vue应用实例中使用pinia在src/stores/token.js中定义store在组件中使用store登录成功后&#xff0c;将token保存pinia中向后端API发起请求时&#xff0c;携带从pinia中获取的token 三、参考资料 一、概述 Pinia是Vue的专属状态管理库…

通俗版解释CPU、核心、进程、线程、协程的定义及关系

通俗版解释&#xff08;比喻法&#xff09; 1. CPU 和核心 CPU 一个工厂&#xff08;负责干活的总部&#xff09;。核心 工厂里的车间&#xff08;比如工厂有4个车间&#xff0c;就能同时处理4个任务&#xff09;。 2. 进程 进程 一家独立运营的公司&#xff08;比如一家…

用 VS Code / PyCharm 编写你的第一个 Python 程序

用ChatGPT做软件测试 编写你的第一个 Python 程序——不只是“Hello, World”&#xff0c;而是构建认知、习惯与未来的起点 “第一行代码&#xff0c;是一个开发者认知世界的方式。” 编程的入门&#xff0c;不只是运行一个字符串输出&#xff0c;更是开始用计算机思维来理解、…

amd架构主机构建arm架构kkfileview

修改本机使用镜像仓库地址 vim /etc/docker/daemon.json {“experimental”: true, “registry-mirrors”: [ “https://docker.m.daocloud.io”, “https://docker.1panel.live”, “http://mirrors.ustc.edu.cn/”, “http://mirror.azure.cn/”, “https://docker.hpcloud.c…