Files
cutThink_lite/docs/PHASE5_TESTING.md

415 lines
8.1 KiB
Markdown
Raw Permalink Normal View History

# Phase 5 - AI 分类功能测试指南
本文档提供 AI 分类功能的详细测试步骤和验证方法。
## 前置条件
### 1. 环境准备
```bash
# 确保在项目根目录
cd /home/congsh/CodeSpace/ClaudeSpace/cutThink_lite
# 安装依赖(如果尚未安装)
npm install
# 启动开发服务器
npm run tauri dev
```
### 2. API Key 准备
#### Claude API Key
1. 访问 https://console.anthropic.com/
2. 登录或注册账号
3. 进入 API Keys 页面
4. 创建新的 API Key
5. 保存 Key格式sk-ant-xxx
#### OpenAI API Key
1. 访问 https://platform.openai.com/api-keys
2. 登录或注册账号
3. 点击 "Create new secret key"
4. 保存 Key格式sk-xxx
## 测试步骤
### 测试 1: AI 配置功能
#### 步骤
1. 启动应用
2. 点击 "⚙️ AI 配置" 按钮
3. 选择 Claude 配置
4. 输入 Claude API Key
5. 选择模型推荐claude-3-5-sonnet-20241022
6. 点击 "保存并启用 Claude"
#### 预期结果
- ✅ 保存成功提示
- ✅ "已配置" 徽章显示
- ✅ "AI 功能: 可用"
#### 测试 OpenAI
1. 切换到 OpenAI 配置
2. 输入 OpenAI API Key
3. 选择模型推荐gpt-4o
4. 点击 "保存并启用 OpenAI"
#### 预期结果
- ✅ 保存成功提示
- ✅ 提供商切换成功
### 测试 2: 模板管理功能
#### 步骤
1. 点击 "📝 模板管理" 按钮
2. 查看内置模板列表
3. 应该看到 4 个内置模板:
- 通用分类
- 代码片段分类
- 票据发票分类
- 对话内容分类
#### 预期结果
- ✅ 所有内置模板正确显示
- ✅ 每个模板显示名称、描述、变量数量
### 测试 3: 模板测试功能
#### 步骤
1. 在模板管理界面
2. 双击 "通用分类" 模板
3. 在测试对话框中输入变量:
```
content_type: text
content: 这是一段关于 Python 编程的代码示例
```
4. 点击 "运行测试"
#### 预期结果
- ✅ 显示渲染后的 System Prompt
- ✅ 显示渲染后的 User Prompt
- ✅ User Prompt 包含输入的内容
### 测试 4: 创建自定义模板
#### 步骤
1. 点击 "+ 新建模板"
2. 填写模板信息:
```
名称: 文档分类
描述: 用于分类文档类型
分类: documents
系统提示词: 你是一个文档分类专家
用户提示词模板: 请分类此文档:{{content}}
```
3. 点击 "保存模板"
#### 预期结果
- ✅ 模板保存成功
- ✅ 出现在自定义模板列表中
- ✅ 可以编辑、测试、导出、删除
### 测试 5: 模板导入/导出
#### 导出测试
1. 选择任意自定义模板
2. 点击 "导出" 按钮
3. 保存 JSON 文件
#### 预期结果
- ✅ 文件下载成功
- ✅ JSON 格式正确
#### 导入测试
1. 点击 "导入模板" 按钮
2. 选择刚才导出的文件
3. 检查导入结果
#### 预期结果
- ✅ 模板导入成功
- ✅ ID 自动更新避免冲突
### 测试 6: 文本分类(非流式)
#### 准备测试内容
```
def hello_world():
print("Hello, World!")
return True
```
#### 步骤
1. 创建或选择一条文本记录
2. 粘贴上述代码
3. 打开 AI 分类功能
4. 选择 "代码片段分类" 模板
5. 取消勾选 "流式模式"
6. 点击 "开始分类"
#### 预期结果
- ✅ 分类执行中提示
- ✅ 分类结果显示:
- 主分类: 代码
- 子分类: Python
- 置信度: > 0.8
- 标签包含: Python, 编程, 函数
### 测试 7: 文本分类(流式)
#### 步骤
1. 使用相同的测试内容
2. 勾选 "流式模式"
3. 点击 "开始分类"
#### 预期结果
- ✅ 显示 "实时预览" 区域
- ✅ 文本逐步显示
- ✅ 完成后显示完整结果
### 测试 8: OCR 内容分类
#### 准备测试图片
1. 截取包含文本的图片(如代码截图、发票等)
2. 确保 OCR 功能已配置
#### 步骤
1. 对图片执行 OCR
2. 获得 OCR 文本后
3. 点击 "AI 分类"
4. 选择合适的模板
5. 执行分类
#### 预期结果
- ✅ OCR 文本正确传递
- ✅ 分类结果准确
- ✅ 置信度合理
### 测试 9: 分类历史
#### 步骤
1. 对同一条记录执行多次分类
2. 使用不同模板
3. 查看分类历史
#### 预期结果
- ✅ 每次分类都记录在历史中
- ✅ 显示时间戳
- ✅ 显示每次的分类结果
### 测试 10: 分类统计
#### 步骤
1. 对多条记录执行分类
2. 确保至少有 5-10 条记录
3. 查看分类统计
#### 预期结果
- ✅ 显示所有分类
- ✅ 每个分类显示数量
- ✅ 按数量降序排列
### 测试 11: 错误处理
#### 无效 API Key 测试
1. 输入无效的 API Key
2. 尝试执行分类
#### 预期结果
- ✅ 显示错误提示
- ✅ 不崩溃或挂起
#### 网络错误测试
1. 断开网络连接
2. 尝试执行分类
#### 预期结果
- ✅ 显示网络错误
- ✅ 优雅处理
#### 无效模板测试
1. 创建包含无效变量的模板
2. 尝试使用该模板
#### 预期结果
- ✅ 显示模板错误
- ✅ 不执行 API 调用
### 测试 12: 性能测试
#### 大文本测试
1. 准备 5000 字以上的长文本
2. 执行分类
#### 预期结果
- ✅ 分类正常完成
- ✅ 响应时间 < 30 秒
- ✅ UI 不卡顿
#### 批量测试
1. 准备 10 条记录
2. 快速连续分类
#### 预期结果
- ✅ 所有请求都处理
- ✅ 限流正常工作
- ✅ 无请求失败
## 测试用例
### 用例 1: 代码分类
```
输入: Python 代码片段
预期: category=代码, subcategory=Python, confidence>0.9
```
### 用例 2: 对话分类
```
输入: 聊天记录
预期: category=对话, confidence>0.8
```
### 用例 3: 票据分类
```
输入: 发票 OCR 文本
预期: category=票据, 包含金额信息, confidence>0.7
```
### 用例 4: 通用文本
```
输入: 随机文章段落
预期: category=文本或文章, confidence>0.6
```
## 验证清单
### 功能验证
- [ ] Claude API 正常工作
- [ ] OpenAI API 正常工作
- [ ] 所有内置模板可加载
- [ ] 自定义模板 CRUD 正常
- [ ] 模板导入/导出正常
- [ ] 非流式分类正常
- [ ] 流式分类正常
- [ ] 分类结果保存
- [ ] 分类历史记录
- [ ] 分类统计准确
### 用户体验验证
- [ ] 界面直观易用
- [ ] 加载状态清晰
- [ ] 错误提示友好
- [ ] 响应速度快
- [ ] 结果展示清晰
### 性能验证
- [ ] 单次分类 < 10 秒
- [ ] 流式响应延迟 < 2 秒
- [ ] 内存占用合理
- [ ] CPU 占用正常
### 安全性验证
- [ ] API Key 安全存储
- [ ] 输入验证正常
- [ ] HTTPS 通信
- [ ] 错误信息不泄露敏感数据
## 常见问题
### Q: 分类结果不准确
**A:**
1. 尝试不同的模板
2. 调整 Prompt 模板
3. 使用更强的模型(如 Claude Opus
4. 提供更多上下文信息
### Q: API 调用失败
**A:**
1. 检查 API Key 是否正确
2. 检查网络连接
3. 检查 API 配额
4. 查看错误详情
### Q: 流式响应卡住
**A:**
1. 检查网络稳定性
2. 切换到非流式模式
3. 重试请求
### Q: 分类速度慢
**A:**
1. 使用更快的模型(如 Claude Haiku
2. 减少输入内容长度
3. 调整 max_tokens 参数
## 测试报告模板
```markdown
# AI 分类功能测试报告
**测试日期:** YYYY-MM-DD
**测试人员:** [姓名]
**环境:** [开发/生产]
## 测试结果摘要
- 总测试项: XX
- 通过: XX
- 失败: XX
- 通过率: XX%
## 详细结果
### 功能测试
| 测试项 | 状态 | 备注 |
|-------|------|------|
| AI 配置 | ✅/❌ | |
| 模板管理 | ✅/❌ | |
| 文本分类 | ✅/❌ | |
| 流式分类 | ✅/❌ | |
### 性能测试
| 指标 | 目标 | 实际 | 状态 |
|-----|------|------|------|
| 响应时间 | <10s | XXs | ✅/❌ |
| 流式延迟 | <2s | XXs | ✅/❌ |
### 问题和建议
1. [问题描述]
- 重现步骤:
- 预期结果:
- 实际结果:
- 严重程度: 低/中/高
### 总体评价
[总体评价和建议]
```
## 下一步
完成测试后:
1. **修复问题**
- 记录所有发现的问题
- 按优先级修复
- 重新测试验证
2. **优化改进**
- 根据测试结果优化
- 改进用户体验
- 提升性能
3. **文档更新**
- 更新用户文档
- 添加常见问题
- 编写使用教程
4. **发布准备**
- 代码审查
- 最终测试
- 发布说明
---
需要帮助?查看:
- [Phase 5 集成指南](./PHASE5_INTEGRATION.md)
- [Phase 5 实现总结](./PHASE5_SUMMARY.md)