# 分析结果输出与 Bug 检查


本节从原 SKILL.md 的「Step 1: 分析被测类」拆分而来，详细说明 Bug 检查要求与结构化分析摘要的输出规范。


### Bug 检查要求

在阅读源码阶段，建议对被测代码进行 Bug 审查。**发现 Bug 时推荐不要让测试用例「绕过」或「迁就」该 Bug 使测试通过**，而应：

1. **让测试暴露 Bug**：断言应反映**正确的预期行为**，而非当前有缺陷的实际行为，使测试失败以暴露 Bug
2. **在测试方法上方标注**：用注释 `// Bug: <说明>` 标注该测试预期失败的原因
3. **同步告知用户**：生成测试完成后，在回复中明确列出发现的 Bug，说明位置和原因

**常见 Bug 类型：**

| Bug 类型 | 示例 | 应对方式 |
|---------|------|----------|
| 边界判断方向错误 | `> 0` 应为 `>= 0` | 测试临界值，断言正确预期结果（测试会失败，暴露 Bug） |
| 空指针风险 | 未判 null 直接调用方法 | 构造 null 入参，断言不抛异常 |
| 逻辑取反错误 | `if (!condition)` 逻辑反了 | 断言正确分支输出 |
| 数值计算错误 | 加减乘除逻辑有误 | 用具体数值断言期望的正确计算结果 |
| 集合判断遗漏 | 未判空直接取第一个元素 | 构造空集合，断言不抛异常 |


### 分析结果输出要求

**完成 Step 1 分析后，建议在回复中输出以下结构化摘要，并等待用户确认后再进入 Step 2：**

```
## 被测逻辑分析

**被测类**：全限定类名
**被测方法**：方法签名列表

### 核心逻辑梳理
- 列出每个被测方法的主要分支和执行路径

### 依赖识别
- 静态方法（需 MockedStatic）：列出类名.方法名
- 外部服务（需 Mock）：列出类名
- DynamicObject 字段：列出需构造的字段及类型

### Bug 检查结果
- 未发现 Bug  /  发现 Bug（详细说明位置和原因）
```

输出摘要后，**建议追加以下提示，等待用户反馈**：

> 以上为分析结果，如有以下情况请现在告知，否则回复「继续」即可开始生成代码：
> - Mock 依赖识别有误（如遗漏了某个 Helper、或识别了不需要 Mock 的类）
> - 分支覆盖策略需要调整
> - 有需要特殊处理的字段或业务规则

> 不得跳过此输出直接给出代码。即使逻辑简单，也建议输出“未发现 Bug”的结论。
