레거시 코드 마이그레이션의 결정론적 검증을 위한 에이전트 방식 (Agentic Method)
요약
레거시 COBOL 코드를 Java로 마이그레이션할 때 기능적 일관성을 보장하기 위한 에이전트 기반 테스트 합성 방법인 'Locksmith Loop'를 제안합니다. 이 방식은 에이전트 루프를 통해 프로그램 분기를 탐색하고 변이를 수행하여 높은 코드 커버리지를 달성합니다.
핵심 포인트
- 에이전트 기반의 'Locksmith Loop'를 통한 테스트 케이스 자동 생성
- COBOL과 Java 간의 결정론적 패리티 체크를 통한 검증
- 분기 커버리지 최대 91.90% 달성 및 입력 탐색 정체기 극복
- 에이전트 기반 코딩 출력의 신뢰성을 높이는 새로운 검증 접근법
레거시 COBOL 프로그램을 Java로 마이그레이션하려면 올바른 기능을 보장하기 위해 광범위한 테스트가 필요합니다. 이러한 노력은 테스트 데이터의 부족과 모든 코너 케이스(corner cases)를 검증하기 어렵다는 점 때문에 종종 복잡해집니다. 본 논문에서는 새로운 에이전트 기반 테스트 합성 방법인 "Locksmith Loop"를 제안합니다. 이 방법은 두 가지 런타임 환경을 준비함으로써 시작됩니다. COBOL 소스와 생성된 Java 타겟은 각각 모크(mocks)를 사용하여 계측(instrumented)되며, 메인프레임 외부의 범용 하드웨어에서 실행됩니다. 그 후, 반복적인 에이전트 루프가 입력 모크에 대해 증인 탐색(Witness Search)을 수행하여 프로그램 분기(branches)를 침투하고, 이어서 패리티 보존 변이(parity-preserving mutations)를 수행합니다. 라우팅 경계(routing boundaries)에 도달하면, 분석기가 더 깊은 탐색을 방해하는 조건인 잠긴 단락(Locked Paragraph)을 식별합니다. 두 개의 오픈 소스 프로그램과 하나의 내부 운영 환경 유사 COBOL 프로그램(430~4,114 소스 라인 범위)을 포함하는 세 가지 COBOL-Java 사례 연구를 통해, Locksmith는 입력 탐색 정체기(input-search plateaus)를 넘어 일관되게 커버리지(coverage)를 개선하였으며, 두 오픈 소스 프로그램에서는 거의 완전한 커버리지를, 내부 운영 환경 유사 COBOL 프로그램에서는 91.90%의 분기 커버리지(branch coverage)를 달성했습니다. 생성된 Java는 모든 승인된 테스트 케이스에서 결정론적 패리티 체크(deterministic parity checks) 하에 COBOL 참조 모델과 일치했습니다. 이러한 발견을 통해, 우리가 알고 있는 바로는, 결정론적 오라클(deterministic oracle)을 사용하여 에이전트 기반 코딩 출력(agentic coding output)을 검증하는 새로운 접근 방식을 입증합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기