Files
AIclinicalresearch/Phase2-测试指南.md
HaHafeng 855d142fec chore: add remaining test docs, scripts and temp files
- Add Git commit preparation checklist
- Add Phase testing guides and issue tracking
- Add utility scripts (env setup, test data initialization)
- Add temp migration SQL files (for reference)
- Update startup scripts and README
- Remove obsolete scripts
2025-11-16 15:44:55 +08:00

835 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧪 Phase 2 完整测试指南 - 双模式智能问答系统
**创建时间**2025-10-13
**测试目标**:验证全文阅读模式和逐篇精读模式的完整功能
**预计耗时**60-90分钟
**测试人员**____
---
## 📋 测试清单总览
```
☑️ 环境准备 (10分钟)
☑️ 服务启动验证 (5分钟)
☑️ 知识库准备 (15-20分钟)
☑️ 全文阅读模式测试 (15分钟)
☑️ 逐篇精读模式测试 (20分钟)
☑️ 端到端场景测试 (15分钟)
☑️ 问题记录与汇总 (5分钟)
```
---
## 🔧 Part 1: 环境准备10分钟
### 1.1 检查系统要求
**必需服务**
- [ ] Docker Desktop 已启动
- [ ] Python 3.11+ 已安装(虚拟环境)
- [ ] Node.js 18+ 已安装
- [ ] PostgreSQL容器运行中
- [ ] Redis容器运行中
**检查命令**
```bash
docker ps
# 应该看到postgres、redis容器
python --version
# 应该看到Python 3.11.x 或更高
node --version
# 应该看到v18.x.x 或更高
```
---
### 1.2 检查代码同步
**Phase 2关键文件**
```
✅ extraction_service/ # Python微服务
✅ backend/src/clients/ExtractionClient.ts
✅ backend/src/services/tokenService.ts
✅ frontend/src/components/chat/FullTextMode.tsx
✅ frontend/src/components/chat/DeepReadMode.tsx
✅ frontend/src/components/chat/DocumentSelector.tsx
```
**验证方法**
```bash
cd D:\MyCursor\AIclinicalresearch
# 检查Python微服务
dir extraction_service\main.py
# 检查Backend文件
dir backend\src\clients\ExtractionClient.ts
# 检查Frontend组件
dir frontend\src\components\chat\FullTextMode.tsx
```
---
## 🚀 Part 2: 服务启动验证5分钟
### 2.1 一键启动(推荐)
```bash
cd D:\MyCursor\AIclinicalresearch
.\一键启动.bat
```
**等待时间**约30秒
**预期结果**
- 窗口1Python微服务端口8000
- 窗口2Backend服务端口3001
- 窗口3Frontend服务端口3000
- 自动打开浏览器http://localhost:3000
---
### 2.2 手动启动(备选)
**Terminal 1: Python微服务**
```bash
cd D:\MyCursor\AIclinicalresearch\extraction_service
.\start.bat
```
✅ 看到:`Uvicorn running on http://0.0.0.0:8000`
**Terminal 2: Backend**
```bash
cd D:\MyCursor\AIclinicalresearch\backend
npm run dev
```
✅ 看到:`Server listening on http://0.0.0.0:3001`
**Terminal 3: Frontend**
```bash
cd D:\MyCursor\AIclinicalresearch\frontend
npm run dev
```
✅ 看到:`Local: http://localhost:3000/`
---
### 2.3 服务健康检查
**Python微服务健康检查**
```bash
# 浏览器访问
http://localhost:8000/api/health
# 预期返回
{
"status": "healthy",
"nougat_available": true,
"pymupdf_version": "1.23.8"
}
```
**Backend健康检查**
```bash
http://localhost:3001/health
# 预期返回
{
"status": "ok",
"timestamp": "2025-10-13T..."
}
```
**Frontend访问**
```bash
http://localhost:3000
# 预期:能看到登录页面或主页
```
---
## 📚 Part 3: 知识库准备15-20分钟
### 3.1 准备测试文档
**推荐文档类型**
1. **PDF文档**3-5个
- 英文学术论文测试Nougat
- 中文学术论文测试PyMuPDF
- 混合语言文档
2. **Docx文档**1-2个
- Word格式的研究报告
3. **Txt文档**1个
- 纯文本文献摘要
**文档大小建议**
- PDF每个5-20页1-5MB
- Docx每个5-10页<2MB
- Txt每个<1MB
---
### 3.2 创建测试知识库
**步骤**
1. **访问知识库管理**
```
http://localhost:3000/knowledge
```
2. **创建新知识库**
- 点击"创建知识库"
- 名称:`Phase2测试知识库`
- 描述:`用于测试双模式功能`
- 点击"确定"
3. **上传文档**
- 进入新知识库
- 点击"上传文档"
- 选择准备好的7-10个文档
- **等待处理完成**
**预期处理时间**
| 文档类型 | 页数 | 预计时间 |
|---------|-----|---------|
| 中文PDF | 20页 | 30-60秒 |
| 英文PDF | 20页 | 60-90秒 |
| Docx | 10页 | 10-20秒 |
| Txt | 1MB | 5-10秒 |
---
### 3.3 验证文档处理状态
**检查清单**
- [ ] 所有文档显示状态:`✅ 已就绪`
- [ ] 每个文档有Token数显示
- [ ] 每个文档有提取方法显示pymupdf/nougat/mammoth
- [ ] 没有文档显示"❌ 处理失败"
**如果有失败文档**
```
查看文档详情 → 查看失败原因 → 根据错误重新上传或删除
```
**验证文档信息**(点击文档查看详情):
```
✅ extractedText: 有内容(不为空)
✅ charCount: > 0
✅ tokensCount: > 0
✅ extractionMethod: "pymupdf" | "nougat" | "mammoth" | "direct_read"
✅ language: "chinese" | "english"
```
---
## 🌍 Part 4: 全文阅读模式测试15分钟
### 4.1 进入全文阅读模式
**步骤**
1. 访问:`http://localhost:3000/chat`
2. 左侧栏选择:`⚫ 知识库模式`
3. 选择知识库:`Phase2测试知识库`
4. 选择工作模式:`🌍 全文阅读`
**预期界面**
```
┌─────────────────────────────────────────────┐
│ 🌍 全文阅读模式 │
│ │
│ 📊 容量使用情况 │
│ ┌─────────────────────────────────────┐ │
│ │ 文件数: 7 / 50 篇 │ │
│ │ [████░░░░░░░░] 14% │ │
│ │ │ │
│ │ Token容量: 150K / 980K │ │
│ │ [███░░░░░░░░░] 15% │ │
│ └─────────────────────────────────────┘ │
│ │
│ 已加载文档7篇: │
│ • paper1.pdf (28K tokens) │
│ • paper2.pdf (25K tokens) │
│ • ... │
└─────────────────────────────────────────────┘
```
---
### 4.2 测试用例1文献综述问题
**测试目标**验证AI能否综合所有文献回答
**测试问题**
```
请总结这些文献的主要研究方向和核心观点。
```
**预期结果**
- ✅ AI能提到多篇文献至少3篇以上
- ✅ 回答包含不同文献的不同观点
- ✅ 有明确的引用标记:`[来源1]`、`[来源2]`等
- ✅ 点击引用标记能跳转到引用清单
**评分标准**5分制
- 5分涵盖所有文献综述全面
- 4分涵盖大部分文献70%+
- 3分涵盖一半文献50%+
- 2分只涵盖少数文献<50%
- 1分基本没有综合
**记录结果**
- 实际涵盖文献数____/7
- 评分:⭐⭐⭐⭐⭐
---
### 4.3 测试用例2趋势分析
**测试问题**
```
从这些文献中,你能看出该领域的研究趋势是什么?
```
**预期结果**
- ✅ 能识别跨文献的共同趋势
- ✅ 能对比不同时期的研究重点
- ✅ 分析有深度
**记录结果**
- 趋势识别准确度:⭐⭐⭐⭐⭐
- 分析深度:⭐⭐⭐⭐⭐
---
### 4.4 测试用例3快速查找
**测试问题**
```
哪些文献提到了[某个关键词]?请列出文献名称和具体内容。
```
**预期结果**
- ✅ 能准确找到包含关键词的文献
- ✅ 提供文献名称
- ✅ 引用具体内容片段
**记录结果**
- 查找准确率:⭐⭐⭐⭐⭐
---
### 4.5 容量显示测试
**测试目标**:验证容量指示器的准确性
**检查项**
- [ ] 文件数显示正确(与实际上传数一致)
- [ ] Token数显示合理与文档大小匹配
- [ ] 进度条百分比正确
- [ ] 颜色标识合理(<60%绿色60-80%黄色,>80%红色)
**记录**
- 显示文件数____ / 50
- 显示Token数____K / 980K
- 进度条颜色:🟢绿色 / 🟡黄色 / 🔴红色
---
## 🔍 Part 5: 逐篇精读模式测试20分钟
### 5.1 进入逐篇精读模式
**步骤**
1. 在智能问答页面
2. 切换工作模式:`🔍 逐篇精读`
3. **预期**:弹出文献选择器
---
### 5.2 测试用例4文献选择器
**功能检查**
**a) 显示所有可选文献**
- [ ] 能看到知识库中的所有文档
- [ ] 每个文档显示文件名、大小、Token数
**b) 多选功能**
- [ ] 可以勾选文献
- [ ] 最多只能选择5篇
- [ ] 选满5篇后其他变灰不可选
**c) 统计信息**
- [ ] 底部显示:`已选X篇`
- [ ] 底部显示:`共XXK tokens`
- [ ] 统计实时更新
**d) 确认选择**
- [ ] "确认选择"按钮可点击
- [ ] 点击后弹窗关闭
- [ ] 进入精读模式
**测试步骤**
1. 选择3篇文献不同类型
- paper1.pdf英文Nougat提取
- paper2.pdf中文PyMuPDF提取
- report.docxWord文档
2. 确认选择
**记录结果**
- 选择器UI体验⭐⭐⭐⭐⭐
- 功能完整性:✅ 完整 / ⚠️ 有缺陷 / ❌ 不工作
---
### 5.3 测试用例5逐篇精读界面
**预期界面**
```
┌─────────────────────────────────────────────┐
│ 🔍 逐篇精读模式 │
│ │
│ 📄 文献切换器 │
│ ┌───────┬───────┬───────┐ │
│ │paper1 │paper2 │report │ (3篇) │
│ │ 活跃 │ │ │ │
│ └───────┴───────┴───────┘ │
│ │
│ 当前文献: paper1.pdf (28K tokens) │
│ │
│ [对话区域...] │
└─────────────────────────────────────────────┘
```
**检查项**
- [ ] 显示所有选中的文献3个标签
- [ ] 当前文献高亮显示
- [ ] 显示当前文献的Token数
- [ ] 输入框提示包含当前文献名
---
### 5.4 测试用例6精读对话
**测试目标**验证AI专注于当前文献
**测试问题1**针对paper1.pdf
```
这篇文献的研究方法是什么?
```
**预期结果**
- ✅ AI回答专注于paper1.pdf
- ✅ 回答详细(有充足对话空间)
- ✅ 可以进行多轮追问
**测试问题2**(多轮对话):
```
继续问:样本量是多少?
继续问:统计分析方法是什么?
继续问:研究的局限性有哪些?
```
**预期结果**
- ✅ 每个问题都能得到详细回答
- ✅ AI记得之前的对话上下文
- ✅ 回答准确度高
**记录结果**
- 回答准确度:⭐⭐⭐⭐⭐
- 对话深度:⭐⭐⭐⭐⭐
- 上下文记忆:✅ 正常 / ❌ 有问题
---
### 5.5 测试用例7文献切换
**测试目标**:验证文献切换和对话历史独立性
**操作步骤**
1. **当前在paper1.pdf**
- 提问:"这篇文献的结论是什么?"
- 记录AI回答
2. **切换到paper2.pdf**
- 点击"paper2"标签
- **验证**对话区域清空显示paper2的历史为空
- 提问:"这篇文献的研究对象是什么?"
- 记录AI回答
3. **切换回paper1.pdf**
- 点击"paper1"标签
- **验证**:能看到之前的对话历史
- 继续提问:"请继续详细说明。"
- **验证**AI记得之前的上下文
**检查清单**
- [ ] 文献切换无延迟
- [ ] 对话历史正确保存
- [ ] 对话历史正确加载
- [ ] 上下文不混淆不会把paper2的问题混入paper1
**记录结果**
- 切换流畅度:⭐⭐⭐⭐⭐
- 历史保存:✅ 正常 / ❌ 有问题
- 上下文独立性:✅ 正常 / ❌ 混淆
---
### 5.6 测试用例8对话空间验证
**测试目标**:验证逐篇模式有充足的对话空间
**操作**
1. 选择1篇最大的文献如30K tokens
2. 进行10轮以上的深度对话
3. 观察AI回答质量是否下降
**预期**
- ✅ AI回答始终详细完整
- ✅ 不会出现"上下文太长"错误
- ✅ 对话空间充裕800K+ tokens
**记录结果**
- 对话轮数____轮
- 回答质量:⭐⭐⭐⭐⭐
- 是否出错:✅ 无错误 / ❌ 出错
---
## 🎯 Part 6: 端到端场景测试15分钟
### 6.1 场景1文献综述全文模式
**用户角色**:研究生,需要写文献综述
**操作流程**
1. 上传10篇相关文献到知识库
2. 选择"全文阅读模式"
3. 提问:"请总结这些文献的研究现状"
4. 提问:"有哪些研究空白?"
5. 提问:"未来研究方向是什么?"
**验收标准**
- ✅ 3个问题都能得到综合性回答
- ✅ 回答涵盖多篇文献
- ✅ 分析有深度
**记录**
- 场景完成度:✅ 完成 / ⚠️ 部分完成 / ❌ 未完成
- 用户体验:⭐⭐⭐⭐⭐
---
### 6.2 场景2核心论文精读精读模式
**用户角色**科研人员需要深度分析3篇核心论文
**操作流程**
1. 选择"逐篇精读模式"
2. 选择3篇核心论文
3. 对paper1进行5轮深度提问方法、数据、结论、局限性、创新点
4. 切换到paper2继续深度分析
5. 切换到paper3继续深度分析
**验收标准**
- ✅ 每篇论文都能进行多轮深度对话
- ✅ 文献切换流畅
- ✅ 对话历史正确保存
- ✅ AI回答准确详细
**记录**
- 场景完成度:✅ 完成 / ⚠️ 部分完成 / ❌ 未完成
- 用户体验:⭐⭐⭐⭐⭐
---
### 6.3 场景3模式切换
**测试目标**:验证两种模式可以自由切换
**操作流程**
1. 全文模式 → 提问1个综合问题
2. 切换到精读模式 → 选择2篇文献
3. 精读模式 → 深度分析paper1
4. 切换回全文模式 → 再问1个综合问题
5. 验证历史记录是否独立
**验收标准**
- ✅ 模式切换无错误
- ✅ 两个模式的对话历史独立
- ✅ 无数据丢失
**记录**
- 切换成功率____/4次
- 数据一致性:✅ 正常 / ❌ 有问题
---
## 📝 Part 7: 问题记录与汇总5分钟
### 7.1 功能完整性检查
| 功能模块 | 状态 | 备注 |
|---------|------|------|
| Python微服务启动 | ✅ / ❌ | |
| Backend服务启动 | ✅ / ❌ | |
| Frontend页面加载 | ✅ / ❌ | |
| 文档上传 | ✅ / ❌ | |
| 文档处理PDF | ✅ / ❌ | |
| 文档处理Docx | ✅ / ❌ | |
| 文档处理Txt | ✅ / ❌ | |
| Token计数 | ✅ / ❌ | |
| 容量指示器 | ✅ / ❌ | |
| 全文阅读模式 | ✅ / ❌ | |
| 文献选择器 | ✅ / ❌ | |
| 逐篇精读模式 | ✅ / ❌ | |
| 文献切换 | ✅ / ❌ | |
| 对话历史保存 | ✅ / ❌ | |
---
### 7.2 发现的问题清单
**严重问题(🔴 阻断性)**
1. _______________________________________________
2. _______________________________________________
**中等问题(🟡 影响使用)**
1. _______________________________________________
2. _______________________________________________
**轻微问题(🟢 不影响主流程)**
1. _______________________________________________
2. _______________________________________________
---
### 7.3 性能测试记录
| 指标 | 预期 | 实际 | 是否达标 |
|------|------|------|---------|
| 页面加载时间 | <2秒 | ___秒 | ✅ / ❌ |
| 文献选择器打开 | <1秒 | ___秒 | ✅ / ❌ |
| 文献切换响应 | <0.5秒 | ___秒 | ✅ / ❌ |
| AI首字响应 | <3秒 | ___秒 | ✅ / ❌ |
| 文档上传PDF 20页 | <60秒 | ___秒 | ✅ / ❌ |
---
### 7.4 用户体验评分
**整体体验**:⭐⭐⭐⭐⭐
**分项评分**
- 界面美观度:⭐⭐⭐⭐⭐
- 操作流畅度:⭐⭐⭐⭐⭐
- 功能易用性:⭐⭐⭐⭐⭐
- 错误提示清晰度:⭐⭐⭐⭐⭐
---
### 7.5 最终结论
**Phase 2验收结果**
✅ **通过验收** - 可以进入下一阶段
- 核心功能完整
- 性能达标
- 无阻断性问题
⚠️ **有条件通过** - 需要修复中等问题后再进入下一阶段
- 核心功能基本完整
- 有影响使用的问题
- 需要优先修复
❌ **未通过验收** - 需要继续完善
- 核心功能有缺失
- 有阻断性问题
- 无法正常使用
**测试人员签字**________
**测试日期**________
**建议**________________________________________________
---
## 🔧 附录A常见问题排查
### A.1 Python微服务无法启动
**症状**start.bat运行后报错
**排查步骤**
1. 检查虚拟环境
```bash
cd extraction_service
dir venv
```
2. 重新安装依赖
```bash
cd extraction_service
.\install.bat
```
3. 手动启动测试
```bash
cd extraction_service
venv\Scripts\activate
python main.py
```
---
### A.2 文档上传后一直"处理中"
**症状**:文档上传后长时间不变为"已就绪"
**排查步骤**
1. 检查Python微服务是否运行
```bash
http://localhost:8000/api/health
```
2. 查看Backend日志
- 找到Backend的Terminal窗口
- 查看是否有错误日志
3. 查看Python微服务日志
- 找到Python微服务的Terminal窗口
- 查看处理进度
4. 手动测试提取
```bash
http://localhost:8000/docs
# 使用Swagger UI测试 /api/extract 接口
```
---
### A.3 容量显示不准确
**症状**:容量指示器数字不对
**排查步骤**
1. 刷新页面
2. 检查Backend API
```bash
http://localhost:3001/api/v1/knowledge-bases/{kbId}/document-selection
```
3. 检查数据库数据
- 使用Prisma Studio查看documents表
- 验证tokensCount字段
---
### A.4 文献选择器空白
**症状**:点击"逐篇精读"后弹窗空白
**排查步骤**
1. 打开浏览器ConsoleF12
2. 查看是否有JavaScript错误
3. 检查Backend API
```bash
http://localhost:3001/api/v1/knowledge-bases/{kbId}/documents
```
4. 确认知识库中有已完成的文档
---
### A.5 文献切换后对话历史丢失
**症状**:切换文献后看不到之前的对话
**排查步骤**
1. 打开浏览器Console
2. 查看是否有React状态错误
3. 检查LocalStorage/SessionStorage
4. 尝试刷新页面重新进入
---
## 🔧 附录B测试数据准备建议
### B.1 推荐测试文档
**英文PDFNougat测试**
- 学术论文,包含表格和公式
- 大小5-20页
- 示例Nature、Science期刊论文
**中文PDFPyMuPDF测试**
- 中文学术论文
- 大小10-30页
- 示例:中文核心期刊论文
**Word文档Mammoth测试**
- 研究报告或综述
- 大小5-10页
- 包含段落、列表、表格
**文本文件(编码测试)**
- 纯文本文献摘要
- 大小:<1MB
- 测试UTF-8、GBK编码
---
### B.2 测试场景示例
**场景:阿尔兹海默病研究**
- 上传7-10篇相关论文
- 测试问题:
- "这些文献的主要研究方向是什么?"
- "有哪些治疗方法被提到?"
- "样本量分布是怎样的?"
**场景COVID-19研究**
- 上传8-12篇相关论文
- 测试问题:
- "这些文献发表在哪些期刊?"
- "研究方法有哪些?"
- "主要发现是什么?"
---
## 📞 联系与反馈
**测试问题反馈**
- 记录在本文档的"问题清单"部分
- 截图关键错误信息
- 记录复现步骤
**测试完成后**
- 保存此文档
- 整理测试结果
- 准备与开发团队Review
---
**祝测试顺利!** 🎉
如有任何问题,随时记录在"问题清单"中。