一句话:提出基于符号执行的测试框架,自动验证 LLM 翻译所得 Java 代码与原始 COBOL 的功能等价性。
LLM 生成式技术已能翻译 COBOL 等遗留代码,但翻译结果不可完全信任,人工验证耗时费力。本文分享了为 IBM Watsonx Code Assistant for Z(WCA4Z)这一工业级 COBOL 到 Java 翻译工具开发测试框架的经验。该框架面向工业场景,自动测试翻译后 Java 代码与原始 COBOL 程序的功能等价性:利用符号执行为 COBOL 生成单元测试,对 mock 外部调用后转换为 JUnit 测试,再验证翻译后 Java 的语义等价性。该框架不仅能识别并修复检测到的差异,还能为改进 AI 翻译模型提供反馈。
Recent advances in Large Language Model (LLM) based Generative AI techniques have made it feasible to translate enterprise-level code from legacy languages such as COBOL to modern languages such as Java or Python. While the results of LLM-based automatic transformation are encouraging, the resulting code cannot be trusted to correctly translate the original code, making manual validation of translated Java code from COBOL a necessary but time-consuming and labor-intensive process. In this paper, we share our experience of developing a testing framework for IBM Watsonx Code Assistant for Z (WCA4Z) [5], an industrial tool designed for COBOL to Java translation. The framework automates the process of testing the functional equivalence of the translated Java code against the original COBOL programs in an industry context. Our framework uses symbolic execution to generate unit tests for COBOL, mocking external calls and transforming them into JUnit tests to validate semantic equivalence with translated Java. The results not only help identify and repair any detected discrepancies but also provide feedback to improve the AI model.
@inproceedings{paperbot8963,
title = {Automated Testing of COBOL to Java Transformation},
author = {Sandeep Hans and Atul Kumar and Toshiaki Yasue and Kouichi Ono and Saravanan Krishnan and Devika Sondhi and Fumiko Satoh and Gerald Mitchell and Sachin Kumar and Diptikalyan Saha},
booktitle = {FSE},
year = {2025},
doi = {10.1145/3696630.3728548}
}