Files
cobol-java-v3/docs/test-report.md
T

4.3 KiB

测试报告

版本: 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%

六、测试执行命令

# 运行所有单元测试
python -m pytest tests/ -v

# 运行核心引擎测试
python -m pytest tests/cobol_testgen/ -v

# 运行覆盖率验证
python test-data/s15_coverage_verification.py

# 运行 DB 端到端测试
python test-data/s30_db_e2e.py

# 生成单程序报告
python test-data/s25_per_program_report.py

七、测试结论

7.1 达成情况

  • 核心引擎功能完整
  • 非 DB 管道正常运行
  • DB 管道正常运行
  • 覆盖率达到 75%
  • ⚠️ 部分测试存在已知失败

7.2 待优化项

  1. 修复 test_design.py 导入错误
  2. 修复 test_to_sql_between.py BETWEEN 解析
  3. 提升条件覆盖率至 80%+

7.3 建议

  1. 定期运行回归测试
  2. 关注合成函数字段覆盖
  3. 补充边界值测试用例