Files
rag_agent/.github/skills/generate-test-cases-whitebox/SKILL.md

48 lines
3.6 KiB
Markdown
Raw 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: generate-test-cases-whitebox
description: "当 recommended_test_methods 命中 M13-M18 时使用,按路径/数据/变异/插桩证据链生成可追踪测试用例并输出 method_alignment_report。"
---
# generate-test-cases-whitebox
## 目标
对输入测试项应用白盒方法M13-M18生成带可追踪执行证据的测试用例。
## 输入
- normal_test_items
- abnormal_test_items
- requirement_type可选
- recommended_test_methods可选格式建议 `Mxx|方法名`
## 输出
- normal_test_cases
- abnormal_test_cases
- method_alignment_report
## 白盒方法范围
- M13 控制流测试
- M14 数据流测试
- M15 程序变异
- M16 程序插桩
- M17 域测试
- M18 符号求值
## 通用规则
1. 白盒用例必须包含证据锚点路径编号、DU对、变异体、插桩点、域编号、约束编号
2. `test_inputs` 应能触发目标证据链,禁止只描述功能输入。
3. `operation_steps` 必须包含证据采集或比对动作。
4. `case_summary` 必须标注 `Mxx|方法名`
5. 白盒用例可结合 `{{pass_criteria}}``{{resource_usage}}``{{state_change}}` 进行结果绑定。
## 方法详细说明M13-M18
- M13 控制流测试依据控制流图生成用例目标是覆盖不同控制结构。常用覆盖包括语句覆盖、分支覆盖、条件覆盖、条件组合覆盖、MC/DC 和路径覆盖。标准步骤为:流程图转控制流图、路径表达式求解、路径树生成、路径编码与译码、按目标路径枚举测试用例。`method_alignment_report` 应记录覆盖准则与未覆盖路径原因。
- M14 数据流测试:在控制流图上分析变量定义、使用和消除,重点发现“未定义就使用”与“定义后未使用”等数据流异常。建议步骤为:构建控制流图、标注链路数据操作符、选择数据流覆盖策略、导出测试路径、再生成输入与用例。除静态分析外,可结合动态数据流检查提高真实性,但要说明路径覆盖局限。
- M15 程序变异:以错误驱动方式定义变异算子并生成语法合法的变异体,通过测试数据逐个执行变异体判断检测能力。可区分强变异与弱变异,并在报告中统计“杀死率、存活率、等价变异占比”。该方法既用于找缺陷,也用于评价现有测试用例集的有效性。
- M16 程序插桩:通过在程序中插入观测操作实现证据采集,但不得改变被测程序原有功能与运行语义。建议步骤为:定位插桩点、插入采样逻辑、执行测试、回收与分析数据、移除或关闭插桩。由于数据记录量通常较大,宜借助工具完成并在报告中注明插桩开销与可信度。
- M17 域测试:目标是验证程序对输入空间划分是否正确,重点检查域内、边界和跨域样本的判定一致性。该方法约束较多、使用门槛较高,通常用于有特殊质量要求的场景。用例中应保留域划分依据与判定规则,避免仅给样本值不说明域归属。
- M18 符号求值:允许变量取符号值,通过符号执行检查公式与分支约束是否满足预期,并可导出程序路径用于生成测试数据。适用于公式密集或约束明确的逻辑。复杂分支推荐工具化处理,分支较少时可人工推导并在用例中记录约束来源与推导过程。
## 对齐输出要求
-`method_alignment_report` 中记录:`case_id``selected_methods``alignment_score``gaps``fix_suggestions`
- 对无法构造证据链的方法,必须输出 `gaps` 与降级策略说明。