pangu-user-platform/docs/06-测试文档/软件测试计划_v1.0.md

389 lines
11 KiB
Markdown
Raw Permalink 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.

# 盘古用户平台 - 软件测试计划
---
| 文档信息 | 内容 |
|---------|------|
| **文档版本** | 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
---
*本测试计划将指导盘古用户平台的全面测试工作,确保系统质量达到生产环境部署标准。*