Files
team/docs/10-测试-方案.md
arno 34346be862
All checks were successful
CI / lint (push) Successful in 6s
配置: 初始化 ISOS Agent Teams 软件研发模板
2026-04-19 21:47:08 +08:00

4.6 KiB

测试方案

文档版本: 1.0.0 最后更新: 2026-04-19 维护者: 项目开发团队


目录

  1. 测试策略总览
  2. 单元测试
  3. 功能测试
  4. 集成测试
  5. 系统测试
  6. 接口测试
  7. 端到端测试
  8. 验收测试
  9. 测试环境
  10. 覆盖率要求

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 测试文件组织

apps/<module>/
└── tests/
    ├── conftest.py              # 公共 fixtures
    ├── unit/                    # 单元测试
    │   ├── services/            # 业务逻辑层测试
    │   └── api/                 # API 路由层测试
    └── integration/             # 集成测试

2.3 Mock 策略

策略 说明
数据库隔离 每个测试用例使用独立的内存 SQLite
文件系统隔离 使用 tmp_path 创建临时目录
网络隔离 Mock 所有外部 HTTP 请求

3. 功能测试


4. 集成测试

4.1 测试范围

范围 说明 关联 FR

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 覆盖率统计方法

# 生成覆盖率报告
uv run pytest tests/ --cov=src --cov-report=term-missing

# 生成 HTML 覆盖率报告
uv run pytest tests/ --cov=src --cov-report=html

版本历史:

  • v1.0.0 (2026-04-19): 初始化模板