코드베이스에서 버그 원인까지 (C2C): 시맨틱 검색 및 계층적 강화학습을 통한 버그 탐색 공간 축소
요약
C2C(From Codebase to Culprit)는 코드베이스에서 버그 원인을 정밀하게 찾아내는 새로운 프레임워크입니다. 이 시스템은 시맨틱 검색과 계층적 강화학습(HRL)을 결합하여 디버깅 탐색 공간을 점진적으로 축소합니다. 이를 통해 파일, 함수, 라인 등 다중 해상도에서 문맥적 일관성을 유지하며 버그를 위치 파악할 수 있습니다.
핵심 포인트
- 시맨틱 검색과 HRL을 통합한 C2C 프레임워크 소개
- 디버깅 탐색 공간을 점진적으로 축소하는 방식 채택
- 다중 해상도(multi-resolution)에서 문맥적 일관성 유지 가능
- Java 및 Python 데이터셋 실험으로 성능 검증
우리는 정밀한 버그 위치 파악을 위한 프레임워크 C2C(From Codebase to Culprit)를 소개합니다. 이 프레임워크는 파일, 함수, 코드 라인 등 여러 수준의 세분성(granularity)에 걸쳐 디버깅 탐색 공간을 점진적으로 축소합니다. 개발자의 자연스러운 상위-하위(top-down) 디버깅 워크플로우를 반영하기 위해, C2C는 두 단계 프로세스에서 시맨틱 검색과 계층적 강화학습(Hierarchical Reinforcement Learning, HRL)을 통합합니다. 먼저, 버그 보고서 텍스트와 사용 가능한 스택 트레이스 정보를 사용하여 임베딩 데이터베이스에 대한 의미 벡터 유사성 검색을 통해 버그 후보군을 회상 중심(recall-oriented)으로 검색합니다. 이때 임베딩은 CodeBERT를 이용한 대조 학습(contrastive learning)을 통해 미세 조정됩니다. 이렇게 축소된 탐색 공간을 기반으로, HRL 프레임워크는 파일에서 함수로, 그리고 궁극적으로 개별 코드 라인까지 버그를 점진적으로 위치 파악하며 추론합니다. 단일 세분성에서 작동하는 이전 접근 방식들과 달리, C2C는 결정 전반에 걸쳐 문맥적 일관성을 유지하면서 다중 해상도(multi-resolution) 위치 파악을 가능하게 합니다. 실제 Java 및 Python 데이터셋에 대한 실험은 C2C가 검색 정밀도와 위치 파악 정확도를 향상시킨다는 것을 보여줍니다. 또한, 제거 연구(Ablation studies)는 계층적 분해(hierarchical decomposition), 구조화된 학습 신호(structured learning signals), 그리고 보상 형성(reward shaping)이 다단계 버그 위치 파악을 발전시키는 데 기여함을 강조합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기