현대 소프트웨어 유지보수에서 버그 탐지 과정은 일반적으로 테스팅을 기반으로 하고 있다. 만약 테스팅으로는 근본적으로 도달할 수 없는 버그가 존재한다면 이는 테스팅을 기반으로 하는...

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
현대 소프트웨어 유지보수에서 버그 탐지 과정은 일반적으로 테스팅을 기반으로 하고 있다. 만약 테스팅으로는 근본적으로 도달할 수 없는 버그가 존재한다면 이는 테스팅을 기반으로 하는...
현대 소프트웨어 유지보수에서 버그 탐지 과정은 일반적으로 테스팅을 기반으로 하고 있다. 만약 테스팅으로는 근본적으로 도달할 수 없는 버그가 존재한다면 이는 테스팅을 기반으로 하는 버그 탐지 흐름에서 큰 어려움이 될 수 있다. 본 논문은 기존의 소프트웨어 버그를 찾아내는 방법인 테스팅으로는 식별 불가능한 비가시적 버그의 집합인 버그 체인이라는 개념을 제안하고 이를 자동으로 탐지 및 해결하는 Bugchain Fixer를 제안한다.
Bugchain Fixer는 버그를 독립적인 단일 사건으로 보지 않고, 테스트 결과 및 코드 변경 사이의 관계 속에서 이들이 주고 받는 영향을 분석한다. 이를 위해 본 논문은 버그체인 그래프를 구성하여 숨겨진 버그 관계를 표현하고, Multi-LDA 기반 트리아지를 통해 식별된 버그체인의 영향 수준과 버그 유형을 분류한다. 또한 LLM 기반 자동 프로그램 수정 단계에서는 버그체인 관련 코드, 스택 트레이스, 트리거 테스트 케이스를 함께 제공하는 확장 컨텍스트 방식을 적용하여 패치 생성 성능을 향상시킨다.
제안된 기법의 효과를 검증하기 위해 Java와 Python의 실제 오픈 소스 버그 벤치마크인 Defects4J와 BugsInPy를 사용하였다. 실험은 일반 버그 탐지, 버그체인 탐지, 버그체인 트리아지, 자동 프로그램 수정의 네 관점에서 수행되었으며, 전통적인 머신러닝 모델과 최신 LLM 기반 모델을 baseline으로 비교하였다. 또한 통계적 평가를 위해 McNemar’s test와 Holm-Bonferroni 보정을 적용하여 통계적 유의성을 검증하였다.
실험 결과, 제안된 기법은 일반 버그 탐지에서 전반적으로 기존 baseline보다 높은 성능을 보였으며, 특히 버그체인 탐지에서는 accuracy 기준 최대 28%의 성능 향상을 보였으며 모든 LLM 계열에서 통계적으로 유의한 성능 향상을 확인하였다. Multi-LDA 기반 트리아지 역시 high-impact, medium-impact, low-impact 및 전체 대응 샘플 기준에서 기존 LDA보다 유의하게 높은 성능을 보였다. 자동 프로그램 수정 단계에서도 Top-1과 Top-5, 그리고 code, code+ST, code+TT, code+ST+TT의 모든 입력 조건에서 확장 컨텍스트 방식이 baseline보다 유의한 개선을 보였다.
목차 (Table of Contents)