测试方案
文档版本: 1.0.0
最后更新: 2026-04-19
维护者: 项目开发团队
目录
- 测试策略总览
- 单元测试
- 功能测试
- 集成测试
- 系统测试
- 接口测试
- 端到端测试
- 验收测试
- 测试环境
- 覆盖率要求
1. 测试策略总览
1.1 测试目标
确保系统在功能正确性、安全性、性能、可靠性等方面满足需求规格。
1.2 测试原则
| 原则 |
说明 |
| 分层测试 |
按测试金字塔模型,单元测试数量最多、执行最快 |
| 模块独立 |
各模块测试完全独立,跨模块交互通过集成测试覆盖 |
| 可重复性 |
所有测试使用隔离环境,确保可重复执行 |
| 自动化优先 |
所有测试自动化执行 |
1.3 测试级别定义
| 级别 |
职责 |
执行频率 |
工具 |
| 单元测试 |
验证单个函数/类的行为正确性 |
每次提交 |
pytest, pytest-cov |
| 功能测试 |
验证用户操作流程和 UI 交互 |
每次提交 |
pytest, Playwright |
| 集成测试 |
验证跨组件、跨模块交互 |
每日/PR |
pytest, FastAPI TestClient |
| 系统测试 |
验证部署、性能、安全、兼容性 |
每个迭代 |
Docker, wrk |
| 接口测试 |
验证 REST API 契约一致性 |
每次提交 |
pytest, httpx |
| E2E 测试 |
验证完整用户旅程 |
每个迭代 |
Playwright |
| 验收测试 |
验证需求验收标准 |
发布前 |
手动 + 自动化 |
1.4 覆盖率要求概览
| 模块类别 |
最低覆盖率 |
适用范围 |
| 核心模块 |
>90% |
|
| 重要模块 |
>85% |
|
| 其他模块 |
>75% |
|
2. 单元测试
2.1 测试框架和工具
| 工具 |
用途 |
适用范围 |
| pytest |
测试框架 |
全部 |
| pytest-cov |
覆盖率报告 |
全部 |
| pytest-mock |
Mock 和 Patch |
全部 |
| faker |
测试数据生成 |
全部 |
| tmp_path |
临时文件和目录 |
文件操作 |
2.2 测试文件组织
2.3 Mock 策略
| 策略 |
说明 |
| 数据库隔离 |
每个测试用例使用独立的内存 SQLite |
| 文件系统隔离 |
使用 tmp_path 创建临时目录 |
| 网络隔离 |
Mock 所有外部 HTTP 请求 |
3. 功能测试
4. 集成测试
4.1 测试范围
5. 系统测试
5.1 性能测试策略
5.2 安全测试策略
6. 接口测试
7. 端到端测试
7.1 核心用户旅程
8. 验收测试
8.1 验收标准来源
| 来源 |
文档 |
验收标准 |
| 用户需求 |
01-用户需求.md |
SC-001 ~ SC-NNN |
| 用户故事 |
04-用户故事.md |
用户场景验证 |
9. 测试环境
| 配置项 |
要求 |
| 操作系统 |
|
| Python 版本 |
3.12+ |
| 数据库 |
SQLite 3.45+ |
10. 覆盖率要求
10.1 覆盖率标准
| 模块 |
最低覆盖率 |
适用范围 |
| 核心模块 |
>90% |
|
| 重要模块 |
>85% |
|
| 其他模块 |
>75% |
|
10.2 覆盖率统计方法
版本历史:
- v1.0.0 (2026-04-19): 初始化模板