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

將遺留 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,正如論文標題所暗示的那樣。

AI 將遺留 COBOL 程序遷移到 Java,連 bug 也一併保留 | AI News Hub