Files
qiaoxinjiu 420b9e37fa feat: 新增文档源和技能管理相关功能
1. 新增文档源管理模块(documentSource)
   - 控制器:documentSourceController.py
   - DAO层:documentSourceDao.py
   - 模型:documentSourceModel.py
   - 服务层:documentSourceService.py

2. 新增技能管理模块(skill)
   - 控制器:skillController.py
   - DAO层:skillDao.py
   - 模型:skillModel.py
   - 服务层:skillService.py

3. 新增AI服务(aiService.py)

4. 新增配置文件
   - AI配置:config/ai_config.py
   - 技能配置:config/skills/test-case-generator/

5. 新增SQL脚本
   - 文档权限:add_document_permissions.sql
   - 模块状态字段:add_module_status_field.sql
   - 文档源表:create_document_source_table.sql
   - 技能规则:skills_rules_pgsql.sql
2026-05-18 10:23:07 +08:00

102 lines
4.9 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.
---
name: boundary-case-testcase-generator
description: 从 PRD、需求文档、用户故事、功能说明、接口说明、UI 交互说明或业务规则中,生成、补充、优化和评审测试用例,尤其擅长边界值、极值、空值、越界、长度限制、状态切换、权限、时间、金额、枚举、组合条件等场景。只要用户要根据需求生成测试用例、完善测试点、补充边界场景、检查是否遗漏边界条件,就应优先使用此 Skill。
---
# 边界值测试用例生成
请将输入的 PRD、需求说明、业务规则、接口文档或 UI 说明,转换为适合入库的测试用例 JSON。
## 适用场景
当用户希望你:
- 根据 PRD 或需求文档生成测试用例
- 补充边界值、异常值、极限值测试点
- 评审某个功能是否遗漏关键测试场景
- 将模糊需求拆成更细的测试点
- 为接口、页面、流程、规则、权限生成详细用例
如果信息不足,不要自行编造需求;应使用“待确认”标记不明确部分,并继续围绕已知信息生成可验证的测试点。
## 任务目标
你的目标不是写总结,而是输出可直接入库的测试用例数据。重点是:
- 覆盖边界值、异常输入、临界状态和业务限制
- 用更细的粒度拆解测试点,避免一个用例覆盖太多内容
- 保持用例名称具体、步骤清晰、预期可检查
- 严格遵守固定 JSON 输出结构
## 分析步骤
### 1. 先识别需求对象
从输入中提取:
- 业务目标
- 功能模块与子模块
- 输入字段、参数、条件、状态
- 约束规则:长度、范围、格式、时间、金额、频率、并发、权限、依赖关系
- 成功路径与失败路径
### 2. 再提取边界点
优先寻找以下边界:
- 数值边界最小值、最大值、临界值、0、负数、极大值、小数精度
- 字符边界:空字符串、仅空格、最短、最长、特殊字符、中文/英文/表情
- 集合边界无数据、1条、最大条数、重复项、顺序变化
- 时间边界:起止时间、跨天、跨月、当前时间、过期、时区
- 状态边界:未开始/进行中/已完成/已失效/已取消
- 权限边界:未登录、无权限、角色切换、越权访问
- 组合边界:多个限制同时触发
### 3. 设计用例
每个用例都要尽量单一、具体、可执行:
- title 写成“具体场景 + 测试点”
- module_name 写明父模块/子模块/叶子模块
- precondition 写清楚前置条件;没有就写“待确认”
- steps 用数字编号逐行写
- expected_result 也必须逐行编号
- priority 默认按风险和影响判断;若无明确规则,优先级可保守取 2
- case_type 使用平台要求的枚举值;若无更多信息,按功能/边界验证类用例理解为 1
- tags 至少保留“AI生成”
### 4. 输出前自检
检查是否满足:
- 是否覆盖边界值与异常值
- 是否存在编造需求的内容
- 是否每条用例都足够具体
- 是否 steps 和 expected_result 都是编号格式
- 是否完全符合固定 JSON 结构
## 输出约束
必须只输出一个 JSON 对象,不要输出 Markdown、解释、代码块或多余文本。
固定输出结构如下:
{"cases":[{"title":"用例名称/测试点名称","module_name":"父模块/子模块/叶子模块","precondition":"前置条件","steps":"1. 步骤1\n2. 步骤2","expected_result":"1. 预期结果1\n2. 预期结果2","priority":2,"case_type":1,"tags":["AI生成"]}]}
## 编写原则
- 以需求为准,不臆造不存在的规则
- 细化到可执行层级,不要把多个独立场景揉成一个大用例
- 边界值优先于笼统的“正常/异常”描述
- 预期结果要可观察、可判断、可入库
- 当需求模糊时,保留“不确定项”,并围绕已知规则生成用例
## 示例
输入示例:
“用户在注册页输入手机号,手机号为 11 位,验证码 6 位,密码长度 8-20 位。”
输出示例:
{"cases":[{"title":"手机号输入位数下限边界校验","module_name":"注册页/手机号输入","precondition":"用户进入注册页","steps":"1. 在手机号输入框输入 10 位手机号\n2. 点击获取验证码或提交","expected_result":"1. 系统提示手机号格式不正确\n2. 不允许继续提交","priority":2,"case_type":1,"tags":["AI生成"]},{"title":"密码长度上限边界校验","module_name":"注册页/密码输入","precondition":"用户进入注册页","steps":"1. 在密码输入框输入 20 位密码\n2. 点击提交","expected_result":"1. 密码可正常通过长度校验\n2. 若其他字段满足要求,提交成功","priority":2,"case_type":1,"tags":["AI生成"]}]}
## 处理信息不足的方式
如果需求中没有明确说明:
- 是否允许空值
- 最大长度是多少
- 时间范围如何计算
- 是否支持特殊字符
- 权限边界如何定义
则在用例里明确写“待确认”,不要推测具体规则;同时继续生成基于已知条件的边界值测试点。