# 华信软件生命周期 **Repository Path**: mhtty/huaxin-devsecops ## Basic Information - **Project Name**: 华信软件生命周期 - **Description**: “智远测试框架” 是一套面向 RISC-V 计算平台的全栈式兼容性与健壮性验证解决方案。 - **Primary Language**: C - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 131 - **Created**: 2026-07-27 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 华信 ## 项目介绍 华信面向软件开发全生命周期,目标是在统一的 AI 驱动 DevSecOps 框架下解决两类问题:一是大语言模型生成基础设施即代码(Infrastructure as Code,IaC)时,容易出现结构错误、资源依赖缺失、安全约束不满足和配置不可部署等问题;二是 RISC-V 计算平台在芯片、固件、操作系统和基础软件之间存在较多兼容性差异,缺少统一、自动化的全栈验证手段。 项目围绕“**需求约束—智能生成—自动验证—测试执行—运行反馈—迭代修复**”建立贯穿软件生成、测试、交付和运行阶段的反馈优化链路。上游需求、安全规则和部署环境约束 AI 生成过程;下游验证结果、测试日志和性能指标则向上反馈,用于定位问题、修复配置和改进后续生成结果。 华信当前重点建设以下能力: - **AI 配置生成**:根据自然语言需求、安全策略、资源限制和部署环境生成 Terraform、YAML 和 Kubernetes 等 IaC 配置。 - **生成结果验证**:通过 Provider Schema、Terraform Validate、Terraform Plan 和 OPA 等手段检查配置结构、资源语义和策略约束。 - **测试与兼容性验证**:通过智远测试框架验证 RISC-V 平台的指令集、基础架构、固件启动、二进制接口和系统性能。 - **反馈分析与局部修复**:将验证错误、测试日志和运行指标结构化,驱动 AI 对问题位置进行针对性修复。 - **实验与结果管理**:记录模型、提示词、数据划分、验证结果和修复过程,为方法比较和实验复现提供支撑。 华信总体由“AI 生成 IaC 配置”和“智远测试框架”两个核心方向组成。前者负责配置的生成、验证和修复,后者负责测试执行、兼容性验证和性能评价。两类能力通过统一反馈机制连接,形成从生成到验证、再从验证返回生成环节的闭环。 ## 项目目录 ```text huaxin-devsecops/ ├── README.md ├── LICENSE ├── huaxin-iac-source/ # AI 生成 IaC 配置子项目 ├── zhiyuan-testing-framework/ # 智远测试框架 └── doc/ # 项目说明、方法图和相关文档 ``` 华信各核心模块介绍如下: 1. **AI 生成 IaC 配置**:`huaxin-iac-source/` 根据自然语言需求生成 Terraform 配置,并结合 Graph IR、知识图谱、Provider Schema 和多阶段验证进行评价与修复。 2. **智远测试框架**:`zhiyuan-testing-framework/` 面向 RISC-V 计算平台提供指令集、架构、固件、ABI 和性能基准测试。 3. **反馈优化机制**:统一接收 Terraform、OPA、测试框架和运行环境产生的错误及指标,将其转换为配置修复和后续生成的上下文。 4. **项目文档**:`doc/` 保存总体说明、方法框架图、测试框架图及后续安装和实验文档。 > 若智远测试框架代码尚未同步至主仓库,可先保留目录和说明,后续再补充代码或 Git 子模块。 ## 项目进展 - 华信总体框架:持续完善 - AI 生成 IaC 配置子项目:实验验证中 - Graph IR、知识图谱和 Provider Schema 增强:实验验证中 - Terraform Validate、Terraform Plan 和 OPA 多阶段验证:已接入研究原型 - 验证反馈驱动的局部修复:实验验证中 - 智远测试框架:持续建设和集成中 ## AI 生成 IaC 配置 ### 项目介绍 AI 生成 IaC 配置子项目研究如何利用大语言模型根据自然语言需求生成 Terraform 配置,并将结构建模、知识增强、Provider Schema、Terraform 验证和安全策略检查纳入生成过程。 该子项目不将模型首次输出直接视为最终结果,而是先对需求和资源关系进行结构化表示,再生成候选配置,并根据验证反馈定位问题、执行局部修复和重新验证。 当前主要面向 AWS Terraform 配置,后续可扩展至更多 Provider、YAML 和 Kubernetes 配置场景。 整体流程包括: 1. 将用户 Prompt 转换为面向资源、属性和依赖关系的中间表示。 2. 使用 Graph IR 描述 IaC 资源拓扑和语义关系。 3. 从知识图谱中检索资源关系、常见约束和配置证据。 4. 结合 Terraform Provider Schema 构造 HCL 生成上下文。 5. 调用大语言模型生成 Terraform 配置。 6. 依次执行 Terraform Validate、Terraform Plan 和 OPA 策略检查。 7. 将错误信息结构化,并针对错误位置执行局部修复。 8. 保存生成结果、验证状态、修复过程和评价指标。 ### 核心能力 - **基线配置生成**:支持不同模型、提示增强方法和固定数据划分。 - **Graph IR 建模**:显式描述资源、属性和依赖关系,辅助生成和一致性验证。 - **知识图谱增强**:检索 Terraform 资源关系和相关约束,为模型提供外部证据。 - **Provider Schema 约束**:检查资源类型、必填属性、嵌套块和参数结构。 - **多阶段验证**: - `terraform validate` 检查语法和基础结构; - `terraform plan` 检查 Provider Schema、资源参数和依赖关系; - OPA 检查安全策略和任务约束; - Graph consistency 检查生成配置与 Graph IR 的一致性。 - **局部反馈修复**:根据验证错误定位问题,只修改相关资源或属性,减少无关配置变化。 - **实验评价**:记录 Validate、Plan、OPA、语义一致性、修复成功率和修复轮数等指标。 ### 环境准备 推荐使用 Linux、Python 3.10 及以上版本,并准备: - Terraform; - OPA; - 可选的 vLLM 推理服务; - 与所用模型相匹配的 CUDA、PyTorch 和推理环境。 进入子项目并安装依赖: ```bash cd huaxin-iac-source bash scripts/setup.sh ``` 也可以手动创建 Python 环境: ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` 本地模型权重放入: ```text huaxin-iac-source/models/ ``` 模型文件体积较大,不应直接提交到 Git 仓库。 ### 运行说明 查看基线和主要实验入口的命令参数: ```bash cd huaxin-iac-source export PYTHONPATH="$PWD/src" python src/eval.py --help python src/eval_verigraph.py --help ``` 运行小规模基线实验: ```bash python src/eval.py \ --config configs/models/qwen25coder3b-at1.json \ --static-plan \ --max-rows 3 \ --log-file artifacts/logs/qwen25coder3b-baseline-smoke.log ``` 运行 Graph IR 和知识图谱增强实验: ```bash MAX_ROWS=3 \ bash scripts/runs/run_qwen25coder3b_publickg_offline_both_full_20260723.sh ``` 运行带局部反馈修复的实验: ```bash MAX_ROWS=3 \ bash scripts/runs/run_qwen25coder3b_publickg_offline_both_localrepair1_full_20260723.sh ``` 更多说明请参阅: ```text huaxin-iac-source/README.md ``` ## 智远测试框架 ### 项目介绍 智远测试框架(Zhiyuan Testing Framework)是一套面向 RISC-V 计算平台的全栈式兼容性与健壮性验证解决方案。 随着 RISC-V 生态快速发展,不同芯片厂商、固件实现和操作系统之间存在较大差异。指令集扩展、中断控制器、内存映射、OpenSBI、UEFI、ACPI 及基础软件环境的不一致,容易造成平台启动失败、系统适配困难、二进制不兼容和性能波动。 智远测试框架从底层指令集和硬件架构出发,向上覆盖固件启动、二进制接口兼容性和性能基准测评,并通过统一的测试管理平台完成任务调度、测试执行、结果采集和报告生成。 智远测试框架的核心价值包括: - **标准化**:围绕 RISC-V 架构、启动和接口规范组织测试内容。 - **自动化**:统一管理测试任务、执行过程、结果采集和报告生成。 - **全覆盖**:覆盖芯片 Bring-up、固件启动、操作系统适配、基础软件运行和性能评价。 - **可扩展**:可根据目标平台和测试需求增加测试模块、脚本和评价规则。 ### 总体架构 ![智远测试框架全景图](doc/images/zhiyuan-testing-framework.png) 智远测试框架自上而下包括测试管理平台、测试功能模块、硬件接入层和被测对象。 测试管理平台提供 UI/CLI 交互、任务调度和报告生成;测试功能层覆盖指令集验证、架构合规性、固件启动、系统兼容性和性能基准;硬件接入层通过 Serial/UART、SSH/Network、JTAG/OpenOCD 和 Payload Loader 连接测试平台;底层被测对象包括 RISC-V SoC、FPGA 原型平台和 QEMU 模拟器。 ### 核心模块 1. **指令集验证** RISC-V Instruction Generator 基于约束生成随机指令流,并支持非法指令注入、异常捕获、边界访问和长时间压力测试,用于发现硬件与固件的边缘问题。 2. **架构合规性验证** BSA Module 验证 ISA 扩展、CSR 属性、中断子系统、定时器、内存映射和 PCIe ECAM 等基础架构能力,确保操作系统具备可移植的硬件基础。 3. **固件及启动验证** BRS Module 验证 SBI、OpenSBI 服务、UEFI Runtime、ACPI 表、M-Mode 到 S-Mode 上下文传递、系统复位和看门狗等启动环境。 4. **系统兼容性验证** ABI Module 验证整数和浮点参数传递、被调用者保存寄存器、函数调用栈、vDSO、glibc、musl、原子操作和动态库依赖。 5. **性能基准测评** Performance Benchmarking 使用 CoreMark、SPEC CPU、LMBench 和 STREAM 等工具量化处理器计算性能、缓存及主存延迟、内存带宽和系统综合效率。 ### 测试管理与硬件接入 上位机主要负责: - 创建和管理测试项目; - 生成测试任务及测试镜像; - 下发测试内容; - 收集测试日志和结果文件; - 分析结果并生成报告。 测试平台主要负责: - 加载测试镜像或 Payload; - 执行测试脚本; - 运行指令集、架构、固件、兼容性和性能测试; - 保存并返回测试日志和结果。 框架支持以下接入方式: - Serial/UART; - SSH/Network; - JTAG/OpenOCD; - Payload Loader。 ### 测试流程 1. 在上位机创建测试项目并选择测试模块。 2. 根据被测对象生成测试镜像或测试 Payload。 3. 通过串口、网络或调试接口将测试内容下发到测试平台。 4. 测试平台执行测试脚本并采集日志。 5. 上位机接收测试结果和性能数据。 6. 报告生成器汇总结果并输出测试报告。 7. 测试错误和评价指标返回华信反馈优化环节。 ## 端到端运行路径 1. 用户提交自然语言需求、安全规则、资源限制和目标部署环境。 2. AI 生成 IaC 子项目构建 Graph IR,并结合知识图谱和 Provider Schema 生成 Terraform 配置。 3. 系统执行 Terraform Validate、Terraform Plan 和 OPA 检查,发现语法、结构、资源语义和安全策略问题。 4. 对可部署配置执行部署、测试或性能评估任务。 5. 智远测试框架对 RISC-V 平台执行指令集、架构、固件、ABI 和性能测试。 6. 系统统一采集验证错误、测试日志、兼容性结果、延迟、吞吐和资源指标。 7. AI 根据反馈定位问题,对相关配置或生成内容执行局部修复。 8. 修复结果重新进入验证和测试流程,形成“生成—验证—执行—反馈—修复”闭环。 ## 参与贡献 欢迎通过 Issue、代码、文档和测试用例参与华信建设。 ### 提交 Issue 提交新问题前,请先搜索已有 Issue,确认没有相同或高度相关的问题。 Issue 标题建议使用以下格式: ```text [模块名称] 问题摘要 ``` 例如: ```text [IaC] Terraform Plan 资源依赖验证失败 [智远-BRS] OpenSBI RFENCE 测试异常 ``` Issue 正文建议包含: - 问题类型,例如缺陷、功能建议、文档问题或兼容性问题; - 涉及的子项目或模块; - 华信主仓库和相关子项目的提交号; - 运行环境,包括操作系统、处理器架构、Python、Terraform、OPA、模型或测试平台版本; - 可以重复执行的最小复现步骤; - 预期结果和实际结果; - 必要的日志、错误信息或截图。 提交前请移除密码、密钥、令牌、云账号信息和其他敏感内容。建议一个 Issue 只描述一个独立问题。 ### 提交代码或文档 1. Fork 主仓库或需要修改的子项目,并基于默认分支创建功能分支。 2. 每次提交聚焦一个问题,避免同时夹带无关的格式调整或大规模重构。 3. 完成修改后执行相关实验、构建或测试,并在 Pull Request 中说明执行命令和结果。 4. 补充或同步更新必要的文档、配置和测试用例。 5. 向实际承载代码的仓库提交 Pull Request,并关联对应 Issue。 6. Pull Request 中应说明修改背景、主要改动、影响范围和验证结果。 ## 安全说明 AI 生成的 IaC 配置仅用于研究和测试。模型输出可能包含权限过大、网络暴露、资源参数错误或不满足组织安全策略等问题。 任何生成配置在进入真实环境前,都应经过人工审查、Terraform 验证、策略检查和受控环境测试。请勿提交云访问密钥、API Token、本地模型权重、生产环境状态文件或其他敏感数据。