Loading...
Loading...
Compare original and translation side by side
git log --since="2 weeks ago"git bisectgit log --since="2 weeks ago"git bisect| # | Hypothesis | Category | Evidence | Testability | Test Plan |
|---|---|---|---|---|---|
| 1 | Cache returns stale data after update | State | Log shows old value 2s after write | Easy | Bypass cache and compare |
| 2 | Race condition between two workers | Race condition | Intermittent, high load correlation | Medium | Add locking, stress test |
| 3 | Upstream API returns unexpected format | Integration | No evidence yet | Easy | Log raw response |
| 序号 | 假设内容 | 类别 | 证据 | 可测试性 | 测试方案 |
|---|---|---|---|---|---|
| 1 | 更新后缓存返回过期数据 | 状态类 | 日志显示写入2秒后仍返回旧值 | 易 | 绕过缓存并对比结果 |
| 2 | 两个工作线程间存在竞态条件 | 竞态条件类 | 问题间歇性出现,与高负载相关 | 中 | 添加锁机制,进行压力测试 |
| 3 | 上游API返回非预期格式 | 集成类 | 暂无相关证据 | 易 | 记录原始响应内容 |
| Category | First Move | Key Technique |
|---|---|---|
| Logic error | Read the code, trace conditions | Rubber duck walkthrough, truth tables |
| Data issue | Inspect actual vs expected data at each boundary | Boundary logging, data flow trace |
| State/race condition | Add timestamps to all state mutations | Sequence diagram, concurrency analysis |
| Integration failure | Check API contract compliance | Request/response logging, contract tests |
| Performance | Profile before guessing | Profiler, flame graphs, query analysis |
| Environment | Compare working vs broken env | Differential analysis, config audit |
| Intermittent/flaky | Increase observability first | Statistical logging, stress testing |
| 类别 | 首要操作 | 核心技巧 |
|---|---|---|
| 逻辑错误 | 阅读代码,追踪条件分支 | 橡皮鸭调试法、真值表分析 |
| 数据问题 | 检查每个边界处的实际数据与预期数据 | 边界日志、数据流追踪 |
| 状态/竞态条件 | 为所有状态变更添加时间戳 | 时序图、并发分析 |
| 集成失败 | 检查API契约合规性 | 请求/响应日志、契约测试 |
| 性能问题 | 先分析性能再做猜测 | 性能分析器、火焰图、查询分析 |
| 环境问题 | 对比正常环境与故障环境 | 差异分析、配置审计 |
| 间歇性/不稳定问题 | 先提升可观察性 | 统计日志、压力测试 |
| Situation | Escalate To |
|---|---|
| Design or architecture issues | Architect |
| Cannot reproduce, need more info | QA team |
| Scope, priority, or trade-off questions | PM / Product Owner |
| Dependency or infrastructure issues | Platform / DevOps team |
| Security implications discovered | Security team immediately |
| 场景 | 升级至 |
|---|---|
| 设计或架构问题 | 架构师 |
| 无法复现,需要更多信息 | QA团队 |
| 范围、优先级或权衡问题 | 产品经理/产品负责人 |
| 依赖项或基础设施问题 | 平台/DevOps团队 |
| 发现安全隐患 | 立即升级至安全团队 |
| Phase | Team Integration |
|---|---|
| Reproduce | QA provides bug reports with reproduction steps; request more detail if insufficient |
| Investigate | Architect can help map component dependencies and blast radius |
| Fix | Code review by a peer before merge — a second pair of eyes catches fix-induced regressions |
| Prevent | Post-mortem shared with the team; action items tracked in the backlog |
| Situation | Recommended Skill |
|---|---|
| Bug fix reveals design problems | Install |
| Fix involves refactoring | Install |
| SOLID violation is root cause | Install |
| PR for the fix | Use |
| 阶段 | 团队协作 |
|---|---|
| 重现问题 | QA提供带有复现步骤的Bug报告;若信息不足,请求补充细节 |
| 展开调查 | 架构师可协助梳理组件依赖关系和影响范围 |
| 实施修复 | 合并前由同事进行代码评审——第二双眼睛可发现修复引入的回归问题 |
| 预防复发 | 与团队分享事后复盘文档;将改进措施纳入待办事项跟踪 |
| 场景 | 推荐技能 |
|---|---|
| Bug修复暴露了设计问题 | 安装 |
| 修复涉及重构 | 安装 |
| 根本原因是SOLID原则违反 | 安装 |
| 为修复编写PR描述 | 使用 |