跳到主要内容

测试 · 质量

全绿却什么都没测的测试套件

审计一个 15 个代码仓库的 SaaS 平台的测试与 CI,让测试重新有意义

角色IT 业务分析师兼 QA/QC 负责人

本案例中的文档:测试套件审计、CI 审计
通过的后端测试
35 → 276
移除的假界面测试
146 → 0
两周内的自动化测试用例
901
发布前发现的数据隔离缺陷
10

客户名称已隐去;例子和数据均经过模拟。流程、方法与成果数据是真实的。

问题

产品是面向美国住宅建筑行业的 SaaS 平台:管理后台网页、工人移动应用和供应商门户,共 15 个代码仓库。CI 面板大多显示绿色,但缺陷仍然流到客户那里。

Jira,9 月初我兼任 QA/QC 负责人时积压的缺陷
  • 未关闭超过 30 天
  • 未关闭不到 30 天
  • 已不再打开
  • 244 个缺陷156 个未关闭

另有 51 个缺陷开发已修复,但仍在等待 QA 验证。

背景与角色

  • 我是美国客户的 BA 和主要对接人,同时支持 QA;从 2026 年 9 月起兼任 QA/QC 负责人。
  • 我无法在产品仓库提交合并请求,因此每个发现都必须附带足够证据,让开发自行修复。
  • 工作采用我设计的 AI 智能体辅助流程;每个结论我都对照真实运行日志核实。
  • 客户名称、产品名称和漏洞细节均已隐去。

第 1 步:审计测试套件

我在 6 个仓库中重新运行全部测试,逐类阅读测试,而不是相信 CI 上的绿色。

测试套件审计根因修复前后(2026.07)
  • 之前
  • 之后
  • 假界面测试,什么都不检查却总是通过✓ 146 → 0

    146
    0
  • 通过的后端测试✓ 35 通过,195 失败 → 276 通过,0 失败

    35 通过,195 失败
    276 通过,0 失败
  • 工人移动应用覆盖率✓ 12.6% → 21%

    12.6%
    21%
  • 供应商门户单元测试✓ 0 → 133

    0
    133
界面冒烟测试连续两次 89/89 通过,并被设为合并关卡。
原因195 个失败测试,其中 183 个源于同一原因
  • 因一个 jsonb 类型映射错误在初始化阶段失败
  • 其他错误组
  • 195 个失败测试195

第 2 步:审计 CI

CI 显示绿色不代表测试真的运行了。我把每个仓库的流水线配置与真实运行记录逐一对照(2026.09)。

CI 审计三处毫无意义的绿色
  1. 新代码
  2. 流水线许多测试套件从未被调用
    配置为忽略错误,仍显示绿色
  3. 测试步骤夜间任务:6/6 个子步骤失败
    没有任何仓库开启分支保护
  4. 合并到主分支
闲置的 Playwright 场景120
闲置的 Maestro 流程25
闲置的后端测试文件332
CI 修复,每处一行4足以重新启用上述测试

第 3 步:用 Tester Kit 测试每个工单

把工单、评论和合并请求拆成来源清单;每个测试用例都必须指向一个来源,再经过覆盖率关卡和另一个 AI 会话的独立审查后才运行。

Tester Kit
  1. 工单、评论、PR拆分为来源
  2. 有来源的测试用例
  3. 覆盖率关卡
  4. 独立审查另一个 AI 会话
  5. 运行 API 和界面
  6. 测试员签字一个 Excel 文件
运行次数,9 月最后 2 周31
自动化测试用例901
被拦下的“假通过”用例9报告通过,却没有检查验收标准

第 4 步:测试整个权限史诗

按公司划分的权限(多租户)被拆成多个工单。各个工单单独测试均通过。

为什么按史诗测试
  1. 各个工单单独测试均通过
  2. 工单交汇处新页面Excel 导出共享 API
  3. 数据泄露到其他公司
史诗测试结果按公司划分的权限
  • 通过
  • 真实缺陷
  • 其余
  • 146 个用例146

主要缺陷类型:一家公司的用户可以查看或下载另一家公司的数据。

结果

  • 后端测试恢复运行:从 35 通过、195 失败到 276 通过、0 失败;移除 146 个假测试;冒烟测试成为合并关卡。
  • 列出闲置测试的具体清单和重新启用它们的 4 处 CI 修复,并附运行记录为证。
  • 两周内 901 个自动化测试用例;9 个假通过在被采信前即被拦下。
  • 发布前发现 10 个跨公司数据隔离缺陷。

我的收获

  • 只有证明测试步骤真的在运行、真的能阻断,CI 的绿色才有意义。
  • 数百个失败测试往往只有几个共同原因;找到根因比逐个修补更快。
  • 权限缺陷出现在功能交汇处,必须在史诗层面测试,而不仅是逐个工单。
  • QA
  • CI/CD
  • 自动化测试
  • Playwright
  • 审计
  • 多租户

想聊聊这个案例?

联系