# 测试方案 - 2026-04-29-21-51-19

## 对应实现方案
- 实现方案文档: `实现方案-2026-04-29-21-51-19.md`

## 测试范围
- 基础设施服务可达性
- FastAPI 后端启动与 API 响应
- 前端构建与后端联调
- SAM 3 模型加载与 GPU 可用性
- 文件上传与解析流程

## 测试用例

### 用例 1: 基础设施服务验证
- **前置条件**: 执行 start_services.sh
- **操作步骤**:
  1. `curl http://localhost:9000/minio/health/live` → MinIO
  2. `redis-cli ping` → Redis
  3. `sudo -u postgres psql -c "\\l"` → PostgreSQL
- **预期结果**: 全部返回正常响应
- **通过标准**: MinIO 200, Redis PONG, PostgreSQL 显示数据库列表

### 用例 2: Conda 环境 + GPU 验证
- **前置条件**: conda 环境已创建
- **操作步骤**:
  1. `conda activate seg_server`
  2. `python -c "import torch; print(torch.cuda.is_available())"`
- **预期结果**: 输出 True
- **通过标准**: PyTorch 识别到 CUDA

### 用例 3: SAM 3 权重下载验证
- **前置条件**: 运行 download_sam3.py
- **操作步骤**: 检查权重文件存在且大小合理
- **预期结果**: .pt/.pth 文件存在于 models/ 目录
- **通过标准**: 文件大小 > 100MB

### 用例 4: FastAPI 启动验证
- **前置条件**: 依赖安装完成
- **操作步骤**:
  1. `cd backend && uvicorn main:app --host 0.0.0.0 --port 8000`
  2. 访问 `http://localhost:8000/docs`
- **预期结果**: Swagger UI 正常显示，包含所有 API 路由
- **通过标准**: HTTP 200，路由列表完整

### 用例 5: 前端构建验证
- **前置条件**: 前端代码已改造
- **操作步骤**: `npm run lint && npm run build`
- **预期结果**: 无类型错误，构建成功
- **通过标准**: exit code 0

### 用例 6: 前后端联调验证
- **前置条件**: 前后端均运行中
- **操作步骤**:
  1. 前端访问 `http://localhost:3000`
  2. 打开浏览器 DevTools Network 面板
  3. 触发项目列表加载
- **预期结果**: 可见对 `http://localhost:8000/api/projects` 的请求，且返回 200
- **通过标准**: API 数据正确渲染到界面

### 用例 7: 文件上传验证
- **前置条件**: 媒体解析模块就绪
- **操作步骤**: 上传 @Data_MyVideo_1.mp4
- **预期结果**: 后端接收文件，存入 MinIO，触发解析任务
- **通过标准**: MinIO bucket 中出现文件，返回 job_id

## 回归测试
- [ ] 现有 React 组件无运行时错误
- [ ] 深色主题样式未被破坏
- [ ] Konva Canvas 可正常交互
- [ ] 构建产物体积未异常膨胀

## 测试环境
- OS: Ubuntu 22.04
- GPU: NVIDIA RTX 4090 24GB
- CUDA: 13.2
- Python: 3.11 (conda)
- Node.js: 22.x
