# 测试调试

本指南介绍如何测试和调试 AI 助手，确保其行为符合预期。

## 测试面板

在助手详情页，点击 **测试** 按钮打开测试面板。

### 功能介绍

| 功能 | 说明 |
|------|------|
| 文本对话 | 直接输入文字进行测试 |
| 语音测试 | 使用麦克风进行语音对话 |
| 查看日志 | 实时查看系统日志 |
| 事件追踪 | 查看 WebSocket 事件流 |

## 测试用例设计

### 基础功能测试

| 测试项 | 输入 | 预期结果 |
|--------|------|---------|
| 问候响应 | "你好" | 友好的问候回复 |
| 功能介绍 | "你能做什么？" | 准确描述能力范围 |
| 开场白 | 连接后自动 | 播放配置的开场白 |

### 业务场景测试

根据助手定位设计测试用例：

```
场景：产品咨询助手

测试用例 1：常见问题
- 输入："产品有哪些功能？"
- 预期：准确列出主要功能

测试用例 2：价格询问
- 输入："多少钱？"
- 预期：提供价格信息或引导方式

测试用例 3：超出范围
- 输入："帮我写一首诗"
- 预期：礼貌拒绝并引导回业务话题
```

### 边界测试

| 测试项 | 输入 | 预期结果 |
|--------|------|---------|
| 空输入 | "" | 提示用户输入内容 |
| 超长输入 | 1000+ 字符 | 正常处理或提示过长 |
| 特殊字符 | "<script>alert(1)</script>" | 安全处理，不执行 |
| 敏感内容 | 不当言论 | 拒绝回复并提示 |

## 日志分析

### 查看日志

在测试面板的 **日志** 标签页，可以看到：

- ASR 识别结果
- LLM 推理过程
- TTS 合成状态
- 工具调用记录

### 常见日志

```
[ASR] transcript.final: "你好，请问有什么可以帮你"
[LLM] request: messages=[...]
[LLM] response: "您好！我是..."
[TTS] synthesizing: "您好！我是..."
[TTS] audio.start
[TTS] audio.end
```

## 事件追踪

在 **事件** 标签页查看完整的 WebSocket 事件流：

```json
{"type": "session.started", "timestamp": 1704067200000}
{"type": "input.speech_started", "timestamp": 1704067201000}
{"type": "transcript.delta", "data": {"text": "你"}}
{"type": "transcript.delta", "data": {"text": "好"}}
{"type": "transcript.final", "data": {"text": "你好"}}
{"type": "assistant.response.delta", "data": {"text": "您"}}
{"type": "assistant.response.final", "data": {"text": "您好！..."}}
{"type": "output.audio.start"}
{"type": "output.audio.end"}
```

## 性能指标

关注以下性能指标：

| 指标 | 说明 | 建议值 |
|------|------|--------|
| TTFB | 首字节时间 | < 500ms |
| 识别延迟 | ASR 处理时间 | < 1s |
| 回复延迟 | LLM 推理时间 | < 2s |
| 合成延迟 | TTS 处理时间 | < 500ms |

## 常见问题排查

### 助手不响应

1. **检查连接状态**
   - 确认 WebSocket 连接成功
   - 查看是否收到 `session.started` 事件

2. **检查模型配置**
   - 确认 LLM 模型 API Key 有效
   - 测试模型连接是否正常

3. **查看错误日志**
   - 打开浏览器开发者工具
   - 检查 Console 和 Network 标签

### 回复质量差

1. **优化提示词**
   - 增加更明确的指令
   - 添加示例和约束

2. **调整温度参数**
   - 降低 temperature 提高一致性
   - 适当值通常在 0.3-0.7

3. **补充知识库**
   - 上传相关文档
   - 提高检索相关性

### 语音问题

1. **ASR 识别不准**
   - 检查麦克风权限
   - 尝试更换 ASR 引擎
   - 添加热词提高识别率

2. **TTS 不播放**
   - 检查浏览器自动播放限制
   - 确认 TTS 配置正确

## 自动化测试

使用自动化测试功能进行批量测试：

1. 进入 **自动化测试** 页面
2. 创建测试任务
3. 配置测试用例
4. 运行测试并查看报告

详见 [自动化测试](../analysis/autotest.md)。

## 下一步

- [自动化测试](../analysis/autotest.md) - 批量测试
- [历史记录](../analysis/history.md) - 查看对话记录
- [效果评估](../analysis/evaluation.md) - 评估对话质量
