docs: 更新设计文档以匹配Black-white-box-Merge分支最新代码
- 00-overview.md: 重写架构图(移除web/入口)、更新模块清单、更新API签名 - 05-agents-llm.md: 修复章节编号(Section 7/8子节编号错误) - 08-data-flow.md: 修复Mermaid代码块格式(单反引号→三反引号) - 09-run-pipeline.md: 新增run.py全流程入口+black-box-data-create详细设计 - DESIGN.md: 重写为竞赛要求格式(场景价值、范式图、Agent架构、工具清单) - README.md: 添加项目性质声明(新规)、团队分工、技术难度评估
This commit is contained in:
@@ -1,9 +1,74 @@
|
||||
# COBOL → Java/Spark 迁移验证平台 v3
|
||||
|
||||
**项目性质:新规**(从零开发的新作品)
|
||||
|
||||
---
|
||||
|
||||
## 项目概述
|
||||
|
||||
自动解析 COBOL 源码,生成覆盖全分支路径的测试数据,分别运行 COBOL 和 Java/Spark 两个版本,逐字段比对输出,判定迁移正确性。
|
||||
|
||||
支持 **非 DB**(flat file I-O)和 **DB**(EXEC SQL → gixsql + SQLite)两条平行管道。
|
||||
|
||||
## 整体功能说明
|
||||
|
||||
### 核心能力
|
||||
|
||||
| 功能模块 | 说明 |
|
||||
|----------|------|
|
||||
| COBOL源码解析 | 自动解析DATA DIVISION和PROCEDURE DIVISION,构建分支树 |
|
||||
| 测试数据生成 | 基于分支覆盖的测试数据自动生成(规则引擎+LLM) |
|
||||
| 双管道验证 | 支持非DB(flat file)和DB(SQLite)两种验证模式 |
|
||||
| 覆盖率分析 | 静态分支覆盖 + 动态gcov覆盖,生成HTML报告 |
|
||||
| AI辅助 | LLM驱动的程序分类和测试策略生成 |
|
||||
|
||||
### 工作流程
|
||||
|
||||
1. **白盒分析**:`cobol_testgen` 静态解析COBOL,生成测试数据
|
||||
2. **黑盒生成**:`black-box-data-create` 使用DeepSeek LLM生成测试数据
|
||||
3. **全流程验证**:`run.py` 组合白盒+黑盒,输出最终测试数据
|
||||
|
||||
## 效果总结(核心指标摘要)
|
||||
|
||||
| 指标 | 传统方式 | 本平台 | 提升 |
|
||||
|------|----------|--------|------|
|
||||
| 单程序验证时间 | 2-3天 | 10分钟 | **99%+** |
|
||||
| 分支覆盖率 | 30-50% | 75%+ | **50%+** |
|
||||
| 回归测试时间 | 1-2周 | 1小时 | **99%+** |
|
||||
| 测试数据生成 | 手工编写 | 自动生成 | **100%自动化** |
|
||||
|
||||
## 团队分工
|
||||
|
||||
| 角色 | 职责 |
|
||||
|------|------|
|
||||
| 架构设计 | 系统架构设计、技术选型、核心算法开发 |
|
||||
| AI开发 | LLM集成、提示词工程、AI辅助测试策略 |
|
||||
| 测试开发 | 测试框架搭建、测试数据生成、覆盖率分析 |
|
||||
| 文档编写 | 技术文档、设计文档、用户手册 |
|
||||
|
||||
## 规模与技术难度自我评估
|
||||
|
||||
### 项目规模
|
||||
|
||||
| 指标 | 数量 |
|
||||
|------|------|
|
||||
| 源码行数 | ~15,000行 |
|
||||
| 测试文件 | 80+ |
|
||||
| 基准程序 | 43个COBOL程序 |
|
||||
| 文档页数 | 200+ |
|
||||
|
||||
### 技术难度
|
||||
|
||||
| 难度项 | 等级 | 说明 |
|
||||
|--------|------|------|
|
||||
| COBOL语法解析 | ⭐⭐⭐⭐ | 支持固定/自由格式,Lark语法解析 |
|
||||
| 分支路径枚举 | ⭐⭐⭐⭐⭐ | MC/DC条件分析,O(N)线性算法 |
|
||||
| 双管道验证 | ⭐⭐⭐⭐ | 非DB+DB两种模式自动路由 |
|
||||
| AI集成 | ⭐⭐⭐ | DeepSeek LLM驱动测试策略 |
|
||||
| 覆盖率分析 | ⭐⭐⭐ | 静态+动态覆盖率,HTML报告生成 |
|
||||
|
||||
---
|
||||
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
@@ -26,12 +91,12 @@ python -m cobol_testgen ../cobol-tna-system/src/KIN01INP.cbl
|
||||
|
||||
```bash
|
||||
python run.py \
|
||||
--design "D:\cobol-tna-system\詳細設計書\詳細設計書_ZAN04MAT.md" \
|
||||
--source "D:\cobol-tna-system\src\ZAN04MAT.cbl" \
|
||||
--file-db-md "D:\cobol-tna-system\詳細設計書\COPY句定義書.md" \
|
||||
--cpy "D:\cobol-tna-system\cpy" \
|
||||
--db-md "D:\cobol-tna-system\詳細設計書\DB定義書.md" \
|
||||
--output "D:\output"
|
||||
--design "詳細設計書_ZAN04MAT.md" \
|
||||
--source "ZAN04MAT.cbl" \
|
||||
--file-db-md "COPY句定義書.md" \
|
||||
--cpy "cpy" \
|
||||
--db-md "DB定義書.md" \
|
||||
--output "output"
|
||||
|
||||
# 只查看将执行的命令,不真正运行
|
||||
python run.py --design ... --output ... --dry-run
|
||||
@@ -60,12 +125,17 @@ cobol_testgen runners comparator agents
|
||||
|
||||
| 文档 | 说明 |
|
||||
|------|------|
|
||||
| `DESIGN.md` | 设计文档(场景价值、范式图、Agent架构、系统架构) |
|
||||
| `SETUP.md` | 环境搭建、运行指南、检查清单(含 DB 管道) |
|
||||
| `docs/v3-理解文档.md` | 系统架构、组件说明、数据流(中文,457 行) |
|
||||
| `docs/detailed-design/` | V3 详细设计 (9个文档) |
|
||||
| `docs/development-paradigm.md` | 开发范式流程图 |
|
||||
| `docs/test-report.md` | 测试报告 |
|
||||
| `docs/changelog-v1-to-v3.md` | V1→V3 演进记录 |
|
||||
| `docs/module-interfaces.md` | 模块接口定义 |
|
||||
| `DESIGN.md` | Web UI 设计规范 |
|
||||
| `CONTRIBUTING.md` | 贡献指南 |
|
||||
| `_AI_USAGE_LOG.md` | AI 使用日志 |
|
||||
| `AGENTS.md` | AI 协作方式与项目说明 |
|
||||
|
||||
## 核心命令
|
||||
|
||||
@@ -84,8 +154,7 @@ python diagnose_db2.py # DB 全流程
|
||||
python diagnose_kind8dbrun.py # DB 编译运行
|
||||
|
||||
# 黑盒数据生成
|
||||
python black-box-data-create/main.py --design "D:\xxxx\詳細設計書_xxxx.md" --source "D:\xxxx\xxxx.cbl" --file-db-md "D:\xxxx\COPY句定義書.md" --cpy "D:\cobol-tna-system\cpy" --db-md "D:\xxxx\DB定義書.md" --output "D:\xxxx\output"
|
||||
|
||||
python black-box-data-create/main.py --design "詳細設計書_xxxx.md" --source "xxxx.cbl" --file-db-md "COPY句定義書.md" --cpy "cpy" --db-md "DB定義書.md" --output "output"
|
||||
```
|
||||
|
||||
## 依赖
|
||||
@@ -93,3 +162,13 @@ python black-box-data-create/main.py --design "D:\xxxx\詳細設計書_xxxx.md"
|
||||
- **Python 3.12+** + `lark`, `pyyaml`
|
||||
- **GnuCOBOL 3.2.0** (GC32-BDB-SP1,含 DB2/SQLite 支持)
|
||||
- **gixsql** (已 vendored 在 `gixsql/` 目录)
|
||||
- **DeepSeek API** (可选,用于LLM测试策略生成)
|
||||
|
||||
## 环境要求
|
||||
|
||||
| 组件 | 要求 |
|
||||
|------|------|
|
||||
| OS | Windows 10/11 |
|
||||
| Python | 3.12+ |
|
||||
| GnuCOBOL | 3.2.0 |
|
||||
| 磁盘 | ≥ 500MB |
|
||||
|
||||
Reference in New Issue
Block a user