Vòng lặp Locksmith: Phương pháp tác tử để xác thực xác định cho việc di chuyển COBOL sang Java
Một phương pháp tổng hợp kiểm thử tác tử mới, 'Vòng lặp Locksmith', sử dụng kiểm tra tương đương xác định để xác thực việc di chuyển COBOL sang Java, đạt được độ phủ nhánh gần như hoàn chỉnh trên các chương trình mã nguồn mở và 91,90% trên một chương trình COBOL giống sản xuất.

Di chuyển COBOL cũ sang Java là một cơn ác mộng của các trường hợp biên và thiếu dữ liệu kiểm thử. Một bài báo arXiv mới đề xuất một phương pháp tổng hợp kiểm thử tác tử gọi là 'Vòng lặp Locksmith' nhằm làm cho việc xác thực trở nên xác định thay vì xác suất.
Cách tiếp cận bắt đầu bằng việc thiết lập hai môi trường chạy: mã nguồn COBOL và mục tiêu Java được tạo ra, cả hai đều được trang bị mô phỏng và chạy ngoài mainframe trên phần cứng thương mại. Một vòng lặp tác tử lặp đi lặp lại sau đó thực hiện 'Tìm kiếm nhân chứng' trên các mô phỏng đầu vào để thâm nhập các nhánh chương trình, sau đó là các đột biến bảo toàn tương đương. Khi đạt đến ranh giới định tuyến, một bộ phân tích xác định 'Đoạn bị khóa' — một điều kiện ngăn cản việc khám phá sâu hơn.
Trong ba nghiên cứu điển hình COBOL-Java (hai chương trình mã nguồn mở và một chương trình COBOL giống sản xuất nội bộ, từ 430 đến 4.114 dòng mã nguồn), Locksmith liên tục cải thiện độ phủ vượt qua các mức bão hòa tìm kiếm đầu vào. Nó đạt được độ phủ gần như hoàn chỉnh trên hai chương trình mã nguồn mở và 91,90% độ phủ nhánh trên chương trình COBOL giống sản xuất nội bộ. Quan trọng là, Java được tạo ra khớp với tham chiếu COBOL dưới các kiểm tra tương đương xác định trong tất cả các trường hợp kiểm thử được chấp nhận.
Đóng góp chính của bài báo là sử dụng một oracle xác định để xác thực đầu ra mã tác tử — một sự chuyển dịch từ việc dựa vào khả năng thống kê sang tương đương có thể chứng minh. Các tác giả tuyên bố đây là một cách tiếp cận mới để xác thực việc di chuyển mã do AI tạo ra.
Đối với các kỹ sư đối mặt với hiện đại hóa hệ thống cũ, điều này cung cấp một con đường cụ thể để xác minh rằng một bản port Java do LLM tạo ra hoạt động giống hệt COBOL gốc, mà không cần các bộ kiểm thử có sẵn đầy đủ.
Vòng lặp Locksmith biến hộp đen của việc di chuyển mã AI thành một kiểm tra tương đương có thể chứng minh — không còn hy vọng mã được port hoạt động.