Files

110 lines
4.9 KiB
Markdown
Raw Permalink Normal View History

2026-09-12 12:20:01 +08:00
# 测试报告(当前三项功能与项目数据集)
> 测试日期:2026-09-12
> 测试对象:`D:\nanfangjijin\group_fqcd_jr`,分支 `yc`
> 测试数据:`D:\nanfangjijin\group_fqcd_jr\data`
> 执行方式:独立 MySQL 测试库 `jr_agent_test` + 本地离线数据集验证
> 测试依据:根目录 `docs/项目测试/测试架构.md`
## 1. 测试概况
### 1.1 数据集概况
| 数据类型 | 数量 | 验证结果 |
|---|---:|---|
| 场外邮件 `.eml` | 13 | 全部可解析,均包含 1 个附件 |
| 推介业绩文件 `.csv/.xlsx` | 8 | 全部通过 `parse_performance_file`,共 373 行 |
| 图片、照片、海报 `.png/.jpg` | 35 | 全部通过 Pillow 文件校验 |
| 推介材料 `.pptx` | 10 | 全部可被 `python-pptx` 打开,共 100 页 |
| PDF 文件 | 9 | 全部具备有效 PDF 文件头 |
### 1.2 三项功能结果
| 功能 | 验证内容 | 结果 |
|---|---|---|
| 场外基金申购/赎回 | 识别字段、规则计算、NL2SQL、确认、通知、发送幂等 | **通过** |
| 产品推介材料生成 | 真实业绩文件解析、曲线、PPTX、海报、权限和审核交付流程 | **通过** |
| 金融 NL2SQL | 意图分类、表白名单、只读查询、模糊问题确认、场外查询字段 | **通过** |
补充:使用目录中的实际 XLSX 与经理照片生成临时产物成功:
- 业绩曲线 PNG:生成成功;
- PPTX:3 页,生成成功;
- 海报 PNG:`1800×2600`,生成成功。
### 1.3 自动化回归
| 测试范围 | 通过 | 失败 | 跳过/阻塞 | 说明 |
|---|---:|---:|---:|---|
| 三功能定向单元、契约测试 | 69 | 0 | 0 | 通过 |
| 场外集成回归(修正测试身份后) | 10 | 0 | 0 | 之前 8 条失败已全部恢复 |
| 全量测试 | 559 | 0 | 1 | 独立测试库执行,1 项 Redis 集成测试跳过 |
## 2. 缺陷清单
### 2.1 已修复:场外旧集成用例使用失效的操作人编号
| 项 | 内容 |
|---|---|
| 涉及接口 | 场外确认、NL2SQL 触发、识别重试、通知创建与发送 |
| 涉及用例 | `tests/integration/test_offsite_fund_api.py`、`tests/integration/test_offsite_notification_send.py` |
| 复现 | 测试上下文 `user_id="1"`,请求体继续传 `operator_id="operator-001"` |
| 修复结果 | 将成功路径的 `operator_id` 同步为测试上下文用户 `"1"` |
| 复测结果 | `tests/integration/test_offsite_fund_api.py` 与 `tests/integration/test_offsite_notification_send.py` 共 10 项全部通过 |
| 结论 | 生产操作人防伪校验保持不变,问题属于旧集成测试数据不同步 |
### 2.2 已修复:适当性单元测试与当前服务接口不同步
| 项 | 内容 |
|---|---|
| 文件 | `tests/unit/service/test_suitability_service.py` |
| 修复结果 | 测试改为使用 `SuitabilityToolInput`、`RequestContext` 和权威风险画像替身 |
| 复测结果 | 适当性单元测试 `9 passed`,全量测试可正常收集 |
### 2.3 已处理:权威文档编号检查
| 项 | 内容 |
|---|---|
| 检查 | `python tools/check_authoritative_docs.py` |
| 处理 | 将明确标记为历史稿的旧文档排除出当前编号校验 |
| 实际结果 | `checked 18 documents, no number collision` |
| 结论 | 当前权威接口文档编号检查通过 |
### 2.4 已修复:静态类型检查兼容性问题
涉及 `offsite_fund_service.py`、`model_gateway.py`、`health_service.py`、`worker/runtime.py`。
本轮补齐邮件解析类型声明并处理标准库 `BytesParser` 与 `policy.default` 的类型存根兼容性后,
`python -m mypy app` 已通过(124 个源文件)。
## 3. 未覆盖风险
| 项目 | 原因 | 风险等级 |
|---|---|---|
| 真实 IMAP 收信 | `.env` 中真实收信开关关闭,本次使用离线 `.eml` 数据集 | 中 |
| 真实 OCR / DeepSeek | 外部识别开关关闭,未调用真实外部服务 | 中 |
| 真实 SMTP | SMTP 关闭且 dry-run,未发送真实邮件 | 高 |
| Redis | 健康检查显示不可用,真实限流链路未覆盖 | 中 |
| Neo4j | `127.0.0.1:7687` 连接被拒绝,关系链路未覆盖 | 中 |
| Milvus | 未执行真实连接验证 | 中 |
| 前端浏览器端到端 | 本轮未启动前端浏览器验收 | 低 |
| 性能压测 | 未执行 `performance_baseline.py` | 低 |
## 4. 验收结论
| 验收项 | 结论 |
|---|---|
| 数据集文件可读、可解析 | **通过** |
| 产品推介材料真实数据生成 | **通过** |
| 金融 NL2SQL 定向单元/契约测试 | **通过** |
| 场外申购赎回完整人工确认与通知闭环 | **通过** |
| 参数校验与越权基础回归 | **通过(已执行范围内)** |
| 防重与操作人身份校验 | **通过** |
| 自动化回归 100% | **通过(559/559,另 1 项跳过)** |
| 本轮总体验收 | **通过(Redis 外部链路除外)** |
## 5. 建议
1. 启动 Redis 后补跑真实限流链路,消除本轮唯一跳过项。
2. 配置并启动真实 IMAP、OCR/DeepSeek、SMTP、Neo4j、Milvus 后补跑外部依赖链路。
3. 启动前端后补做浏览器端到端验收。