测试报告
版本: v1.0 | 日期: 2026-08-22
本文档记录 COBOL 迁移验证平台 V3 的测试执行情况和覆盖率数据。
一、测试概况
1.1 测试环境
| 组件 |
版本/配置 |
| Python |
3.13.3 |
| GnuCOBOL |
3.2.0 (GC32-BDB-SP1) |
| pytest |
最新版 |
| 操作系统 |
Windows 10/11 |
1.2 测试规模
| 指标 |
数量 |
| 测试文件总数 |
80+ |
| 单元测试文件 |
25 (tests/cobol_testgen/) |
| 集成测试文件 |
10+ (tests/e2e/, tests/parametrized/) |
| 测试数据脚本 |
61 (test-data/) |
| 基准程序 |
43 (benchmark-programs/) |
二、单元测试
2.1 核心引擎测试 (tests/cobol_testgen/)
| 测试文件 |
测试用例 |
状态 |
说明 |
| test_core.py |
15+ |
✅ 通过 |
分支树构建 |
| test_cond.py |
20+ |
✅ 通过 |
条件解析 + MC/DC |
| test_coverage.py |
10+ |
✅ 通过 |
覆盖标记 |
| test_design.py |
5+ |
⚠️ 导入错误 |
_STOP 不存在 |
| test_output.py |
8+ |
✅ 通过 |
JSON 输出 |
| test_read.py |
12+ |
✅ 通过 |
COBOL 预处理 |
| test_to_sql_*.py |
30+ |
⚠️ 3例失败 |
BETWEEN 解析 bug |
2.2 模块测试
| 模块 |
测试文件 |
状态 |
| agents/ |
tests/agents/ |
✅ 通过 |
| comparator/ |
tests/comparator/ |
✅ 通过 |
| config/ |
tests/config/ |
✅ 通过 |
| hina/ |
tests/hina/ |
✅ 通过 |
| runners/ |
tests/runners/ |
✅ 通过 |
2.3 已知失败
| 测试文件 |
失败原因 |
影响 |
| test_design.py |
_STOP 不存在 |
导入错误,需修复 |
| test_to_sql_between.py |
_split_on_AND 解析失败 |
3 例失败,涉及 KYU05DED |
三、集成测试
3.1 非 DB 管道测试
| 测试脚本 |
功能 |
状态 |
| s15_coverage_verification.py |
覆盖率验证 |
✅ 通过 |
| s25_per_program_report.py |
单程序报告 |
✅ 通过 |
| s16_benchmark_e2e.py |
基准端到端 |
✅ 通过 |
3.2 DB 管道测试
| 测试脚本 |
功能 |
状态 |
| s30_db_e2e.py |
DB 端到端 |
✅ 通过 |
| diagnose_db2.py |
DB 全流程诊断 |
✅ 通过 |
| diagnose_kind8dbrun.py |
DB 编译运行 |
✅ 通过 |
四、覆盖率数据
4.1 分支覆盖率
| 指标 |
数值 |
说明 |
| 目标 |
75% |
当前达成 |
| 总决策点 |
100+ |
IF/EVALUATE/PERFORM |
| 已覆盖 |
75+ |
满足 MC/DC |
| 未覆盖 |
25 |
合成函数/不可达分支 |
4.2 条件覆盖率
| 条件类型 |
覆盖率 |
说明 |
| 简单 IF |
100% |
单条件分支 |
| 复合 IF (AND/OR) |
75% |
MC/DC 覆盖 |
| EVALUATE |
90% |
多分支覆盖 |
| PERFORM UNTIL |
85% |
循环条件覆盖 |
4.3 未覆盖项
| 类型 |
原因 |
优先级 |
_FUNC_MOD |
合成函数字段 is_field=False |
中 |
| SUB01DAT 失败 |
无条件 MOVE,永不出错 |
低 |
| EVALUATE 死代码 |
源中无条件 MOVE |
低 |
五、基准程序测试
5.1 程序类型分布
| 类型 |
数量 |
说明 |
| Flat File I-O |
15 |
非 DB 管道 |
| DB (EXEC SQL) |
18 |
DB 管道 |
| 混合型 |
10 |
含复杂逻辑 |
5.2 覆盖率结果
| 程序 |
分支覆盖率 |
条件覆盖率 |
| KIN01INP |
80% |
75% |
| KIN07COR |
75% |
70% |
| KYU04CAL |
75% |
75% |
| 平均 |
75% |
75% |
六、测试执行命令
七、测试结论
7.1 达成情况
- ✅ 核心引擎功能完整
- ✅ 非 DB 管道正常运行
- ✅ DB 管道正常运行
- ✅ 覆盖率达到 75%
- ⚠️ 部分测试存在已知失败
7.2 待优化项
- 修复
test_design.py 导入错误
- 修复
test_to_sql_between.py BETWEEN 解析
- 提升条件覆盖率至 80%+
7.3 建议
- 定期运行回归测试
- 关注合成函数字段覆盖
- 补充边界值测试用例