Who Broke Me? 행동 의존성 파괴에 대한 실행 기반 복구
요약
본 논문은 라이브러리 업그레이드 시 발생하는 '행동 의존성 파괴(behavioral dependency breaks)' 문제를 다룹니다. 기존 LLM 기반 복구 방법들이 어려움을 겪는 이 문제에 대해, BBCFixer라는 새로운 복구 방법을 제안합니다. BBCFixer는 테스트 실패를 통해 후보 근본 API를 식별하고 라이브러리 diff를 필터링하여 효과적인 복구를 가능하게 합니다.
핵심 포인트
- 행동적 파괴는 컴파일러 피드백이 없어 기존 LLM 에이전트가 처리하기 어려움.
- BBCFixer는 테스트 실패와 diff 분석을 결합해 근본 API 후보를 식별함.
- Pure Agent 대비 평균 통과율을 최대 17% 향상시키는 성능을 입증함.
의존성 업그레이드는 라이브러리 인터페이스를 변경하지 않으면서 다운스트림 프로젝트를 망가뜨릴 수 있습니다. 이러한 행동적(behavioral) 파괴 변경은 실패하는 테스트가 항상 근본적인 API, 즉 문제를 일으킨 상위(upstream) API를 가리키지 않기 때문에 개발자가 수정하기 어렵습니다. 기존의 LLM 기반 복구 방법들은 컴파일러 피드백이나 라이브러리 문서를 통해 복구 증거를 얻습니다. 하지만 행동적 파괴는 컴파일러 피드백을 생성하지 않으며 종종 문서화되어 있지 않습니다. 업그레이드 증거를 받지 못하는 에이전트들 역시 일반적으로 상위 증거를 스스로 검색하지 못하며, 실패한 복구 작업 대부분은 근본적인 API를 식별하지 못합니다. 라이브러리 diff는 유용한 상위 증거를 제공하지만, 관련 diff 부분을 선택하기 위해서는 먼저 근본적인 API가 식별되어야 합니다. 우리는 BBCFixer라는 복구 방법을 제시합니다. 이 방법은 실패하는 테스트를 이전 버전과 새 버전의 라이브러리에서 실행하고, 반환 값이 다른 호출들을 순위를 매겨 후보 근본 API를 식별한 다음, 그 후보와 함께 라이브러리 diff를 필터링합니다. 행동적 파괴에 대한 복구를 평가하기 위해, 우리는 Python과 JavaScript로 구성된 100개의 행동 의존성 파괴(behavioral dependency breaks)를 담은 벤치마크인 BBCBench도 추가로 도입했습니다. 우리는 BBCFixer를 두 가지 기준선(baseline)과 비교합니다: (1) 업그레이드 증거를 받지 못하는 에이전트인 Pure Agent, 그리고 (2) 라이브러리 문서를 마이닝하는 방법인 BDUpdater입니다. BBCFixer는 Pure Agent 대비 평균 통과율을 최대 17% 향상시키고, 성공적인 복구당 필요한 에이전트 단계를 최대 27% 줄여줍니다. 따라서 BBCFixer는 행동적 파괴 뒤에 숨겨진 상위 증거를 선택하는 방법을 제공함으로써, LLM 에이전트가 행동적 파괴 변경을 더욱 효과적이고 효율적으로 복구할 수 있게 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기