326 lines
7.3 KiB
Markdown
326 lines
7.3 KiB
Markdown
|
|
---
|
|||
|
|
type: testing
|
|||
|
|
keywords: [测试, 验证, 检验, test, 质量保证, qa, 单元测试, 集成测试, 性能测试, 自动化测试]
|
|||
|
|
priority: medium
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 测试项目配置
|
|||
|
|
|
|||
|
|
本配置用于各类测试项目,包括功能测试、性能测试、安全测试等。
|
|||
|
|
|
|||
|
|
## 模板路径
|
|||
|
|
templates/testing_template.md
|
|||
|
|
|
|||
|
|
## 核心问题配置
|
|||
|
|
|
|||
|
|
### 问题 1:测试对象
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "需要测试哪个功能或系统?"
|
|||
|
|
type: "text"
|
|||
|
|
prompt: "请描述测试对象,包括功能名称、版本等"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 2:测试类型
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "主要测试什么方面?(可多选,或在'其他'中详细描述;需要帮助请输入'需要帮助')"
|
|||
|
|
options:
|
|||
|
|
- label: "功能是否正常工作"
|
|||
|
|
description: "验证功能符合预期"
|
|||
|
|
- label: "系统性能和速度"
|
|||
|
|
description: "检查响应时间、承载能力"
|
|||
|
|
- label: "安全性和数据保护"
|
|||
|
|
description: "检查是否有安全漏洞"
|
|||
|
|
- label: "多个功能协同工作"
|
|||
|
|
description: "验证各模块集成后的表现"
|
|||
|
|
multiSelect: true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 3:测试范围
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "需要测试哪些具体场景?"
|
|||
|
|
type: "text"
|
|||
|
|
prompt: |
|
|||
|
|
请列出关键的测试场景,比如:
|
|||
|
|
- 用户登录
|
|||
|
|
- 创建订单
|
|||
|
|
- 查询历史记录
|
|||
|
|
- 边界情况(极端输入)
|
|||
|
|
- 异常情况(网络中断、数据错误等)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 4:测试数据
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "测试时需要使用什么数据?(或在'其他'中描述;需要帮助请输入'需要帮助')"
|
|||
|
|
options:
|
|||
|
|
- label: "使用真实数据"
|
|||
|
|
description: "从生产环境或实际业务获取"
|
|||
|
|
- label: "使用模拟数据"
|
|||
|
|
description: "自己构造测试数据"
|
|||
|
|
- label: "两者都需要"
|
|||
|
|
description: "生产数据 + 模拟数据"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 5:测试方式
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "测试是手动进行还是自动化?(或在'其他'中描述;需要帮助请输入'需要帮助')"
|
|||
|
|
options:
|
|||
|
|
- label: "手动测试就够了"
|
|||
|
|
description: "人工操作和检查"
|
|||
|
|
- label: "希望自动化执行"
|
|||
|
|
description: "写脚本自动运行测试"
|
|||
|
|
- label: "部分自动化,部分手动"
|
|||
|
|
description: "混合模式"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 6:性能指标(如涉及性能测试)
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "如果测试性能,什么样的表现算合格?"
|
|||
|
|
type: "text"
|
|||
|
|
prompt: |
|
|||
|
|
比如:
|
|||
|
|
- "页面加载时间不超过 2 秒"
|
|||
|
|
- "支持 100 人同时使用不卡顿"
|
|||
|
|
- "处理 10000 条数据在 1 分钟内完成"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 7:验收标准
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "怎样才算测试通过?"
|
|||
|
|
type: "text"
|
|||
|
|
prompt: |
|
|||
|
|
请列出具体的通过标准,比如:
|
|||
|
|
- "所有核心功能无报错"
|
|||
|
|
- "性能指标达标"
|
|||
|
|
- "安全扫描无高危漏洞"
|
|||
|
|
- "覆盖率达到 80%"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 问题 8:测试环境
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
question: "在什么环境下进行测试?(或在'其他'中描述;需要帮助请输入'需要帮助')"
|
|||
|
|
options:
|
|||
|
|
- label: "开发环境(自己电脑)"
|
|||
|
|
description: "本地开发环境"
|
|||
|
|
- label: "专门的测试环境"
|
|||
|
|
description: "独立测试环境"
|
|||
|
|
- label: "接近真实的生产环境"
|
|||
|
|
description: "预生产环境"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 通用映射规则
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
# 测试类型 → 测试策略
|
|||
|
|
test_type_mapping:
|
|||
|
|
"功能测试":
|
|||
|
|
approach: "测试用例设计"
|
|||
|
|
tools: ["手动测试", "Selenium", "Cypress", "Playwright"]
|
|||
|
|
metrics: ["功能覆盖率", "缺陷密度"]
|
|||
|
|
|
|||
|
|
"性能测试":
|
|||
|
|
approach: "压力测试 + 监控"
|
|||
|
|
tools: ["JMeter", "Locust", "k6"]
|
|||
|
|
metrics: ["响应时间", "吞吐量", "资源占用"]
|
|||
|
|
|
|||
|
|
"安全测试":
|
|||
|
|
approach: "漏洞扫描 + 渗透测试"
|
|||
|
|
tools: ["OWASP ZAP", "Burp Suite", "SonarQube"]
|
|||
|
|
metrics: ["漏洞数量", "安全评级"]
|
|||
|
|
|
|||
|
|
"集成测试":
|
|||
|
|
approach: "接口测试 + 数据验证"
|
|||
|
|
tools: ["Postman", "pytest", "Jest"]
|
|||
|
|
metrics: ["接口覆盖率", "数据一致性"]
|
|||
|
|
|
|||
|
|
# 自动化程度 → 实现方式
|
|||
|
|
automation_mapping:
|
|||
|
|
"手动测试":
|
|||
|
|
tools: "测试用例文档"
|
|||
|
|
efficiency: "low"
|
|||
|
|
cost: "人力成本高"
|
|||
|
|
|
|||
|
|
"自动化测试":
|
|||
|
|
tools: "测试框架 + CI/CD"
|
|||
|
|
efficiency: "high"
|
|||
|
|
cost: "初期投入高,长期收益大"
|
|||
|
|
|
|||
|
|
"混合模式":
|
|||
|
|
tools: "自动化框架 + 手动补充"
|
|||
|
|
efficiency: "medium"
|
|||
|
|
best_for: "核心流程自动化,边界场景手动"
|
|||
|
|
|
|||
|
|
# 测试环境 → 准备工作
|
|||
|
|
environment_mapping:
|
|||
|
|
"本地开发环境":
|
|||
|
|
setup: "最简单"
|
|||
|
|
reality: "与生产差异大"
|
|||
|
|
suitable_for: "单元测试、快速验证"
|
|||
|
|
|
|||
|
|
"独立测试环境":
|
|||
|
|
setup: "中等复杂度"
|
|||
|
|
reality: "接近生产"
|
|||
|
|
suitable_for: "集成测试、功能测试"
|
|||
|
|
|
|||
|
|
"预生产环境":
|
|||
|
|
setup: "复杂"
|
|||
|
|
reality: "几乎等同生产"
|
|||
|
|
suitable_for: "性能测试、上线前验证"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 文档结构建议
|
|||
|
|
|
|||
|
|
```markdown
|
|||
|
|
# {功能/系统名称}测试 - 需求文档
|
|||
|
|
|
|||
|
|
## 1. 测试概述
|
|||
|
|
- 测试对象
|
|||
|
|
- 测试背景
|
|||
|
|
- 测试目标
|
|||
|
|
|
|||
|
|
## 2. 测试类型与范围
|
|||
|
|
- 测试类型(功能/性能/安全/集成等)
|
|||
|
|
- 测试范围(包含和排除的部分)
|
|||
|
|
- 测试深度
|
|||
|
|
|
|||
|
|
## 3. 测试场景
|
|||
|
|
- 正常场景
|
|||
|
|
- 异常场景
|
|||
|
|
- 边界场景
|
|||
|
|
- 用户故事/测试用例
|
|||
|
|
|
|||
|
|
## 4. 测试数据
|
|||
|
|
- 数据来源
|
|||
|
|
- 数据量级
|
|||
|
|
- 数据准备方式
|
|||
|
|
- 隐私保护要求
|
|||
|
|
|
|||
|
|
## 5. 测试环境
|
|||
|
|
- 环境配置
|
|||
|
|
- 依赖服务
|
|||
|
|
- 测试工具
|
|||
|
|
|
|||
|
|
## 6. 测试方式
|
|||
|
|
- 自动化策略
|
|||
|
|
- 测试框架和工具
|
|||
|
|
- CI/CD 集成
|
|||
|
|
|
|||
|
|
## 7. 性能指标(如适用)
|
|||
|
|
- 响应时间要求
|
|||
|
|
- 吞吐量要求
|
|||
|
|
- 并发要求
|
|||
|
|
- 资源限制
|
|||
|
|
|
|||
|
|
## 8. 验收标准
|
|||
|
|
- 通过标准
|
|||
|
|
- 覆盖率要求
|
|||
|
|
- 缺陷标准
|
|||
|
|
- 性能基线
|
|||
|
|
|
|||
|
|
## 9. 测试计划
|
|||
|
|
- 测试阶段
|
|||
|
|
- 时间安排
|
|||
|
|
- 人员分工
|
|||
|
|
|
|||
|
|
## 10. 交付物
|
|||
|
|
- 测试报告
|
|||
|
|
- 测试用例
|
|||
|
|
- 自动化脚本
|
|||
|
|
- 缺陷列表
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 特殊场景处理
|
|||
|
|
|
|||
|
|
### 性能测试项目
|
|||
|
|
额外关注:
|
|||
|
|
- 性能基线建立
|
|||
|
|
- 压力测试策略(阶梯式/持续/峰值)
|
|||
|
|
- 瓶颈分析工具
|
|||
|
|
- 监控和报警
|
|||
|
|
|
|||
|
|
### 安全测试项目
|
|||
|
|
额外关注:
|
|||
|
|
- OWASP Top 10
|
|||
|
|
- 常见漏洞类型
|
|||
|
|
- 合规要求(等保、PCI-DSS 等)
|
|||
|
|
- 渗透测试授权
|
|||
|
|
|
|||
|
|
### 自动化测试项目
|
|||
|
|
额外关注:
|
|||
|
|
- 测试框架选择
|
|||
|
|
- 测试代码架构
|
|||
|
|
- CI/CD 集成
|
|||
|
|
- 维护成本
|
|||
|
|
|
|||
|
|
### 兼容性测试项目
|
|||
|
|
额外关注:
|
|||
|
|
- 浏览器/设备矩阵
|
|||
|
|
- 操作系统版本
|
|||
|
|
- 第三方依赖版本
|
|||
|
|
- 向后兼容性
|
|||
|
|
|
|||
|
|
## 选项设计规范
|
|||
|
|
|
|||
|
|
### 互斥性原则
|
|||
|
|
|
|||
|
|
**单选问题**(multiSelect: false):
|
|||
|
|
- ✅ 选项应完全互斥,无重叠
|
|||
|
|
- ✅ 边界清晰,用户能明确判断属于哪一个
|
|||
|
|
- ❌ 避免数量范围重叠(如"1-10人"和"5-20人")
|
|||
|
|
- ❌ 避免概念包含关系
|
|||
|
|
|
|||
|
|
**多选问题**(multiSelect: true):
|
|||
|
|
- ✅ 选项可从不同角度切分,允许合理组合
|
|||
|
|
- ✅ 每个选项应代表独立的需求维度
|
|||
|
|
- ❌ 避免选项之间有逻辑依赖
|
|||
|
|
|
|||
|
|
### 维度统一原则
|
|||
|
|
|
|||
|
|
同一问题的所有选项应属于同一分类维度。
|
|||
|
|
|
|||
|
|
❌ **错误示例**(维度混乱):
|
|||
|
|
```yaml
|
|||
|
|
question: "用户如何使用这个工具?"
|
|||
|
|
options:
|
|||
|
|
- 输入问题主动调用 # 维度:触发方式
|
|||
|
|
- 命令行/编程接口 # 维度:交互界面
|
|||
|
|
- Web界面 # 维度:交互界面
|
|||
|
|
multiSelect: false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
✅ **正确做法**:拆分为两个问题,或统一到同一维度
|
|||
|
|
|
|||
|
|
### 边界清晰原则
|
|||
|
|
|
|||
|
|
**数量范围**:避免重叠,如"个人使用(1-5人)"、"小团队(6-50人)"
|
|||
|
|
**概念分类**:确保平级,避免包含关系
|
|||
|
|
|
|||
|
|
### 完备性检查
|
|||
|
|
|
|||
|
|
- 2-4个选项应覆盖**80%的常见场景**
|
|||
|
|
- 长尾场景通过"其他"覆盖
|
|||
|
|
- 当不确定时,优先设计偏通用的选项+依赖"其他"
|