• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Mannnnning
V2EX  ›  程序员

测试不是测一遍 —— 是 6 个阶段每阶段都不一样

  •  
  •   Mannnnning · 4h 19m ago · 249 views

    主流的"测试" vs 我的"6 阶段"

    很多团队的测试流程是 3 段式:

    UT → 集成 → 上线
    

    每阶段都做"测试"——只是测试对象不同。

    我的判断不一样:

    ▌ 测试不是"测一遍"—— ▌ 是按 6 个阶段性质拆分, ▌ 每阶段有"该阶段独有、其他阶段无法替代"的验证内容。

    不是 6 次相同动作 —— 是 6 类不同性质的验证


    6 阶段是什么

    ┌──────────────────────────────────────────────────────────┐
    │                                                          │
    │  ① 单元测试 ── 验证"函数内部"                              │
    │         ↓                                                │
    │  ② 集成测试 ── 验证"跨网络"                                │
    │         ↓                       ← 比对工具进场             │
    │  ③ Code Review ─ 验证"设计 + 性能"                         │
    │         ↓                                                │
    │  ④ 他测 ────── 验证"用户视角"                              │
    │         ↓                       ← 比对工具回访             │
    │  ⑤ 灰度 ────── 验证"生产数据兼容"                          │
    │         ↓                       ← 比对工具在线             │
    │  ⑥ 上线观察 ── 验证"业务大盘波动"                          │
    │                                                          │
    └──────────────────────────────────────────────────────────┘
    

    每阶段独有验证内容:

    阶段 性质 独有验证
    ① 单元 函数内部 UT 覆盖率 + 冒烟 + 功能埋点
    ② 集成 跨网络 跨服务冒烟 + DML 比对
    ③ Review 设计性能 设计审查 + 性能分析 + 回滚方案
    ④ 他测 用户视角 提测文档 + Test Case + 修复后再比对
    ⑤ 灰度 生产数据 时间窗口 + 分工 + DML 在线比对
    ⑥ 上线 业务大盘 6 项指标 + 四方确认

    → 第 ②④⑤ 阶段的"比对"动作,就是上一篇讲的"比对工具体系"。 → 第 ⑥ 阶段是大多数团队最常省的——本文重点讲它。


    阶段拆分的核心标准

    我自己的判断标准很简单:

    两个阶段如果验证内容重叠 —— 说明阶段拆分错了。

    举个例子:很多团队把"集成测试"和"他测"混在一起做—— 都让测试同事跑一遍。

    但这两个阶段性质完全不同:

    • 集成测试是 "跨网络"性质 —— 关心服务调用、数据穿透是否对
    • 他测是 "用户视角"性质 —— 关心 case 覆盖、修复后再验证是否对

    合在一起做的代价: 集成阶段没暴露的跨服务 bug,会被他测的"用户场景"掩盖—— 等到灰度才发现,代价是集成阶段的 N 倍。


    第 6 阶段最贵 —— 也最被忽视

    很多团队的"上线观察"=刷一下监控大盘。

    我的版本:6 项指标 + 四方确认

    6 项观测指标:

    1. 产品功能有没有执行
    2. 数据有没有问题
    3. 系统有没有性能问题
    4. 跨系统交互有没有影响
    5. 财务大盘是否波动      ← 关键!
    6. 业务大盘是否波动      ← 关键!
    

    ▌ 把"财务大盘 / 业务大盘波动" ▌ 作为发布观察指标 —— ▌ 这是大多数团队最常省的一步。

    因为这两项指标"看起来不归技术管"。 但实际上 —— 80% 的"上线后才发现"的事故,在前 4 项指标 里全是绿的,只有第 5 、6 项暴露异常

    例子:

    某次上线某个改动,前 4 项指标全绿; 3 天后才发现财务对账差异——这种 bug 在 UT/集成/灰度 都看不出来,只有"业务大盘"能看见。


    四方确认 —— 不是签字流程

    四方确认 = 开发 / 测试 / 技术 TO / 产品 都同意才能"上线观察通过"。

    听起来像 PPT 流程,但反共识在于:

    ▌ 测试同意 ≠ 验收通过 —— ▌ 业务大盘没波动,不代表产品认为"功能符合预期"。 ▌ 产品同意 ≠ 验收通过 —— ▌ 数据正常,不代表开发认为"性能达标"。

    四方共同确认——任何一方说"我看到的不对"——就回退

    我经历的项目里,真发生过 "3 方都过了,产品最后说不对" 的情况。如果没有四方流程,这个回退根本走不动。


    反共识在哪

    主流:测试 = UT + 集成 + 上线(3 阶段) 我的版本:6 阶段,每阶段独有验证

    主流:每阶段都做"测试"动作 我的版本:每阶段对应该阶段性质独有的验证手段

    主流:上线观察看"是否有大故障" 我的版本:6 项观测指标 + 四方确认

    主流:业务大盘归运营管 我的版本:把"财务大盘 / 业务大盘"作为发布观察指标

    主流:验收 = 测试通过 我的版本:四方确认(开发 / 测试 / 技术 TO / 产品)


    什么时候不该用这套

    也踩过坑。

    某次内部小工具改动,代码量不到 200 行。 我也想搞 6 阶段——leader 直接说:"过度。"

    事后是对的。

    我的判断:

    • 核心业务系统改造 → 必上(尤其涉及财务 / 业务大盘)
    • 跨多研发角色的项目 → 必上(否则四方确认走不通)
    • 内部工具 / 后台脚本 → 别上(单人项目,4 阶段够)
    • DDL 类无法灰度的改动 → 跳过第 5 阶段(灰度),其余照走
    • 不影响 KPI 的小项目 → 简化为 3 阶段(UT+集成+上线)

    阴面 · 这套也有副作用

    我自己用了这套 4 年,踩过的坑:

    • 重型流程 —— 小项目用不上,6 阶段成本太高
    • 跨公司不通用 —— 没有"四方确认 / 业务大盘"概念的公司套不进来
    • 可能流于形式 —— 团队成员把 6 阶段当 6 个 checkbox 而非 6 类性质
    • 决策慢 —— 至少 6 次评审 / 检查

    最后一条最关键 —— **6 阶段的代价是"决策周期变长"**。 所以才有上面那句:"小项目别上 / 不影响 KPI 的项目简化为 3 阶段"。


    写在最后

    把测试拆 6 阶段,不是为了"显得专业"—— 是因为我经历过太多次:

    "你那阶段不是测过吗?怎么还出问题?"

    仔细看,会发现:那阶段测的不是这一类问题

    每阶段性质不同 —— 验证手段就该不同。 6 阶段是"性质拆分",不是"动作拆分"。

    跟"渐进式改造"和"比对工具"一样,这是一套关心可逆性、关心 追溯性的工程纪律。


    写到这,我也不太确定 6 阶段对所有团队都成立。

    我经历的项目都是"核心业务系统 + 跨多角色 + 业务大盘敏感"—— 这种场景 6 阶段几乎是必修。 但创业团队 / 内部工具 / 没有"业务大盘"这个概念的公司—— 搞这套可能反而是负担。

    这点我自己也还在想。

    下一篇打算写 17 类业务迁移分类—— 跟 6 阶段是一对:6 阶段是纵向(时间),17 类是横向(业务域)。 两者合起来才是完整的迁移管理体系。

    (以上 SOP 都做了脱敏。 如果你做过核心系统改造,欢迎评论区聊聊你们的验收流程长什么样, 特别想听6 阶段简化为 3 阶段后,踩过的坑。)


    shyrock2026
        1
    shyrock2026  
       3h 43m ago
    这一看就是 AI 文啊。。。
    Mannnnning
        2
    Mannnnning  
    OP
       3h 34m ago
    @shyrock2026 内容是自己的,文章是 ai 代写的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3089 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 13:00 · PVG 21:00 · LAX 06:00 · JFK 09:00
    ♥ Do have faith in what you're doing.