针对测试用例生成添加了常用测试方法;更新了需求提取工具

This commit is contained in:
2026-04-18 21:13:33 +08:00
parent c7c0659a85
commit 0c2ed67e2a
21 changed files with 2029 additions and 481 deletions

View File

@@ -0,0 +1,67 @@
---
name: build-expected-results
description: "当需要将测试用例中的 expected_result_placeholder 展开为可度量预期成果时使用。"
---
# build-expected-results
## 目标
将测试用例中的预期占位符展开为可验证、可测量、可判定通过/失败的预期成果。
## 输入
- normal_test_cases
- abnormal_test_cases
- requirement_type
- recommended_test_methods可选
- quality_criteria可选精度、时间、误差、资源阈值
## 输出
- normal_expected_results
- abnormal_expected_results
每条预期成果至少包含:
- result_id
- case_id
- expected_results_detail
- evaluation_criteria
- pass_criteria
- termination_condition
## 强制规则
1. 预期成果必须来源于对应测试用例,不得脱离 case_id 独立生成。
2. 每条预期成果必须可验证,禁止使用模糊描述。
3. 预期成果必须覆盖:结果值、状态变化、时间要求、异常处理、通过准则。
4. 若包含定量结果,必须给出精度或允许偏差范围。
5. 若实际结果存在不确定性,必须定义重测条件。
## placeholder 展开映射
- {{return_value}} -> 返回码、返回体字段、字段值/类型约束
- {{state_change}} -> 状态机迁移、数据库字段变化、持久化副作用
- {{error_message}} -> 错误码、提示文案、触发条件
- {{data_persistence}} -> 数据落库、版本号、审计轨迹
- {{ui_display}} -> 页面元素、提示位置、可见性与文案
- {{precision_tolerance}} -> 精度阈值、允许误差上限与下限
- {{time_constraint}} -> 响应时间上限/下限、事件间隔
- {{retry_condition}} -> 触发重测的条件与次数限制
- {{error_handling}} -> 异常处理动作、回滚策略、保护措施
- {{sequence_event}} -> 事件顺序、状态切换顺序、时序关系
- {{resource_usage}} -> CPU/内存/磁盘/连接占用阈值
- {{pass_criteria}} -> 最终通过判定表达式
## 结果构造模板
每条 expected_results_detail 推荐按以下结构输出:
- observable_result可直接观测的结果
- measurable_constraints可量化约束精度、时间、阈值等
- side_effects副作用与状态变更
- error_handling_expectation异常处理期望
- retry_policy重测策略
- final_pass_rule通过准则
## 默认口径
当 quality_criteria 缺失时,使用以下默认规则:
- 时间约束:若无明确要求,标记为待确认,不擅自给固定毫秒值。
- 精度约束:若需求涉及计算,至少给出精度位数或误差范围占位。
- 资源阈值:若需求未给出,标记为待确认并保留观测项。
## 调试
- debug=true 时输出 placeholder_expansion_trace包含 case_id、placeholder、expansion_source、fallback_used。

View File

@@ -6,15 +6,29 @@ description: "当需要基于需求类型把需求文本分解为可执行的正
# decompose-test-items
## 目标
基于用户需求文本和已识别需求类型,生成测试项列表。
基于用户需求文本和已识别需求类型,生成完整、可执行、可追踪的测试项列表。
## 输入
- user_requirement_text
- requirement_type
- recommended_test_methods可选
- suggested_decompose_template可选
## 输出
- normal_test_items完整、可执行的正常测试项列表。
- abnormal_test_items完整、可执行的异常测试项列表。
- coverage_analysis覆盖分析包含覆盖率、缺口与补充建议。
每个测试项至少包含以下字段(对齐 C.1 要素):
- item_id测试项唯一标识。
- item_name测试项名称。
- item_description测试项说明测试目标和测试内容
- test_method测试方法可包含 1-N 个)。
- test_data_strategy测试数据生成/注入/捕获/分析方式。
- adequacy_requirement测试充分性要求。
- termination_condition正常终止与异常终止条件。
- priority优先级高/中/低)。
- traceability追踪关系需求点、子功能、接口或性能项
## 强制规则
1. 每个软件功能至少应被正常测试与被认可的异常场景覆盖;复杂功能需继续细分。
@@ -23,24 +37,62 @@ description: "当需要基于需求类型把需求文本分解为可执行的正
4. 粒度需适中,避免过粗或过细。
5. 对未知类型必须执行通用分解,并保持正常/异常分组。
6. 对需求说明未显式给出但在用户手册或操作手册体现的功能,也应补充测试项覆盖。
7. 每个测试项必须至少绑定一种测试方法,并标明追踪来源。
8. 每组测试项都需覆盖合法边界值与非法边界值(适用时)。
## 14类最小分解检查点
- 功能测试:正常覆盖功能主路径、基本数据类型、合法边界值与状态转换;异常覆盖非法输入、不规则输入、非法边界值与最坏情况。
- 性能测试:正常覆盖处理精度、响应时间、处理数据量与模块协调性;异常覆盖超负荷、软硬件限制、负载潜力上限与资源占用异常
- 外部接口测试:正常覆盖全部外部接口格式与内容正确性;异常覆盖每个输入输出接口的错误格式、错误内容与异常交互
- 人机交互界面测试:正常覆盖界面风格一致性与标准操作流程;异常覆盖误操作、快速操作、非法输入、错误命令与错误流程提示。
- 强度测试:正常覆盖设计极限下系统功能和性能表现;异常覆盖超出极限时的降级行为、健壮性与饱和表现
- 余量测试:正常覆盖存储、通道、处理时间余量是否满足要求;异常覆盖余量不足或耗尽时系统告警与受控行为
- 可靠性测试:正常覆盖典型环境、运行剖面与输入变量组合;异常覆盖失效等级场景、边界环境变化、不合法输入域及失效记录。
- 安全性测试:正常覆盖安全关键部件、安全结构与合法操作路径;异常覆盖危险状态、故障模式、边界接合部、非法进入与数据完整性保护
- 恢复性测试:正常覆盖故障探测、备用切换、恢复后继续执行;异常覆盖故障中作业保护、状态保护与恢复失败路径
- 边界测试:正常覆盖输入输出域边界、状态转换端点与功能界限;异常覆盖性能界限、容量界限和越界端点。
- 安装性测试:正常覆盖标准及不同配置下安装卸载流程;异常覆盖安装规程错误、依赖异常与中断后的处理
- 互操作性测试:正常覆盖两个或多个软件同时运行与互操作过程;异常覆盖互操作失败、并行冲突与协同异常
- 敏感性测试:正常覆盖有效输入类中典型数据组合;异常覆盖引发不稳定或不正常处理的特殊数据组合。
- 测试充分性要求:正常覆盖需求覆盖率、配置项覆盖与代码覆盖达标;异常覆盖未覆盖部分逐项分析、确认与报告输出
## 14类详细分解执行清单
- 功能测试
- 正常分解:主路径功能、基本数据类型、合法边界值、状态转换、运行模式与时间约束
- 异常分解:不规则输入、非法边界值、最坏情况(超负荷/饱和)、手册中隐含功能异常路径
- 性能测试
- 正常分解:处理精度、响应时间、可处理数据量、高低速协调
- 异常分解:软硬件瓶颈、过载极限、空间占用异常、性能退化阈值
- 外部接口测试
- 正常分解:接口格式合法性、字段内容正确性、输入输出链路可达
- 异常分解:格式错误、字段缺失/越界、协议不一致、异常 I/O 交互
- 人机交互界面测试
- 正常分解:界面风格一致性、标准流程操作、手册逐条操作一致
- 异常分解:误操作、快速操作、非法输入、错误命令与错误流程提示
- 强度测试
- 正常分解:设计极限内性能、降级行为前置阈值
- 异常分解:超极限、系统饱和、降级能力失效、健壮性边界。
- 余量测试
- 正常分解存储余量、I/O 通道余量、处理时间余量。
- 异常分解:余量不足(默认小于 20%)、余量耗尽时保护与告警。
- 可靠性测试
- 正常分解:运行剖面、概率分布输入、重要输入组合与典型环境一致性。
- 异常分解:失效等级场景、不合法输入域、环境边界变化、失效现象与时间记录。
- 安全性测试
- 正常分解:安全关键部件、容错/冗余/中断处理、合法输入下安全行为。
- 异常分解:危险状态、硬件/软件故障模式、界外与边界接合部、非法入侵与数据完整性攻击。
- 恢复性测试
- 正常分解:错误探测、备用切换、恢复后从无错状态继续执行。
- 异常分解:故障中作业保护失败、状态损坏、重置失败与恢复中断。
- 边界测试
- 正常分解:输入/输出域边界点、状态转换端点、功能与性能临界点。
- 异常分解:越界点、容量上限/下限之外、边界接合断裂行为。
- 安装性测试
- 正常分解:不同配置下安装和卸载流程、安装规程一致性。
- 异常分解:依赖缺失、安装中断、重复安装、回滚失败。
- 互操作性测试
- 正常分解:多软件并行运行、标准互操作流程。
- 异常分解:互操作失败、版本不兼容、并发冲突与消息错序。
- 敏感性测试
- 正常分解:有效输入类典型组合。
- 异常分解:引起不稳定或不正常处理的有效输入组合。
- 测试充分性要求
- 正常分解:需求覆盖率 100%、配置项要求覆盖、编译器一致性。
- 异常分解:语句/分支未覆盖点逐项分析、确认并形成分析结论。
## coverage_analysis 输出要求
- requirement_points需求点列表。
- covered_points已覆盖需求点。
- uncovered_points未覆盖需求点。
- requirement_coverage_rate覆盖率计算规则为 covered_points/requirement_points。
- recommended_supplementary_items建议补充测试项。
## 未知类型容错
- 当 requirement_type 无法确定时,仍需输出正常/异常两组测试项。
- 通用正常项至少包含:主流程正确性、合法边界值、标准输入输出。
- 通用异常项至少包含:非法输入、越界输入、资源异常或状态冲突。
- 未知类型场景下,默认使用功能分解、等价类划分、边界值分析三种方法。

77
.github/skills/format-output/SKILL.md vendored Normal file
View File

@@ -0,0 +1,77 @@
---
name: format-output
description: "当需要将测试项、测试用例、预期成果按统一格式输出时使用。"
---
# format-output
## 目标
将测试链路中生成的结构化数据整理为标准化三段式输出,确保可读性与追踪关系。
## 输入
- normal_test_items
- abnormal_test_items
- normal_test_cases
- abnormal_test_cases
- normal_expected_results
- abnormal_expected_results
- coverage_analysis可选
- method_alignment_report可选
- debug可选
## 输出
- markdown_output
## 强制规则
1. 输出必须包含三段:测试项、测试用例、预期成果。
2. 每段必须按正常测试与异常测试分组。
3. 编号必须保持追踪关系:
- 测试项编号TI-Nxx / TI-Exx
- 测试用例编号TC-Nxx / TC-Exx
- 预期成果编号ER-Nxx / ER-Exx
4. 测试用例必须显示对应测试项;预期成果必须显示对应测试用例。
5. 任一分段数据为空时,必须显式输出待补充,不允许静默省略。
6. 每条输出使用一段完整描述,不强制拆分为多个字段子项。
## 输出模板
**测试项**
**正常测试**
1. [TI-N01]...
**异常测试**
1. [TI-E01]...
**测试用例**
**正常测试**
1. [TC-N01](对应 TI-N01...
**异常测试**
1. [TC-E01](对应 TI-E01...
**预期成果**
**正常测试**
1. [ER-N01](对应 TC-N01...
**异常测试**
1. [ER-E01](对应 TC-E01...
## 调试模式
当 debug=true 时追加:
### 覆盖率分析
- requirement_coverage_rate
- uncovered_points
- recommended_supplementary_items
### 方法对齐分析
- method_alignment_report
### 步骤日志
- step_name
- success
- fallback_used
- duration_ms

View File

@@ -6,20 +6,32 @@ description: "当需要根据已分解测试项生成包含操作步骤与测试
# generate-test-cases
## 目标
按测试项生成测试用例,每个测试项至少对应 1 条用例。
按测试项生成测试用例,每个测试项至少对应 1 条可重复执行、可评估通过的测试用例。
## 输入
- normal_test_items
- abnormal_test_items
- requirement_type可选
- recommended_test_methods可选
## 输出
- normal_test_cases
- abnormal_test_cases
- method_alignment_report
每条测试用例必须包含:
- case_id
- case_name
- test_traceability
- case_summary
- initialization_requirements
- test_inputs
- operation_steps
- test_content
- expected_result_placeholder
- evaluation_criteria
- preconditions_constraints
- termination_condition
- pass_criteria
## 规则
1. 测试项与测试用例应保持一一对应关系。
@@ -28,13 +40,48 @@ description: "当需要根据已分解测试项生成包含操作步骤与测试
4. 操作步骤应可顺序执行,避免歧义。
5. 操作步骤必须包含明确动作、对象和输入条件,禁止笼统动作词。
6. test_content 必须包含可验证条件,便于后续生成可度量预期成果。
7. 测试用例应符合可重复执行原则,初始条件和参数必须可复现。
8. 测试输入必须标识有效值/无效值/边界值性质、输入来源、真实或模拟属性及事件顺序。
9. 每个操作步骤应包含测试输入、动作、中间期望、评估准则与异常终止信号。
10. pass_criteria 必须明确是否通过的判定条件,禁止模糊描述。
## expected_result_placeholder 映射
## expected_result_placeholder 映射(用于 Step 4 展开)
- {{return_value}}:接口或函数返回值验证。
- {{state_change}}:系统状态变化验证。
- {{error_message}}:异常场景错误信息验证。
- {{data_persistence}}:数据库或存储落库结果验证。
- {{ui_display}}:界面显示反馈验证。
- {{precision_tolerance}}:精度与允许误差范围验证。
- {{time_constraint}}:时间上限/下限或事件间隔验证。
- {{retry_condition}}:不确定结果时重测触发条件验证。
- {{error_handling}}:出错处理流程与保护动作验证。
- {{sequence_event}}:时序、状态切换或事件顺序验证。
- {{resource_usage}}:资源占用与空间约束验证。
- {{pass_criteria}}:用例通过准则验证。
## 常用测试方法应用清单B.1.1-B.2.6
每个用例必须在 summary 中标注所用方法,并在 steps 中体现方法特征。
| 方法 | 适用场景 | 输入构造规则 | 步骤设计特征 |
| --- | --- | --- | --- |
| 功能分解 | 功能/接口主流程 | 按子功能拆输入集 | 用例按子功能逐级覆盖 |
| 等价类划分 | 功能/接口/边界 | 有效类与无效类分别取代表值 | 每类至少一条步骤 |
| 边界值分析 | 输入输出边界 | 取边界、邻近、越界值 | 连续执行边界点序列 |
| 判定表 | 多条件组合逻辑 | 依据条件桩生成规则列 | 一列规则对应一条步骤流 |
| 因果图 | 条件与结果耦合 | 构建原因-结果及约束 | 覆盖关键因果链路 |
| 场景法 | 事件驱动流程 | 基本流与备选流输入 | 按场景路径组织步骤 |
| 功能图法 | 状态与逻辑联合 | 状态转移输入序列 | 状态路径+局部逻辑组合 |
| 随机测试 | 可靠性/强度 | 输入区间+概率分布 | 指定随机规则和样本量 |
| 猜错法 | 高风险经验缺陷 | 构造易错输入集合 | 直接验证高风险点 |
| 正交试验法 | 多因子组合优化 | 因子-水平表+正交表 | 覆盖代表组合点 |
| 组合测试法 | 参数组合覆盖 | 选定组合强度pairwise/K | 按组合强度生成步骤 |
| 蜕变测试法 | 预期结果难判定 | 构造蜕变关系输入组 | 校验用例间关系一致性 |
| 控制流测试 | 白盒流程覆盖 | 按路径目标构造输入 | 步骤对应语句/分支路径 |
| 数据流测试 | 白盒变量使用 | 定义-使用链路输入 | 覆盖关键定义引用对 |
| 程序变异 | 错误驱动验证 | 针对变异体生成输入 | 验证是否杀死变异体 |
| 程序插桩 | 运行行为观测 | 插桩点对应输入 | 步骤包含采样与比对 |
| 域测试 | 输入空间划分检验 | 构造域边界/域内样本 | 验证域划分正确性 |
| 符号求值 | 公式与路径推导 | 依据符号约束反推输入 | 校验符号关系与结果 |
## 禁止模糊描述
- 错误示例:"检查功能正常";正确示例:"验证返回状态码为200且响应体包含status=success"。
@@ -43,3 +90,7 @@ description: "当需要根据已分解测试项生成包含操作步骤与测试
## 预期结果耦合
- 每条用例必须可在下一步绑定一条明确、可验证的预期成果。
- 每条 expected_result_placeholder 必须可映射到定量或可观察的检查项。
## 对齐校验
- 输出 method_alignment_report至少包含case_id、selected_methods、alignment_score、gaps、fix_suggestions。

View File

@@ -6,10 +6,11 @@ description: "当需要在测试项分解与测试用例生成之前识别需求
# identify-requirement-type
## 目标
将用户需求文本识别为明确的测试需求类型,为后续测试项分解与测试用例生成提供分类依据。
将用户需求文本识别为明确的测试需求类型,为后续测试项分解与测试用例生成提供分类依据、推荐测试方法与分解模板
## 输入
- user_requirement_text用户原始需求文本。
- debug可选是否返回分类分数和证据切片。
## 输出
- requirement_type以下之一
@@ -30,6 +31,9 @@ description: "当需要在测试项分解与测试用例生成之前识别需求
- 未知类型
- reason简要判断依据。
- candidates当 requirement_type 为未知类型时,给出 1-3 个最接近候选类型。
- recommended_test_methods基于类型推荐的测试方法列表按优先级排序
- suggested_decompose_template推荐的测试项分解模板名称。
- type_signals触发该类型判断的关键语义信号。
## 类型识别信号
- 功能测试:关注功能需求逐项验证、业务流程正确性、输入输出行为、状态转换与边界值处理。
@@ -47,16 +51,40 @@ description: "当需要在测试项分解与测试用例生成之前识别需求
- 敏感性测试:关注有效输入类中可能引发不稳定或不正常处理的数据组合。
- 测试充分性要求:关注需求覆盖率、配置项覆盖、语句覆盖、分支覆盖及未覆盖分析确认。
## 附录 A类型到方法与模板映射
| 需求类型 | 推荐测试方法(优先顺序) | 推荐分解模板 |
| --- | --- | --- |
| 功能测试 | 功能分解, 等价类划分, 边界值分析, 场景法 | functional-standard-template |
| 性能测试 | 边界值分析, 组合测试法, 随机测试, 正交试验法 | performance-metric-template |
| 外部接口测试 | 等价类划分, 边界值分析, 判定表, 因果图 | external-interface-template |
| 人机交互界面测试 | 场景法, 猜错法, 等价类划分, 边界值分析 | hmi-flow-template |
| 强度测试 | 随机测试, 组合测试法, 边界值分析 | stress-limit-template |
| 余量测试 | 边界值分析, 组合测试法 | margin-capacity-template |
| 可靠性测试 | 随机测试, 场景法, 组合测试法, 蜕变测试法 | reliability-profile-template |
| 安全性测试 | 边界值分析, 场景法, 猜错法, 因果图 | safety-hazard-template |
| 恢复性测试 | 场景法, 功能图法, 猜错法 | recovery-fault-template |
| 边界测试 | 边界值分析, 等价类划分, 组合测试法 | boundary-focused-template |
| 安装性测试 | 场景法, 猜错法 | install-config-template |
| 互操作性测试 | 场景法, 组合测试法, 因果图 | interoperability-template |
| 敏感性测试 | 组合测试法, 正交试验法, 随机测试, 猜错法 | sensitivity-combination-template |
| 测试充分性要求 | 控制流测试, 数据流测试, 程序变异, 程序插桩 | adequacy-coverage-template |
| 未知类型 | 功能分解, 等价类划分, 边界值分析 | generic-fallback-template |
## 规则
1. 优先依据需求文本中的显式表述进行分类。
2. 分类应以语义意图为主,不能只做关键词机械匹配。
3. 置信度不足时输出未知类型,并提供候选类型。
4. 判断依据需简洁、可追溯到文本证据。
5. 若需求同时覆盖多个类型,输出主类型 requirement_type并将次类型放入 candidates。
6. recommended_test_methods 至少返回 2 个方法,优先返回文档中可直接执行的方法。
7. suggested_decompose_template 必须与 requirement_type 一致。
## 容错
- 当需求描述过于笼统或跨多类型混合时,输出未知类型,并在 candidates 给出最接近类型。
- 当识别不稳定时,优先保守分类,不强行归入单一类型。
- 未知类型不阻断后续流程,应继续执行通用测试项分解。
- 当文本信息不足以支持白盒方法推荐时,保留黑盒优先推荐并标记 reason。
## 调试
- debug 模式下返回每个类型的分类分数 classification_scores。
- debug 模式下追加 evidence_spans触发分类的文本片段与 method_selection_reason。

View File

@@ -6,14 +6,14 @@ description: "当用户要求测试项分解或测试用例生成且需要完整
# testing-orchestrator
## 目标
严格执行测试生成调用链,并显式传递每一步上下文。
严格执行测试生成调用链,确保每一步上下文显式传递、结构一致、可追踪
## 标准调用链
1. identify-requirement-type
2. decompose-test-items
3. generate-test-cases
4. build_expected_results
5. format_output
4. build-expected-results
5. format-output
## 编排规则
1. 优先使用 Skill 与 Tool不使用临时硬编码逻辑替代。
@@ -21,32 +21,76 @@ description: "当用户要求测试项分解或测试用例生成且需要完整
3. 每一步必须显式接收上一步输出。
4. 分类失败时输出未知类型并继续执行通用分解。
## 步骤契约
### Step 1: identify-requirement-type
- 输入:
- user_requirement_text
- debug可选
- 输出:
- requirement_type
- reason
- candidates
- recommended_test_methods
- suggested_decompose_template
### Step 2: decompose-test-items
- 输入:
- user_requirement_text
- requirement_type来自 Step 1
- recommended_test_methods来自 Step 1
- suggested_decompose_template来自 Step 1
- 输出:
- normal_test_items
- abnormal_test_items
- coverage_analysis
### Step 3: generate-test-cases
- 输入:
- normal_test_items来自 Step 2
- abnormal_test_items来自 Step 2
- requirement_type来自 Step 1
- recommended_test_methods来自 Step 1
- 输出:
- normal_test_cases
- abnormal_test_cases
- method_alignment_report
### Step 4: build-expected-results
- 输入:
- normal_test_cases来自 Step 3
- abnormal_test_cases来自 Step 3
- requirement_type来自 Step 1
- recommended_test_methods来自 Step 1
- 输出:
- normal_expected_results
- abnormal_expected_results
### Step 5: format-output
- 输入:
- normal_test_items, abnormal_test_items来自 Step 2
- normal_test_cases, abnormal_test_cases来自 Step 3
- normal_expected_results, abnormal_expected_results来自 Step 4
- coverage_analysis来自 Step 2
- method_alignment_report来自 Step 3
- debug可选
- 输出:
- markdown_output
## 执行顺序与回退
1. Step 1 必须先执行,若无法确定类型则输出未知类型并继续。
2. Step 2 若覆盖率不足,不中断流程,记录 coverage_analysis.gaps 并继续。
3. Step 3 若方法对齐不足,不中断流程,输出 method_alignment_report。
4. Step 4 若缺少定量口径,使用通用默认口径并标记待确认字段。
5. Step 5 若 Markdown 格式化失败,回退为结构化 JSON不丢失三段内容。
## 成果完整性检查
- 最终输出必须同时包含:测试项、测试用例、预期成果。
- 每个测试用例必须能追踪到测试项,每个预期成果必须能追踪到测试用例。
- 输出必须按正常测试/异常测试分组。
## 输出模板
最终输出必须严格遵循以下分组结构:
**测试项**
**正常测试**
1. [测试项 N1]...
**异常测试**
1. [测试项 E1]...
**测试用例**
**正常测试**
1. [用例 N1](对应测试项 N1...
**异常测试**
1. [用例 E1](对应测试项 E1...
**预期成果**
**正常测试**
1. [预期 N1](对应用例 N1...
**异常测试**
1. [预期 E1](对应用例 E1...
最终输出由 format-output 统一生成,必须遵循三段式结构并保持编号追踪。
## 调试模式
当 debug=true 时,输出步骤日志并包含:
@@ -55,3 +99,4 @@ description: "当用户要求测试项分解或测试用例生成且需要完整
- output_summary
- success
- fallback_used
- duration_ms