返回技能市场

Bug Root Cause Analysis

当某个 Bug 频繁复现、线上有缺陷需要做事后分析、或者发现同一类问题反复出现需要根治时使用此技能。从症状出发用 5Why、因果图和鱼骨图等方法系统化定位缺陷根源,区分直接原因、间接原因和系统原因。不要只修症状——根因分析的价值在于找到让同类 Bug 不再发生的系统性改进措施,同时分析漏测原因来优化测试设计。 ⚠️ 本技能示例可能调用外部日志/监控工具,请在受控环境执行。

版本: 1.0.1分类: 设计创作
中文

SKILL.md

⚠️ 本技能单独使用效果有限,建议配合完整技能集(12 步工作流)使用。安装:npx skills add Kokxi/qa-test-skills

⚠️ 安全警告:本技能的示例可能涉及订单号、支付金额、截图、身份证、手机号等敏感数据。 实际使用时请勿粘贴真实生产数据、客户信息或财务凭证;测试前应脱敏/掩码处理。 本技能仅在 workspace/ 输出评估文件,不持久化、不外传、不跨会话复用。

Bug根因分析

核心原则

看到错误,能快速缩小根因范围——这不是魔法,是可学习的映射模式。

加载时机

什么时候读读哪个
定位到具体症状后,查对应的根因与验证手段references/symptom-rca-map.md

症状分类与根因映射的完整内容已下沉至 references/symptom-rca-map.md,避免每次触发都占用上下文。

分析流程

步骤1:收集信息

信息收集清单:
├─ 症状描述:具体表现是什么?
├─ 复现步骤:怎么复现?
├─ 环境信息:什么环境下出现?
├─ 时间信息:什么时候出现?
├─ 影响范围:影响多大?
└─ 相关日志:日志有什么?

步骤2:分类症状

根据症状表现分类:
- 返回错误 → 代码/数据/配置/依赖层
- 数据不对 → 写入/读取/同步/转换问题
- 性能退化 → 数据库/代码/缓存/资源问题
- 没反应 → 前端/网络/后端/中间件问题
- 偶发问题 → 并发/环境/数据/时序问题

步骤3:缩小范围

根据症状分类,逐层排查:
1. 先排除外部因素(依赖/环境)
2. 再排除配置因素
3. 再排查数据因素
4. 最后排查代码因素

步骤4:验证假设

验证方法:
1. 复现问题
2. 修改假设条件
3. 验证问题是否消失
4. 确认根因

根因分析表

Bug ID症状分类根因方向根本原因验证方法
BUG-001返回错误数据层数据格式错误修改数据后验证
BUG-002性能退化数据库慢查询添加索引后验证

症状分类速查

从现象到根因方向

现象症状分类大概率方向优先排查
报500错误返回错误后端异常/数据异常日志ERROR + 入参数据
返回空数据返回错误查询条件/权限过滤SQL日志 + 权限配置
页面白屏返回错误前端解析/接口数据格式F12看接口响应
金额不对数据不对计算逻辑/精度问题核对计算公式
状态不更新数据不对状态机/回调处理检查状态流转日志
账单对不上数据不对数据一致性/事务问题核对多个数据源
页面越来越慢性能退化慢查询/数据累积慢SQL日志
高峰期就挂性能退化并发/资源不足压测复现+监控
点按钮没反应没反应前端事件绑定/接口不通F12看请求是否发出
加载中不动没反应后端处理卡住/死锁线程堆栈+DB锁查询
偶尔支付失败偶发问题并发冲突/超时并行多次复现
特定时间出问题偶发问题定时任务/缓存过期核对定时任务时间+缓存策略
只有某用户出问题偶发问题数据隔离/权限对比正常/异常用户数据

输出示例

Bug描述:"用户支付成功但订单状态仍为待支付" → 症状分类:数据不一致(症状2) → 根因映射:数据层问题→检查支付回调处理逻辑 → 分析流程:

  1. 收集信息:支付网关回执、订单日志、数据库记录
  2. 分类症状:数据不一致
  3. 缩小范围:支付回调→订单状态更新→数据库写入
  4. 验证假设:手动触发回调验证状态变更

Bug描述:"页面加载越来越慢" → 症状分类:性能退化(症状3)→ 数据库/缓存层排查

检查清单

根因分析完成后检查:

  • 是否收集了完整信息?
  • 是否正确分类症状?
  • 是否逐层排查根因?
  • 是否验证了根因假设?
  • 根因描述是否清晰?
  • 验证方法是否可行?

评论与讨论

0/2000

还没有评论,分享你的体验吧。