跳到主要内容
AI News HubLIVE
站内改写1 分钟阅读

AI 将遗留 COBOL 程序迁移到 Java,连 bug 也一并保留

文章摘要

这项研究提出“Locksmith Loop”智能体测试合成方法,用于确定性验证 AI 将遗留 COBOL 程序迁移到 Java 的结果。该方法在普通硬件上运行经过 mock 计装的 COBOL 与 Java 环境,通过迭代式见证搜索和奇偶校验变异深入程序分支。在 430 至 4,114 行的三个案例中,开源程序实现近乎完全分支覆盖,生产级程序达到 91.90% 分支覆盖,所有接受用例均通过确定性奇偶校验。

来源Hacker News AI作者: felineflock
AI 将遗留 COBOL 程序迁移到 Java,连 bug 也一并保留
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

将遗留 COBOL 程序迁移到 Java 一直是软件工程中的棘手问题:业务逻辑往往运行数十年,缺少完整的测试数据,且难以覆盖所有边界情况。随着 AI 辅助编码的普及,模型可以快速生成 Java 代码,但如何证明迁移结果与原有 COBOL 程序行为一致,仍然缺乏系统性方案。近日一篇提交至 arXiv 的论文提出了一种名为“Locksmith Loop(锁匠循环)”的智能体测试合成方法,专门用于对 AI 生成的遗留代码迁移结果做确定性验证。

该方法首先准备两套运行时环境:将 COBOL 源代码和生成的 Java 目标代码分别用 mock(模拟对象)进行插桩,并在大型机之外的普通商用硬件上执行。随后,一个迭代式智能体循环开始运行:Witness Search 阶段在输入 mock 空间中进行搜索,以穿透程序中的更多分支;接着执行保持奇偶校验一致的变异(parity-preserving mutations)。当程序到达路由边界时,分析器会识别出一个“Locked Paragraph”——即阻碍更深入探索的条件。

研究团队在三个 COBOL 到 Java 的案例上验证了该方法,涵盖两个开源程序和一个内部生产级 COBOL 程序,源程序规模从 430 行到 4,114 行不等。结果表明,Locksmith 能持续超越单纯输入搜索的覆盖率平台:两个开源程序达到近乎完全的分支覆盖,内部生产级程序达到 91.90% 的分支覆盖率。在所有被接受的测试用例中,生成的 Java 代码均通过确定性奇偶校验,与 COBOL 参考实现保持一致。

论文作者 Andras Ferenczi 及另外四位合作者认为,这是首次使用确定性 oracle 验证智能体编码输出的新颖方法。论文共 11 页,包含 6 幅图,于 2026 年 7 月 30 日提交,分类为软件工程(cs.SE)与人工智能(cs.AI)。这项研究提示,AI 迁移遗留系统不仅需要“会写代码”,更需要“能验证代码”的闭环——而这种验证甚至可能保留原程序中的既有 bug,正如论文标题所暗示的那样。

展开要点与分析

文章情报

工程师进阶

要点

  • 提出名为 Locksmith Loop 的智能体测试合成方法,用于 AI 迁移遗留代码的确定性验证。
  • 通过 mock 计装、见证搜索与奇偶校验变异,在普通硬件上对 COBOL 与 Java 进行分支级对拍。
  • 在 430–4,114 行的三个案例中,开源程序接近全覆盖,内部生产级程序分支覆盖率达 91.90%。
  • 所有被接受的测试用例中,生成的 Java 均与 COBOL 参考实现在确定性奇偶校验下保持一致。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。