测试层级与测试类型

文章来源声明: 原文作者:Zelman; 来源站点:掘金; 原文链接:https://juejin.cn/post/7694908808570257449; 本文基于上述来源整理/加工,觅优补充点评,仅供技术学习交流。版权归原作者所有。
觅优短评

把“层级”与“类型”拆开,可避免“做了系统测试就等于覆盖了性能与安全”的误判。二维矩阵与四条选格判据可直接用于测试计划评审,适合测试负责人与架构师参考落地。

测试层级与测试类型 -----------
> 一句话:**"在哪一层测"(层级)与"测什么属性"(类型)是两个正交维度**——把两者混着说,是测试计划里最常见的结构错误。

定位:通用知识第 3 页,给出"四层级 × 类型"的二维矩阵与选格判据(不是所有格子都值得做)。类型维度对齐 软件质量模型ISO25010,本页不重复展开质量特性的定义。

上游:测试过程模型与左移右移(活动在流程中的位置) · 下游:测试设计(把选中的格子变成用例)


一、为什么必须拆成两个维度

  • "集成测试"是层级(测试对象的范围)
  • "性能测试"是类型(被验证的质量属性)
  • 完整表述应是"集成层的性能测试",例如:单节点接口的并发吞吐与 P99

混合表述会导致两类典型错误:

  1. 把"做了系统测试"当成"已覆盖性能/安全"——层级替代类型
  2. 把"做了性能测试"当成"质量已达标"——类型替代层级与范围

二、四个测试层级

层级测试对象目标典型缺陷主要责任自动化程度本库实例
**组件/单元测试**函数、类、模块逻辑正确、边界与异常分支算法错误、空值、越界、状态机遗漏开发者高—
**集成测试**组件间交互、接口、数据流协作正确、契约一致接口不匹配、协议/字段误解、时序与事务问题开发 + 测试中高SSD测试速查表(命令级验证)
**系统测试**完整系统(端到端)需求级功能与非功能达标需求缺失、跨模块交互、环境相关问题测试团队中(E2E 少而精)SSD测试方法与体系(10 类测试)
**验收测试**用户/客户视角的业务目标能不能用、要不要收业务理解错、性能不达预期、可运维性差用户/客户 + 业务方低(部分可自动化)AI芯片Benchmark与Roofline模型(客户口径基准)

系统集成测试:部分标准在集成与系统测试之间还列出"系统集成测试"——验证本系统与外部系统之间的互操作与数据流(跨系统接口、联调环境)。它可视为集成测试向外的外延,也可视为系统测试的入口;在强依赖第三方的产品中,这一层不可省略。

2.1 集成策略(与"集成测试"不是一回事)

策略做法优点缺点
大爆炸全部组装后一次测省事失败定位极难
自顶向下用桩(stub)模拟下层早期验证主流程底层缺陷发现晚
自底向上用驱动(driver)模拟上层底层稳主流程验证晚
三明治上下并行、中间收口折中需要更多脚手架
基于调用图 / 变更驱动按依赖关系与变更影响选择高效、与 CI 契合需要依赖分析能力

2.2 验收测试的分支

分支谁验收关注点
UAT(用户验收)业务用户业务流程可用
OAT(运行验收)运维/IT可部署、可监控、可备份恢复
合同 / 合规验收客户 / 审计方合同条款、法规、标准符合性
Alpha / Beta内部试点 / 外部用户真实使用反馈
法规验收监管部门安全关键或受监管产品(医疗、汽车等)

三、测试类型(对齐 ISO 25010 的八大质量特性)

类型的选取依据是质量的坐标系,故本页只列"类型 → 特性 → 手段 → 出口判据";特性定义见 软件质量模型ISO25010。

\#类型回答的问题对应特性典型手段出口判据示例
1**功能测试**功能对不对、全不全功能适合性等价类/边界值/判定表/场景法需求条目覆盖 + 关键路径全通过
2**性能测试**负载下快不快、稳不稳性能效率负载/压力/稳定性/容量测试;FIO、JMeter、k6P95/P99 与吞吐达基线、稳态无漂移
3**兼容性测试**换环境还能不能用兼容性平台/版本/设备/数据格式矩阵目标兼容矩阵全绿(矩阵标版本与时点)
4**易用性 / 交互测试**好不好学、好用、好恢复交互能力可用性走查、任务完成率、无障碍检查关键任务完成率与错误恢复达约定
5**可靠性测试**长时间与异常下是否可靠可靠性长稳、故障注入、掉电/中断、恢复验证长稳期零崩溃;故障后数据一致且可自恢复
6**安全性测试**会不会被攻破、会不会泄露安全性漏洞扫描、渗透、认证与加密校验、依赖扫描无高危未修复项;敏感数据无明文暴露
7**可维护性测试**改起来贵不贵可维护性静态分析、变更影响度量、构建与回归耗时变更后回归时长在预算内
8**可移植性 / 灵活性测试**搬迁与适配成本可移植性安装/升级/替换/迁移演练迁移脚本可执行且数据一致

可维护性与可移植性不由测试团队"保证":它们主要由架构与设计决定,测试只能度量(构建耗时、回归耗时、变更后失败用例数)与暴露。把它们交给测试"负责"是职责错配。

3.1 另一组容易混进来的正交分类(务必分清)

正交维度取值依据
**技术可见性**(方法)黑盒 / 白盒 / 灰盒是否查看内部结构
**是否执行**静态 / 动态是否运行代码(→ 测试基础理论)
**测试目的**确认测试 / 回归测试验证新功能,还是验证没被改坏
**触发方式**计划驱动 / 探索式用例是否预先设计

"黑盒/白盒"是方法,常被误当作类型——"我们做了黑盒测试"≈"我们做了测试"。方法与类型可交叉:黑盒的性能测试、白盒的安全测试都成立。


四、四层级 × 类型 二维矩阵(选格,不是全做)

矩阵读法:格子描述的是**"这一层有没有该类型的有效测法"**(✅ 强 / ◐ 有条件 / ❌ 不宜),不是"要不要做"。

层级 \ 类型功能性能兼容性易用性可靠性安全性可维护性可移植性
**组件/单元**✅ 强◐ 微基准(函数级耗时、复杂度)❌❌◐ 异常/超时分支◐ 输入校验、加密原语◐ 圈复杂度、静态检查❌
**集成**✅ 强(契约/接口)◐ 单节点、单接口吞吐◐ 组件版本兼容❌◐ 依赖故障注入◐ 认证与鉴权链路❌◐ 适配器/接口适配
**系统**✅ 强✅ 强(全链路)✅ 强(兼容矩阵)◐ 走查为主✅ 强(长稳、掉电)✅ 强◐ 构建/回归耗时✅ 强(安装/升级/迁移)
**验收**✅ 强(业务口径)◐ 基线验收(Peak/SLA)◐ 目标环境验收✅ 强(真实用户)◐ 试运行期观测◐ 合规审计❌◐ 目标环境安装与迁移验收

四条选格判据:

  1. 风险驱动:失效后果 × 发生概率 → 高风险格子优先(缺陷聚集原则,→ 测试基础理论)
  2. 成本单调性:越靠下层越便宜 → 能下沉就下沉(金字塔原则)
  3. 可行性约束:部分类型在低层不可测(易用性只能在系统/验收层;全链路容量只能在系统层)
  4. 反馈速度:CI 队列中必须保留"分钟级能跑完"的格子,慢的移到夜间或发布前

五、选取判据:场景 → 建议组合

变更场景建议层级 × 类型理由
单函数 / 算法改动单元(功能 + 边界 + 异常)性价比最高,CI 必跑
接口 / 协议字段变更集成(功能 + 契约 + 兼容)契约不一致是集成层主要缺陷
依赖升级(库/OS/内核)集成 + 系统(兼容 + 功能回归)兼容矩阵是主战场
涉及存储 / 持久化系统 + 可靠性(掉电、长稳、数据一致性)数据损坏不可恢复 → 高后果,见 SSD测试方法与体系
涉及并发 / 异步单元 + 集成(竞态、超时、重试)+ 系统长稳时序类缺陷低层难覆盖
发布 / 上线前系统(功能回归 + 性能基线 + 安全扫描)+ 验收(业务口径)出口判据的整体校验
面向 AI / 非确定性系统统计判定(分布、阈值、评测集)传统断言不适用 → 大模型评测技术
硬件 / 固件系统 + 可靠性 + 兼容(V 模型世界)不可回滚 → 前置验证强度更高

六、出口判据(Exit Criteria)模板

不要写"测试完成",要写可判定的条件:

维度示例判据
覆盖需求条目覆盖 100%;高风险模块分支覆盖 ≥ 约定阈值
缺陷无 S1/S2 未关闭缺陷;S3 未关闭数 ≤ N 且有处置结论
质量属性性能 P95 不劣于上一版本基线;安全扫描无高危
回归全量回归通过率 100%(排除已批准豁免)
可发布性回滚方案演练通过;灰度计划与观测指标就绪

判据必须可判定(要么过要么不过);"测试充分"这类描述不是判据。出口判据的经济含义见 测试度量与质量成本。