docs: 完成缺口分析项3-7 - AGENTS.md、README完善、测试报告、示例数据、Agent架构图

This commit is contained in:
hangshuo652
2026-08-22 22:35:49 +08:00
parent 57db3a3ee6
commit 459e05a4c0
8 changed files with 708 additions and 7 deletions
+96
View File
@@ -74,8 +74,104 @@ python diagnose_db2.py # DB 全流程
python diagnose_kind8dbrun.py # DB 编译运行
```
## 项目性质
本项目是 **AI 辅助的 COBOL 程序迁移验证工具**,用于验证 COBOL 程序向 Java/Spark 迁移的正确性。
### 核心功能
| 功能 | 说明 |
|------|------|
| COBOL 源码解析 | 自动解析 DATA DIVISION 和 PROCEDURE DIVISION |
| 测试数据生成 | 基于分支覆盖的测试数据自动生成 |
| 双管道验证 | 支持非 DBflat file)和 DBSQLite)两种验证模式 |
| 覆盖率分析 | 静态分支覆盖 + 动态 gcov 覆盖 |
| AI 辅助 | LLM 驱动的程序分类和测试策略生成 |
### 技术特点
- **非阻塞路径枚举**: O(N) 算法替代 O(2^N) 爆炸
- **MC/DC 条件覆盖**: 支持 AND/OR/NOT 复合条件
- **DB 种子键一致性**: WHERE 宿主变量 MOVE 链解析
- **中文 HTML 报告**: 全中文覆盖率报告
---
## 成果摘要
### 开发成果
| 指标 | 数量 |
|------|------|
| 核心代码 | 22 个模块,~8000 行 |
| 测试文件 | 80+ 个测试用例 |
| 基准程序 | 43 个 COBOL 程序 |
| 修复数量 | 19 个关键 bug 修复 |
| 设计文档 | 9 个 V3 详细设计文档 |
### 覆盖率
| 类型 | 覆盖率 |
|------|--------|
| 分支覆盖率 | 75% |
| 条件覆盖率 | 75% |
| 测试通过率 | 95%+ |
### 技术亮点
1. **Lark 语法解析**: 使用 Earley parser 解析 COBOL 语法
2. **MC/DC 条件覆盖**: 支持复合条件的最小条件覆盖
3. **双管道架构**: 非 DB 和 DB 管道并行运行
4. **AI 辅助**: DeepSeek LLM 驱动的程序分类和测试策略
---
## 团队分工
### AI 辅助 (DeepSeek)
| 任务 | 负责内容 |
|------|----------|
| 代码开发 | 核心引擎、测试用例、文档编写 |
| 测试执行 | 运行测试套件、收集覆盖率数据 |
| 文档生成 | 详细设计文档、测试报告、README |
| 代码审查 | 自动触发 code-review skill |
### 人工审查
| 任务 | 负责内容 |
|------|----------|
| 需求确认 | 验证功能符合竞赛要求 |
| 代码审查 | 审查 AI 生成的代码质量 |
| 验收测试 | 执行端到端验证 |
| 最终提交 | 推送到主分支、提交成果物 |
---
## 技术难度
### 难点分析
| 难点 | 说明 | 解决方案 |
|------|------|----------|
| COBOL 语法复杂性 | 支持 33+ 种语句类型 | Lark Earley parser + 状态机 |
| 路径爆炸 | 复合条件导致路径指数增长 | O(N) MC/DC 算法 |
| DB 管道一致性 | 种子键与运行时查询键不一致 | MOVE 链解析 + 列名归一化 |
| 覆盖率标记 | 复合条件分支标记错误 | 条件树 + evaluate_tree |
### 已知限制
| 限制 | 影响 | 状态 |
|------|------|------|
| 条件覆盖率 75% | `_FUNC_MOD` 合成函数不可匹配 | 待优化 |
| 无 Java 比对管道 | 仅验证 COBOL 输出 | 规划中 |
| DB 管道需 gixsql | 依赖外部工具 | 已 vendored |
---
## 依赖
- **Python 3.12+** + `lark`, `pyyaml`
- **GnuCOBOL 3.2.0** (GC32-BDB-SP1,含 DB2/SQLite 支持)
- **gixsql** (已 vendored 在 `gixsql/` 目录)
- **DeepSeek API** (可选,用于 LLM 路径生成)