RETRACE: 복잡하게 얽힌 수정 이력에서 재사용 가능한 경험을 추출하여 CI 수리를 위한 프레임워크
요약
본 논문은 소프트웨어 이력에서 재사용 가능한 수정 경험을 추출하여 CI(지속적 통합) 수리를 돕는 프레임워크 RETRACE를 제안합니다. RETRACE는 변경 사항으로부터 역추론하는 엔드포인트 뷰와 커밋 이력을 순방향으로 추적하는 개발 뷰를 결합합니다. 이를 통해 과거의 CI 실패 경험을 구조화된 수정 패턴으로 재구성하여 새로운 문제 해결에 활용할 수 있습니다.
핵심 포인트
- RETRACE는 복잡한 소프트웨어 이력에서 재사용 가능한 수정 경험을 추출합니다.
- 엔드포인트 뷰와 개발 뷰를 결합하여 과거의 CI 실패 경험을 구조화했습니다.
- MiniMax-M2.5 및 DeepSeek-V4-Flash 등 여러 모델에서 Pass@1 성능을 크게 개선했습니다.
대규모 언어 모델(LLM) 에이전트들은 이전 경험을 점점 더 많이 재활용하고 있지만, 대부분의 접근 방식은 문제와 해결책이 이미 정렬되어 있다고 가정합니다. 소프트웨어 이력에는 이러한 정렬 정보가 거의 없습니다. 즉, 하나의 풀 리퀘스트(PR)에 여러 개의 지속적 통합(CI) 문제, 실패한 시도, 되돌려진 수정 사항, 그리고 관련 없는 변경 사항들이 포함될 수 있으며, 이로 인해 어떤 변경 사항이 각 문제를 해결했는지 파악하기 어렵습니다. 본 논문에서는 이러한 이력에서 문제 수준의 수정 경험을 재구성하는 프레임워크인 RETRACE를 제시합니다. RETRACE는 통과된 리비전(revision)에 남아 있는 변경 사항으로부터 역추론하는 엔드포인트 뷰와, 커밋 이력을 통해 수정 진화 과정을 순방향으로 추적하는 개발 뷰를 결합합니다. CI 실행 증거가 두 가지 뷰를 조정하며, 복구된 경험은 구체적인 수정부터 전이 가능한 수정 패턴까지 세 가지 추상화 수준에서 표현됩니다. 새로운 실패에 대해 RETRACE는 관련 문제 수준의 경험을 검색하여 수리를 안내합니다. 12가지 실패 카테고리에 걸쳐 101개 저장소의 565개 PR 수준 수리로 구성된 CI-REPAIR-BENCH에서, RETRACE는 MiniMax-M2.5를 사용했을 때 mini-SWE-agent Pass@1을 19.6%에서 31.9%로 개선했으며, DeepSeek-V4-Flash를 사용했을 때는 23.3%에서 32.8%로 개선했습니다. 매칭된 하위 집합에서는 Codex가 15.5%에서 27.5%로 개선되었습니다. 두 가지 뷰를 결합하는 것이 각각 단독으로 사용하는 것보다 일관되게 우수한 성능을 보였으며, 이는 문제-변경 사항 정렬 정보를 복구하는 것이 과거의 CI 수리가 재사용 가능한 수정 경험이 될 수 있도록 함을 보여줍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기