AI migrated legacy COBOL programs to Java, bugs included
3 hours ago
- 本文讨论了将遗留COBOL程序迁移到Java的挑战,包括缺乏测试数据和难以验证边界情况。
- 提出了一种新颖的自主测试合成方法,称为'锁匠循环',它使用两个运行时环境(COBOL源和Java目标)并配备模拟工具。
- 锁匠循环包括对输入模拟进行迭代的'见证搜索',以穿透程序分支,然后进行保留奇偶性的突变,并且当达到路由边界时,分析器识别'锁定段落'。
- 在三个COBOL-Java案例研究(两个开源和一个内部生产级程序,430-4,114源代码行)上评估,该方法持续改进了覆盖率,超过了输入搜索的瓶颈。
- 在开源程序上实现了近乎完全的覆盖率,在内部程序上实现了91.90%的分支覆盖率,生成的Java在确定性奇偶校验下与COBOL参考相匹配。
- 该方法展示了一种使用确定性预言机验证自主编码输出的新颖方法。