Files
AIEC_Skills/.claude/skills/requirement-generator-v1/assets/testing.md
2025-12-11 14:19:36 +08:00

7.3 KiB
Raw Blame History

type, keywords, priority
type keywords priority
testing
测试
验证
检验
test
质量保证
qa
单元测试
集成测试
性能测试
自动化测试
medium

测试项目配置

本配置用于各类测试项目,包括功能测试、性能测试、安全测试等。

模板路径

templates/testing_template.md

核心问题配置

问题 1测试对象

question: "需要测试哪个功能或系统?"
type: "text"
prompt: "请描述测试对象,包括功能名称、版本等"

问题 2测试类型

question: "主要测试什么方面?(可多选,或在'其他'中详细描述;需要帮助请输入'需要帮助'"
options:
  - label: "功能是否正常工作"
    description: "验证功能符合预期"
  - label: "系统性能和速度"
    description: "检查响应时间、承载能力"
  - label: "安全性和数据保护"
    description: "检查是否有安全漏洞"
  - label: "多个功能协同工作"
    description: "验证各模块集成后的表现"
multiSelect: true

问题 3测试范围

question: "需要测试哪些具体场景?"
type: "text"
prompt: |
  请列出关键的测试场景,比如:
  - 用户登录
  - 创建订单
  - 查询历史记录
  - 边界情况(极端输入)
  - 异常情况(网络中断、数据错误等)

问题 4测试数据

question: "测试时需要使用什么数据?(或在'其他'中描述;需要帮助请输入'需要帮助'"
options:
  - label: "使用真实数据"
    description: "从生产环境或实际业务获取"
  - label: "使用模拟数据"
    description: "自己构造测试数据"
  - label: "两者都需要"
    description: "生产数据 + 模拟数据"

问题 5测试方式

question: "测试是手动进行还是自动化?(或在'其他'中描述;需要帮助请输入'需要帮助'"
options:
  - label: "手动测试就够了"
    description: "人工操作和检查"
  - label: "希望自动化执行"
    description: "写脚本自动运行测试"
  - label: "部分自动化,部分手动"
    description: "混合模式"

问题 6性能指标如涉及性能测试

question: "如果测试性能,什么样的表现算合格?"
type: "text"
prompt: |
  比如:
  - "页面加载时间不超过 2 秒"
  - "支持 100 人同时使用不卡顿"
  - "处理 10000 条数据在 1 分钟内完成"

问题 7验收标准

question: "怎样才算测试通过?"
type: "text"
prompt: |
  请列出具体的通过标准,比如:
  - "所有核心功能无报错"
  - "性能指标达标"
  - "安全扫描无高危漏洞"
  - "覆盖率达到 80%"

问题 8测试环境

question: "在什么环境下进行测试?(或在'其他'中描述;需要帮助请输入'需要帮助'"
options:
  - label: "开发环境(自己电脑)"
    description: "本地开发环境"
  - label: "专门的测试环境"
    description: "独立测试环境"
  - label: "接近真实的生产环境"
    description: "预生产环境"

通用映射规则

# 测试类型 → 测试策略
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: "性能测试、上线前验证"

文档结构建议

# {功能/系统名称}测试 - 需求文档

## 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

  • 选项可从不同角度切分,允许合理组合
  • 每个选项应代表独立的需求维度
  • 避免选项之间有逻辑依赖

维度统一原则

同一问题的所有选项应属于同一分类维度。

错误示例(维度混乱):

question: "用户如何使用这个工具?"
options:
  - 输入问题主动调用    # 维度:触发方式
  - 命令行/编程接口      # 维度:交互界面
  - Web界面             # 维度:交互界面
multiSelect: false

正确做法:拆分为两个问题,或统一到同一维度

边界清晰原则

数量范围:避免重叠,如"个人使用1-5人"、"小团队6-50人" 概念分类:确保平级,避免包含关系

完备性检查

  • 2-4个选项应覆盖80%的常见场景
  • 长尾场景通过"其他"覆盖
  • 当不确定时,优先设计偏通用的选项+依赖"其他"