# 盘古用户平台 - 软件测试计划

---

| 文档信息 | 内容 |
|---------|------|
| **文档版本** | V1.0 |
| **项目名称** | 盘古用户平台（Pangu User Platform） |
| **编写人** | 软件测试专家 |
| **创建日期** | 2026-02-01 |
| **测试类型** | 功能测试 + 性能测试 |

---

## 一、测试概述

### 1.1 测试目标

本测试计划旨在全面验证盘古用户平台的功能完整性、系统性能和稳定性，确保系统达到生产环境部署标准。

**核心目标**：
1. 验证所有业务功能正确性（功能测试）
2. 评估系统性能指标（性能测试）
3. 发现并记录系统缺陷
4. 提供数据支持部署决策

### 1.2 测试范围

#### 包含范围

**功能测试**：
- ✅ 学校管理模块（完整CRUD）
- ✅ 会员管理模块（完整CRUD）
- ✅ 学生管理模块（完整CRUD）
- ✅ 应用管理模块（完整CRUD）
- ✅ 基础数据模块（区域、年级、班级、学科）
- ✅ 业务流程测试（学生绑定、批量导入等）

**性能测试**：
- ✅ API响应时间测试
- ✅ 并发用户测试
- ✅ 数据库查询性能
- ✅ 系统资源占用

#### 不包含范围

- ❌ 安全渗透测试（后续专项测试）
- ❌ 兼容性测试（限定环境）
- ❌ 移动端H5测试（暂未开发）
- ❌ 小程序测试（暂未开发）

### 1.3 测试环境

| 环境组件 | 配置 | 说明 |
|---------|------|------|
| **操作系统** | macOS 25.2.0 / CentOS 7+ | 开发/生产环境 |
| **Java** | JDK 17 | LTS版本 |
| **Spring Boot** | 2.7.18 | 应用框架 |
| **数据库** | MySQL 8.0 | 8.148.25.55:3306 |
| **后端服务** | localhost:8080 | API服务 |
| **前端服务** | localhost:3000 | Vue应用 |
| **测试工具** | curl, ab, JMeter | 性能测试 |

### 1.4 测试数据

**真实数据库数据**：
- 数据库：`pguser-db`
- 12张业务表
- 真实测试数据（非Mock）

---

## 二、测试策略

### 2.1 功能测试策略

#### 测试方法

1. **黑盒测试**
   - 基于需求文档验证功能
   - 边界值测试
   - 等价类划分

2. **接口测试**
   - REST API接口测试
   - 参数验证测试
   - 错误处理测试

3. **业务流程测试**
   - 端到端业务流程
   - 数据一致性验证

#### 测试优先级

| 优先级 | 测试内容 | 覆盖率目标 |
|--------|---------|:----------:|
| **P0** | 核心CRUD操作 | 100% |
| **P1** | 业务流程 | 100% |
| **P2** | 边界场景 | 80% |
| **P3** | 异常场景 | 60% |

### 2.2 性能测试策略

#### 测试方法

1. **响应时间测试**
   - 单接口响应时间
   - 平均响应时间
   - 95分位响应时间

2. **并发测试**
   - 模拟多用户并发访问
   - 测试系统吞吐量
   - 观察资源占用

3. **压力测试**
   - 逐步增加负载
   - 找到系统瓶颈
   - 评估系统极限

#### 性能指标

| 指标 | 目标值 | 优秀值 |
|------|--------|--------|
| API响应时间 | ≤500ms | ≤200ms |
| 列表查询 | ≤300ms | ≤150ms |
| 详情查询 | ≤200ms | ≤100ms |
| 新增/编辑 | ≤500ms | ≤200ms |
| 并发用户 | ≥50 | ≥100 |
| TPS | ≥100 | ≥200 |

---

## 三、功能测试计划

### 3.1 学校管理模块测试

| 测试项 | 测试场景 | 预期结果 | 优先级 |
|--------|---------|---------|:------:|
| 学校列表查询 | 分页查询、条件筛选 | 返回正确数据 | P0 |
| 学校树形结构 | 按区域展示学校树 | 树形结构正确 | P0 |
| 学校详情查询 | 根据ID查询 | 返回完整信息 | P0 |
| 新增学校 | 提交完整信息 | 创建成功，生成编码 | P0 |
| 编辑学校 | 修改学校信息 | 更新成功 | P0 |
| 删除学校 | 软删除学校 | 标记删除 | P0 |
| 挂载年级 | 为学校挂载年级 | 关联成功 | P1 |
| 挂载班级 | 为年级挂载班级 | 关联成功 | P1 |
| 学校编码唯一性 | 重复编码 | 拒绝创建 | P2 |
| 数据权限 | 跨区域访问 | 权限控制 | P1 |

### 3.2 会员管理模块测试

| 测试项 | 测试场景 | 预期结果 | 优先级 |
|--------|---------|---------|:------:|
| 会员列表查询 | 分页查询、关键词搜索 | 返回正确数据 | P0 |
| 会员详情查询 | 查看会员完整信息 | 包含绑定学生 | P0 |
| 新增会员 | 创建新会员 | 生成会员编号 | P0 |
| 编辑会员 | 修改会员信息 | 更新成功 | P0 |
| 删除会员 | 软删除会员 | 检查学生绑定 | P0 |
| 重置密码 | 重置会员密码 | 生成新密码 | P1 |
| 切换状态 | 启用/停用会员 | 状态更新 | P1 |
| 绑定学生 | 会员绑定学生 | 关联成功 | P1 |
| 解绑学生 | 解除学生绑定 | 解绑成功 | P1 |
| 手机号唯一性 | 重复手机号 | 拒绝创建 | P2 |

### 3.3 学生管理模块测试

| 测试项 | 测试场景 | 预期结果 | 优先级 |
|--------|---------|---------|:------:|
| 学生列表查询 | 分页查询、多条件筛选 | 返回正确数据 | P0 |
| 学生详情查询 | 查看学生完整信息 | 包含会员信息 | P0 |
| 新增学生 | 创建新学生（无会员） | 创建成功 | P0 |
| 编辑学生 | 修改学生信息 | 更新成功 | P0 |
| 删除学生 | 软删除学生 | 解除会员绑定 | P0 |
| 学号唯一性 | 检查学号重复 | 正确验证 | P2 |
| 批量导入 | Excel导入学生 | 批量创建 | P1 |
| 下载模板 | 下载导入模板 | 获取Excel | P1 |
| 批量导出 | 导出学生数据 | 生成Excel | P1 |

### 3.4 应用管理模块测试

| 测试项 | 测试场景 | 预期结果 | 优先级 |
|--------|---------|---------|:------:|
| 应用列表查询 | 查询所有应用 | 返回正确数据 | P0 |
| 应用详情查询 | 查看应用完整信息 | 包含授权接口 | P0 |
| 新增应用 | 创建新应用 | 生成密钥 | P0 |
| 编辑应用 | 修改应用信息 | 更新成功 | P0 |
| 删除应用 | 软删除应用 | 标记删除 | P0 |
| 重置密钥 | 重新生成密钥 | 生成新密钥 | P1 |
| API授权 | 授权接口给应用 | 关联成功 | P1 |
| API接口列表 | 查看可授权接口 | 返回字典 | P1 |

### 3.5 基础数据模块测试

| 测试项 | 测试场景 | 预期结果 | 优先级 |
|--------|---------|---------|:------:|
| 区域列表 | 树形查询区域 | 省市区结构 | P0 |
| 年级列表 | 查询所有年级 | 返回字典 | P0 |
| 班级列表 | 查询所有班级 | 返回字典 | P0 |
| 学科列表 | 查询所有学科 | 返回字典 | P0 |

---

## 四、性能测试计划

### 4.1 响应时间测试

**测试接口**：
1. 学校列表查询（/api/school/list）
2. 会员列表查询（/api/member/list）
3. 学生列表查询（/api/student/list）
4. 学校详情查询（/api/school/{id}）
5. 新增学生（/api/student POST）

**测试方法**：
- 单次请求响应时间
- 连续10次请求平均响应时间
- 记录最小值、最大值、平均值

### 4.2 并发测试

**测试场景**：
- 模拟10个并发用户
- 模拟50个并发用户
- 模拟100个并发用户

**测试接口**：
- 学校列表查询（高频接口）
- 学生列表查询（高频接口）

**观察指标**：
- 请求成功率
- 平均响应时间
- CPU使用率
- 内存使用率

### 4.3 压力测试

**测试方法**：
- 逐步增加并发数（10, 20, 50, 100, 200）
- 每个级别持续60秒
- 记录系统表现

**观察指标**：
- 系统瓶颈点
- 最大并发数
- 错误率变化
- 响应时间变化

---

## 五、测试工具

### 5.1 功能测试工具

| 工具 | 用途 | 说明 |
|------|------|------|
| curl | API接口测试 | 命令行HTTP客户端 |
| Shell脚本 | 批量测试 | 自动化测试脚本 |
| Postman | 接口调试 | 可选GUI工具 |

### 5.2 性能测试工具

| 工具 | 用途 | 说明 |
|------|------|------|
| curl | 响应时间测试 | -w参数测量时间 |
| ab (Apache Bench) | 并发测试 | Apache自带工具 |
| wrk | 压力测试 | 高性能HTTP基准测试 |
| top/htop | 资源监控 | 系统资源监控 |

---

## 六、测试进度计划

### 6.1 测试阶段

| 阶段 | 时间 | 内容 | 负责人 |
|------|------|------|--------|
| **测试计划** | 0.5小时 | 制定测试计划 | 测试专家 |
| **环境准备** | 0.5小时 | 验证测试环境 | 测试专家 |
| **功能测试** | 2小时 | 执行功能测试 | 测试专家 |
| **性能测试** | 1.5小时 | 执行性能测试 | 测试专家 |
| **缺陷修复** | 按需 | 修复发现的问题 | 开发团队 |
| **回归测试** | 1小时 | 验证修复效果 | 测试专家 |
| **测试报告** | 1小时 | 编写测试报告 | 测试专家 |

### 6.2 里程碑

| 里程碑 | 完成标准 | 预期日期 |
|--------|---------|----------|
| 测试计划完成 | 测试计划评审通过 | 2026-02-01 |
| 功能测试完成 | 100%用例执行完成 | 2026-02-01 |
| 性能测试完成 | 所有性能指标达标 | 2026-02-01 |
| 测试报告完成 | 测试报告提交审核 | 2026-02-01 |

---

## 七、测试交付物

### 7.1 必须交付

1. ✅ 软件测试计划（本文档）
2. ⏳ 功能测试用例清单
3. ⏳ 功能测试执行记录
4. ⏳ 性能测试报告
5. ⏳ 缺陷列表（如有）
6. ⏳ 最终测试报告

### 7.2 可选交付

1. 测试数据说明
2. 自动化测试脚本
3. 性能测试数据图表

---

## 八、风险与应对

### 8.1 测试风险

| 风险 | 影响 | 概率 | 应对措施 |
|------|------|:----:|---------|
| 测试环境不稳定 | 高 | 低 | 提前验证环境 |
| 测试数据不完整 | 中 | 中 | 准备完整测试数据 |
| 时间不足 | 中 | 低 | 优先测试P0用例 |
| 工具不可用 | 低 | 低 | 准备备用工具 |

### 8.2 通过标准

**功能测试通过标准**：
- ✅ P0用例通过率：100%
- ✅ P1用例通过率：≥95%
- ✅ P2用例通过率：≥80%
- ✅ 无阻塞性缺陷

**性能测试通过标准**：
- ✅ API平均响应时间：≤500ms
- ✅ 并发50用户：成功率≥99%
- ✅ 系统资源占用：合理范围
- ✅ 无性能瓶颈

---

## 九、附录

### 9.1 测试用例模板

```
测试用例ID: TC_MODULE_001
测试项: 功能名称
前置条件: 系统状态、测试数据
测试步骤:
  1. 操作步骤1
  2. 操作步骤2
  3. 操作步骤3
预期结果: 期望的系统响应
实际结果: （执行后填写）
测试结果: PASS/FAIL
备注: 其他说明
```

### 9.2 缺陷报告模板

```
缺陷ID: BUG_001
缺陷标题: 简短描述
严重程度: 阻塞/严重/一般/轻微
优先级: P0/P1/P2/P3
发现阶段: 功能测试/性能测试
重现步骤:
  1. 步骤1
  2. 步骤2
预期结果: 期望行为
实际结果: 实际行为
附件: 截图/日志
```

---

**测试计划编制人**：软件测试专家  
**审核人**：待审核  
**批准人**：待批准  
**版本**：V1.0  
**日期**：2026-02-01

---

*本测试计划将指导盘古用户平台的全面测试工作，确保系统质量达到生产环境部署标准。*
