当功能已经上线了但还担心线上质量、或者需要设计灰度发布后的验证方案时使用此技能。通过生产监控(APM/日志/用户反馈)、线上巡检拨测、A/B 验证和混沌工程将测试延伸到生产环境。不要把上线当成终点——用户在生产环境的使用方式是永远测不全的。输出右移验证方案(灰度监控指标 + 拨测用例 + 告警阈值 + 回滚触发条件)。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
编程
测试左移
试用当项目还在需求阶段或者开发正在写代码时使用此技能——这时候介入能花最小的成本避免最多的缺陷。从需求可测试性评审(需求模糊/矛盾/不可测)、开发阶段测试设计(单元测试/接口契约/测试桩)和技术方案评审(影响面分析/风险识别)三个维度提前发现缺陷。越早发现 Bug 修复成本越低——需求阶段的 Bug 修复成本是线上阶段的 1/100。输出左移检查清单和阶段性介入记录。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
它能做什么
当项目还在需求阶段或者开发正在写代码时使用此技能——这时候介入能花最小的成本避免最多的缺陷。从需求可测试性评审(需求模糊/矛盾/不可测)、开发阶段测试设计(单元测试/接口契约/测试桩)和技术方案评审(影响面分析/风险识别)三个维度提前发现缺陷。越早发现 Bug 修复成本越低——需求阶段的 Bug 修复成本是线上阶段的 1/100。输出左移检查清单和阶段性介入记录。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
技能文档
测试左移实践
核心原则
测试左移——越早发现缺陷,修复成本越低。
左移阶段
阶段1:需求阶段
测试活动:
├─ 需求评审
│ ├─ 参与需求评审会议
│ ├─ 从测试角度提出问题
│ ├─ 识别需求不清晰/矛盾点
│ └─ 评估需求可测试性
│
├─ 验收标准
│ ├─ 协助定义验收标准(AC)
│ ├─ 确保AC可测试、可自动化
│ ├─ 明确输入/输出/边界
│ └─ 识别隐含需求
│
└─ 可测试性评估
├─ 评估接口是否可Mock
├─ 评估日志是否可追踪
├─ 评估配置是否可动态
└─ 评估数据是否可构造
阶段2:设计阶段
测试活动:
├─ 架构评审
│ ├─ 评估系统架构可测试性
│ ├─ 识别测试难点
│ ├─ 建议可测试设计
│ └─ 评估依赖服务Mock方案
│
├─ 接口设计评审
│ ├─ 评估接口设计合理性
│ ├─ 确认接口文档完整性
│ ├─ 评估错误码设计
│ └─ 评估版本兼容性
│
└─ 数据库设计评审
├─ 评估表结构设计
├─ 评估索引设计
├─ 评估数据迁移方案
└─ 评估数据一致性
阶段3:开发阶段
测试活动:
├─ 代码评审
│ ├─ 从测试角度Review代码
│ ├─ 识别潜在Bug模式
│ ├─ 评估异常处理
│ └─ 评估日志记录
│
├─ 单元测试支持
│ ├─ 协助开发设计测试用例
│ ├─ 提供测试数据建议
│ ├─ 验证单元测试覆盖
│ └─ 评审单元测试质量
│
└─ 接口测试
├─ 编写接口测试用例
├─ 验证接口契约
├─ 测试接口边界条件
└─ 执行接口自动化测试
需求可测试性
验收标准模板
## 验收标准(AC)
### 功能描述
[功能的简要描述]
### 验收条件
- [ ] 条件1:[具体条件]
- [ ] 条件2:[具体条件]
- [ ] 条件3:[具体条件]
### 输入
- 正常输入:[示例]
- 异常输入:[示例]
- 边界输入:[示例]
### 输出
- 正常输出:[预期结果]
- 异常输出:[错误信息]
- 边界输出:[边界处理]
### 验证方法
- [ ] 手动测试
- [ ] 自动化测试
- [ ] 接口测试
可测试性检查清单
接口层:
├─ [ ] 接口是否可Mock?
├─ [ ] 接口是否有测试接口?
├─ [ ] 接口文档是否完整?
└─ [ ] 接口版本是否管理?
数据层:
├─ [ ] 数据是否可构造?
├─ [ ] 数据是否可清理?
├─ [ ] 数据是否可查询?
└─ [ ] 数据是否可隔离?
日志层:
├─ [ ] 关键路径是否有日志?
├─ [ ] 日志级别是否合理?
├─ [ ] 是否有TraceId?
└─ [ ] 日志是否可查询?
配置层:
├─ [ ] 功能开关是否支持?
├─ [ ] 配置是否可动态修改?
├─ [ ] 测试配置是否独立?
└─ [ ] 配置变更是否有记录?
代码评审检查点
测试视角的CR
检查点:
├─ 业务逻辑
│ ├─ 条件判断是否正确?
│ ├─ 边界条件是否处理?
│ ├─ 异常情况是否考虑?
│ └─ 数据校验是否完整?
│
├─ 异常处理
│ ├─ 异常是否捕获?
│ ├─ 异常信息是否明确?
│ ├─ 异常恢复是否实现?
│ └─ 异常日志是否记录?
│
├─ 日志记录
│ ├─ 关键操作是否有日志?
│ ├─ 日志级别是否合理?
│ ├─ 敏感信息是否脱敏?
│ └─ TraceId是否传递?
│
└─ 性能影响
├─ 是否有N+1查询?
├─ 是否有内存泄漏风险?
├─ 是否有并发问题?
└─ 是否有性能瓶颈?
单元测试支持
单元测试检查清单
覆盖率:
├─ [ ] 核心逻辑覆盖?
├─ [ ] 分支覆盖?
├─ [ ] 边界覆盖?
└─ [ ] 异常覆盖?
质量:
├─ [ ] 测试命名清晰?
├─ [ ] 测试职责单一?
├─ [ ] 测试独立运行?
├─ [ ] 测试快速执行?
└─ [ ] 测试可维护?
输出示例
团队在需求评审阶段参与不足,导致上线后频繁需求变更 → 左移实践:
- 需求阶段:参与需求评审,定义验收标准(AC),推动可测试性检查
- 设计阶段:测试视角参与技术方案评审,识别设计缺陷
- 开发阶段:推动单元测试覆盖率,执行测试视角代码评审
用户说"怎么减少线上Bug" → 启动测试左移:从需求阶段开始介入,越早发现缺陷越便宜
检查清单
测试左移实施后检查:
- 需求评审是否参与?
- 验收标准是否定义?
- 可测试性是否评估?
- 代码评审是否执行?
- 单元测试是否支持?
- 接口测试是否实施?
相关技能
当团队里有测试新人需要带、想提升团队整体测试水平、或者需要把个人经验转化为团队能力时使用此技能。通过 Pair 测试、经验分享、checklist 沉淀、模板建设和培训材料等方式赋能团队。不要等着新人犯错再教——好的赋能是提前给工具和方法论,让新人在第一次做之前就知道"正确的做法是什么"。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当开发提了 PR、代码变更需要确定测试范围、或者想通过分析代码来预测可能出 Bug 的区域时使用此技能。从测试视角分析代码变更的影响范围、识别高危模式和典型风险区域。不要看完整代码逻辑——你只需要关注变更类型(新增/修改/删除/重构)、影响范围(接口定义/数据库字段/业务逻辑)和相关依赖,据此确定最小回归测试范围。输出代码变更影响分析报告。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当需要管理测试团队、制定团队目标和绩效标准、或者团队扩招需要面试标准时使用此技能。覆盖测试团队管理(目标设定/KPI 制定/人员成长)、绩效评估(能力模型/360 评估)、招聘面试(面试流程/技术评估标准)和组织建设。不要只管进度不管成长——一个稳定的测试团队靠的是每个人都在不断学习和进步。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当测试发现"这个功能测不了"、"加个日志就能定位"、"这个模块没法 Mock"时使用此技能。从可控性(能否控制测试条件)、可观察性(能否看到内部状态)、可隔离性(能否独立测试)、自动化性和可诊断性五个维度评估系统的可测试性水平,给出具体的系统改进建议和推动策略。可测试性差的系统一定质量差——不是因为系统本身不好,是因为你根本测不透它。输出可测试性评估报告和各维度的改造建议。 ⚠️ 本技能含废弃测试清理建议,执行前请确认非关键数据。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills
当新项目启动需要制定测试方案、或者迭代开始前需要确定"这期怎么测"时使用此技能。根据项目特征(新项目/迭代/重构/紧急修复)、风险分布和资源约束设计分层测试策略,明确测试范围、测试手段、准入准出标准和工具选型。一个好的测试策略让团队知道"测什么、不测什么、为什么"。输出包含风险矩阵、分级测试方案的测试策略文档。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills