⚠️ 安全警告:本技能的示例可能涉及代码变更分析(新增/修改/删除/重构)。 实际使用时请勿直接基于评审结论修改源码,先与开发确认变更范围和回归风险。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。
测试视角的代码评审
核心原则
看代码不是为了Review代码质量,而是判断变更影响范围、识别需要重点回归的区域。
代码读取许可:本技能需要读取代码变更(git diff)进行分析,仅关注测试影响,不评估代码质量。
深度要求(参考值)
关键指标:根据代码变更复杂度调整CR深度
| 复杂度 | CR检查点要求 | 说明 |
|---|---|---|
| 简单变更 | 5-8个检查点 | 单文件/配置/文案变更 |
| 中等变更 | 12-20个检查点 | 多文件/逻辑修改 |
| 复杂变更 | 25-40个检查点 | 重构/重写/核心模块变更 |
测试视角CR四看
第1看:看diff(改了什么)
分析维度:
├─ 新增文件:新增了哪些文件?
├─ 修改文件:修改了哪些文件?
├─ 删除文件:删除了哪些文件?
├─ 代码行数:新增/修改/删除多少行?
└─ 变更类型:功能/修复/重构/配置?
关注点:
- 核心逻辑变更
- 数据库变更
- 配置变更
- 接口变更
第2看:看影响(波及哪里)
分析维度:
├─ 调用方:哪些地方调用了这个方法?
├─ 数据流向:数据从哪来、到哪去?
├─ 接口变更:对外接口有没有变?
├─ 数据库变更:表结构/索引有没有变?
└─ 配置变更:配置项有没有变?
关注点:
- 影响范围评估
- 需要回归的区域
- 需要新增的测试场景
第3看:看风险模式(有什么风险)
风险模式识别:
├─ 静态数据变化:硬编码的值变了
├─ 超时/重试:涉及超时或重试逻辑
├─ 异常吞没:异常被catch但没处理
├─ 并发处理:涉及多线程/分布式锁
├─ 状态管理:涉及状态变更
├─ 权限控制:涉及认证/授权
├─ 数据转换:涉及格式/类型转换
└─ 外部依赖:涉及第三方服务
关注点:
- 每个风险模式对应的测试场景
- 需要重点验证的区域
第4看:看测试建议(怎么测)
测试建议输出:
├─ 回归测试:哪些功能需要回归?
├─ 新增测试:需要新增哪些测试场景?
├─ 重点测试:哪些区域需要深测?
├─ 性能测试:是否需要性能测试?
└─ 安全测试:是否需要安全测试?
输出格式:
[变更描述]
├─ 影响范围:[影响的功能/模块]
├─ 回归范围:[需要回归的功能]
├─ 新增场景:[需要新增的测试场景]
├─ 重点区域:[需要深测的区域]
└─ 测试建议:[具体的测试建议]
代码评审检查清单
功能变更检查
- 业务逻辑是否正确?
- 边界条件是否处理?
- 异常处理是否完善?
- 数据校验是否完整?
数据变更检查
- 数据库变更是否兼容?
- 数据迁移是否安全?
- 索引变更是否影响性能?
- 数据一致性是否保证?
接口变更检查
- 接口入参是否兼容?
- 接口出参是否变化?
- 错误码是否变化?
- 文档是否更新?
配置变更检查
- 配置项是否新增?
- 默认值是否合理?
- 环境差异是否考虑?
- 回滚方案是否准备?
性能变更检查
- 是否有性能影响?
- 是否有内存泄漏风险?
- 是否有并发问题?
- 是否有资源竞争?
应用场景
开发提交了登录模块的代码变更 → CR四看分析:
- 看diff:修改了LoginController.java,新增密码加密逻辑
- 看影响:影响登录流程、密码验证、Session创建
- 看风险模式:加密算法变更可能导致兼容性问题
- 看测试建议:回归登录成功/失败流程,新增加密算法兼容性测试
配置项变更(数据库连接池大小调整) → 影响范围评估:确定需要回归的接口和场景
自检清单
代码评审完成后检查:
- 是否分析了diff内容?
- 是否评估了影响范围?
- 是否识别了风险模式?
- 是否给出了测试建议?
- 建议是否可执行?
检查清单
- 变更类型是否识别?
- 影响范围是否分析?
- 高风险模式是否标注?
- 回归范围是否建议?
- 可测试性问题是否提出?
评论
加载中…