48 lines
3.6 KiB
Markdown
48 lines
3.6 KiB
Markdown
---
|
||
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` 与降级策略说明。
|