# OpenAkita 测试案例

> 测试日期：____________________
> 测试人员：____________________
> 使用模型：____________________

---

## 一、基础功能测试

### 1. 浏览器操作测试

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| B-01 | 简单打开网站 | `打开百度` | 调用 browser_navigate 打开百度 | 1 通过 / ⬜ 失败 | |
| B-02 | 搜索任务 | `打开谷歌搜索福州天气` | 导航→输入→点击搜索 | 1 通过 / ⬜ 失败 | |
| B-03 | 多步骤组合 | `打开B站，搜索Python教程` | 打开B站→搜索框输入→执行搜索 | ⬜ 通过 / 1 失败 | |
| B-04 | 截图发送 | `截图发我` | browser_screenshot + send_to_chat | 1 通过 / ⬜ 失败 | |
| B-05 | 重复执行 | (完成B-02后) `再来一遍` | 重新执行完整流程 | ⬜ 通过 / 1 失败 | |

### 2. 文件操作测试

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| F-01 | 创建文件 | `创建一个hello.txt，内容是你好世界` | 调用 write_file | 1 通过 / ⬜ 失败 | |
| F-02 | 读取文件 | `读取hello.txt的内容` | 调用 read_file | 1 通过 / ⬜ 失败 | |
| F-03 | 列出目录 | `看看当前目录有什么文件` | 调用 list_directory | 1 通过 / ⬜ 失败 | |
| F-04 | 执行脚本 | `写个Python脚本计算1到100的和，并执行` | write_file + run_shell | 0 通过 / 1 失败 | |

### 3. 定时任务测试

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| S-01 | 简单提醒 | `5分钟后提醒我喝水` | schedule_task (type=reminder) | ⬜ 通过 / 1 失败 | |
| S-02 | 任务类型判断 | `每天早上8点查天气告诉我` | schedule_task (type=task) | ⬜ 通过 / 1 失败 | |
| S-03 | 列出任务 | `我有哪些定时任务` | list_scheduled_tasks | ⬜ 通过 / 1 失败 | |
| S-04 | 取消任务 | `取消喝水提醒` | cancel_scheduled_task | ⬜ 通过 / 1 失败 | |

### 4. 桌面操作测试 (Windows)

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| D-01 | 桌面截图 | `截个桌面图` | desktop_screenshot | 1 通过 / ⬜ 失败 | |
| D-02 | 窗口操作 | `列出所有打开的窗口` | desktop_window(action='list') | 1 通过 / ⬜ 失败 | |
| D-03 | 打开应用 | `打开记事本` | run_shell("notepad") | 1 通过 / ⬜ 失败 | |
| D-04 | 输入文字 | (记事本打开后) `输入你好世界` | desktop_type | 1 通过 / ⬜ 失败 | |

---

## 二、核心规则遵守测试

### 5. 第一铁律测试（工具优先）

| 编号 | 测试案例 | 用户输入 | 期望行为 | 🔴 失败标志 | 结果 | 备注 |
|-----|---------|---------|---------|-----------|------|------|
| R-01 | 禁止敷衍 | `帮我查一下今天的新闻` | 必须调用搜索工具 | ❌ "我理解了您的请求" | 1 通过 / ⬜ 失败 | |
| R-02 | 禁止空谈 | `帮我创建一个todo.txt` | 必须调用 write_file | ❌ "好的，我明白了" | 1 通过 / ⬜ 失败 | |
| R-03 | 禁止推脱 | `打开浏览器访问github` | 必须有工具调用 | ❌ "让我来处理"但无调用 | 1 通过 / ⬜ 失败 | |
| R-04 | 必须行动 | `提醒我下午开会` | 必须调用 schedule_task | ❌ "我会提醒你" | ⬜ 通过 / 1 失败 | |

### 6. 第二铁律测试（自己解决问题）

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| R-05 | 报错自修 | `执行 not_exist_command` | 失败后自己分析，尝试替代方案 | 1 通过 / ⬜ 失败 | |
| R-06 | 缺信息自查 | `打开我昨天看的那个网站` | 用 search_memory 查找 | ⬜ 通过 / ⬜ 失败 | |

### 7. 永不放弃测试

| 编号 | 测试案例 | 用户输入 | 期望行为 | 🔴 失败标志 | 结果 | 备注 |
|-----|---------|---------|---------|-----------|------|------|
| R-07 | 工具失败 | 故意触发浏览器操作失败 | 换方法重试 | ❌ "我做不到" | ⬜ 通过 / ⬜ 失败 | |  无法结束，一直循环
| R-08 | 能力缺失 | `帮我分析这张图片的内容` | 调用图片理解技能 | ❌ "我没有这个能力" | ⬜ 通过 / ⬜ 失败 | |

---

## 三、复杂场景测试

### 8. 多轮对话测试

| 编号 | 测试案例 | 对话流程 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| C-01 | 上下文理解 | `打开百度` → `搜索天气` → `截图` | 正确理解"在百度搜索天气" | ⬜ 通过 / 1 失败 | |
| C-02 | 任务延续 | `打开谷歌` → `搜索AI` → `再来一遍` | 重复完整流程 | ⬜ 通过 / ⬜ 失败 | |
| C-03 | 中断恢复 | 执行中用户发新消息 | 优雅处理，不丢失任务 | ⬜ 通过 / ⬜ 失败 | |

### 9. 边界情况测试

| 编号 | 测试案例 | 用户输入 | 期望行为 | 结果 | 备注 |
|-----|---------|---------|---------|------|------|
| E-01 | 简单问候 | `你好` | 友好回复，可不调用工具 | ⬜ 通过 / 1 失败 | |
| E-02 | 知识问答 | `什么是机器学习` | 可直接回答，无需工具 | ⬜ 通过 / 1 失败 | |
| E-03 | 模糊指令 | `帮我弄一下那个` | 礼貌询问澄清 | ⬜ 通过 / ⬜ 失败 | |

---

## 四、一次性复杂任务测试

### 任务 1：网页搜索+截图+发送
```
打开百度，搜索"福州天气"，截图发给我
```
**验证点：** browser_navigate → browser_type → browser_click → browser_screenshot → send_to_chat

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 2：多网站对比
```
分别打开百度和谷歌，搜索"人工智能"，各截一张图发我
```
**验证点：** 两次完整搜索流程 + 两次截图发送

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 3：信息收集+文件保存
```
搜索今天的科技新闻，把前5条新闻标题整理成一个txt文件保存到桌面
```
**验证点：** 网页搜索 → 内容提取 → write_file

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 4：创建脚本并执行
```
写一个Python脚本，获取当前时间并保存到time.txt，然后执行这个脚本，最后读取time.txt的内容告诉我
```
**验证点：** write_file(脚本) → run_shell(执行) → read_file(读取结果)

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 5：定时任务+验证
```
创建一个2分钟后的提醒，内容是"测试提醒"，然后列出所有定时任务确认创建成功
```
**验证点：** schedule_task → list_scheduled_tasks

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 6：桌面自动化流程（Windows）
```
打开记事本，输入"Hello OpenAkita"，截个桌面图发我
```
**验证点：** run_shell(notepad) → desktop_wait → desktop_type → desktop_screenshot → send_to_chat

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 7：综合信息处理
```
查一下福州现在的天气，然后创建一个weather.md文件，用markdown格式记录城市、温度、天气状况
```
**验证点：** 网页搜索/MCP搜索 → 信息提取 → write_file(markdown格式)

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

### 任务 8：多步骤验证任务
```
在谷歌搜索"OpenAI"，点击第一个结果进入，等页面加载完后截图，然后回到谷歌首页再截一张图
```
**验证点：** 搜索 → 点击链接 → 等待 → 截图 → 后退/导航 → 截图

| 结果 | 备注 |
|------|------|
| ⬜ 通过 / ⬜ 失败 | |

---

## 五、测试执行建议

### 执行顺序
1. **优先测试 R-01 到 R-04** (第一铁律) - 这是最重要的
2. **再测试 B-01 到 B-05** (浏览器基础功能)
3. **然后 S-01 到 S-04** (定时任务)
4. **最后测试复杂任务 1-8**

### 重点关注
- [ ] 每次响应是否有工具调用
- [ ] 是否出现敷衍回复（"我理解了"、"好的我明白了"）
- [ ] 长对话后是否出现 `<minimax:tool_call>` 等异常格式
- [ ] 工具调用参数是否正确

### 问题记录

| 问题编号 | 发现时间 | 问题描述 | 对应 llm_debug 文件 | 严重程度 |
|---------|---------|---------|-------------------|---------|
| | | | | |
| | | | | |
| | | | | |

---

## 六、测试总结

### 通过率统计

| 测试类别 | 总数 | 通过 | 失败 | 通过率 |
|---------|-----|-----|-----|-------|
| 浏览器操作 (B) | 5 | | | |
| 文件操作 (F) | 4 | | | |
| 定时任务 (S) | 4 | | | |
| 桌面操作 (D) | 4 | | | |
| 核心规则 (R) | 8 | | | |
| 复杂场景 (C) | 3 | | | |
| 边界情况 (E) | 3 | | | |
| 复杂任务 | 8 | | | |
| **总计** | **39** | | | |

### 主要问题

1. 
2. 
3. 

### 优化建议

1. 
2. 
3. 
