Locksmith Loop: агентный метод проверил перенос COBOL-кода в Java с покрытием 91,9%
Авторы статьи, поданной на arXiv 30 июля 2026 года, предлагают агентный метод синтеза тестов для проверки миграции legacy-программ с COBOL на Java, «Locksmith Loop». Проблема, которую он решает: при переносе COBOL-кода обычно не хватает тестовых данных, а проверить вручную все граничные случаи сложно.
Метод готовит две среды выполнения, исходную COBOL-программу и сгенерированный Java-код, снабжает обе заглушками (mocks) и запускает вне мейнфрейма, на обычном оборудовании. Дальше итеративный агентный цикл выполняет «поиск свидетельских входных данных» (Witness Search) по заглушкам, чтобы проникнуть в непокрытые ветви кода, а затем применяет мутации, сохраняющие паритет поведения. Когда поиск упирается в границу, которую не может преодолеть, анализатор помечает участок как «заблокированный параграф» (Locked Paragraph), условие, не позволяющее исследовать код глубже.
Метод проверили на трёх кейсах: двух программах с открытым исходным кодом и одной внутренней production-подобной COBOL-программе, размером от 430 до 4114 строк кода. Locksmith Loop стабильно превзошёл плато, на котором останавливается чистый перебор входных данных: почти полное покрытие на двух открытых программах и 91,9% покрытия ветвей на production-подобной. Во всех принятых тестовых случаях сгенерированный Java-код совпал с поведением эталонной COBOL-программы по детерминированным проверкам паритета.
В самой аннотации не названы ни авторы, ни организация, ни конкретные названия использованных COBOL-программ, ни модель или агентный фреймворк, на котором построен Locksmith Loop; данные о времени и стоимости прогонов также не приводятся.
Ключевые факты
- Locksmith Loop готовит две среды выполнения, COBOL-оригинал и сгенерированный Java-код, с заглушками (mocks) и запускает их вне мейнфрейма, на обычном оборудовании.
- Итеративный агентный цикл ищет входные данные, проникающие в непокрытые ветви кода (Witness Search), а затем применяет мутации, сохраняющие паритет поведения.
- На внутренней production-подобной COBOL-программе метод довёл покрытие ветвей до 91,9%; на двух открытых COBOL-программах, почти до полного.
- Во всех принятых тестовых случаях сгенерированный Java-код совпал с эталонным поведением COBOL по детерминированным проверкам паритета.
- Размер трёх тестовых программ, от 430 до 4114 строк кода; авторы, организация и конкретные названия программ в тексте аннотации не указаны.
Почему это важно
Перенос legacy-систем с COBOL на Java, типичная и рискованная задача: банки, госструктуры и другие держатели мейнфреймов годами хранят критичный код на COBOL, а агентные инструменты уже умеют переписывать его на Java. Но без надёжного способа проверить, что поведение сохранилось, такой перенос опасен. Locksmith Loop предлагает детерминированную проверку: не случайные тесты, а целенаправленный поиск входных данных, которые вскрывают непокрытые ветви исходной и целевой программ, с последующей сверкой поведения.
Кому это важно
Инженерам и командам, которые занимаются миграцией legacy-кода с COBOL на Java, банкам, страховым компаниям, госсектору и другим держателям мейнфреймов, а также разработчикам и исследователям, которые создают инструменты для тестирования и валидации кода, сгенерированного ИИ-агентами.
Как это применить
Метод требует подготовить параллельные среды выполнения для исходной COBOL-программы и сгенерированного Java-кода, снабдить обе заглушками (mocks) и запускать вне мейнфрейма на обычном оборудовании. Дальше итеративный цикл сам ищет входные данные, проникающие в непокрытые ветви (Witness Search), и применяет мутации, сохраняющие паритет поведения. Пока это исследовательский прототип, описанный на трёх кейсах, а не готовый к использованию инструмент, о коммерческом продукте или публикации кода в тексте не сказано.
Можно ли доверять
Источник, препринт на arXiv, поданный 30 июля 2026 года: работа ещё не прошла рецензирование. Цифры (91,9% покрытия, диапазон 430, 4114 строк) даны авторами по итогам их собственных трёх кейсов, без внешней проверки. В аннотации не указаны ни авторы, ни организация, ни названия использованных COBOL-программ, ни модель или агентный фреймворк, на котором построен Locksmith Loop, это ограничивает возможность независимо оценить результат.
Риски и подводные камни
Выборка мала, всего три кейса, из которых production-подобным назван только один. Формулировка «почти полное покрытие» для двух открытых COBOL-программ не подкреплена точным числом. Совпадение поведения проверено только в «принятых» тестовых случаях, а доля отклонённых случаев в статье не приводится. Наконец, метод по определению останавливается на «заблокированных параграфах», участках кода, куда поиск входных данных не смог проникнуть, поэтому 91,9% покрытия не означает, что оставшиеся 8,1% кода гарантированно корректны.