버그 리포트는 소프트웨어에서 예상치 못한 동작이 관찰될 때 생성되며, 일반적으로 자연어로 작성되고 로그나 오류 추적 정보가 함께 제공되는 경우가 많다. 이는 문제의 원인을 식별하고 ...

http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
https://www.riss.kr/link?id=T17293063
Seoul : Sungkyunkwan University, 2025
Thesis(Ph.D.) -- Sungkyunkwan university , Department of Electrical and Computer Engineering , 2025. 8
2025
영어
서울
해석 기반의 잡음 제거 및 행위 교정을 통한 신경망 기반 디버깅 모델 성능 향상
vii, 128 p. : ill.(some col.), charts ; 30 cm
Adviser: Eunseok Lee, Young Ik Eom
Includes bibliographical reference(p. 112-123)
I804:11040-000000183805
0
상세조회0
다운로드버그 리포트는 소프트웨어에서 예상치 못한 동작이 관찰될 때 생성되며, 일반적으로 자연어로 작성되고 로그나 오류 추적 정보가 함께 제공되는 경우가 많다. 이는 문제의 원인을 식별하고 ...
버그 리포트는 소프트웨어에서 예상치 못한 동작이 관찰될 때 생성되며, 일반적으로 자연어로 작성되고 로그나 오류 추적 정보가 함께 제공되는 경우가 많다. 이는 문제의 원인을 식별하고 해결하기 위한 참조 자료로 활용된다. 소프트웨어 버그는 사용자에게 심각한 불편을 초래할 수 있으며, 경우에 따라 치명적인 장애로 이어질 수 있어 그 식별과 해결은 개발자에게 매우 중요하면서도 어려운 과제이다. 버그 리포트를 해결하는 과정은 일반적으로 두 가지 주요 단계로 구성된다: 버그 위치추적(Bug Localization)과 프로그램 수정(Program Repair)이다. 버그 위치추정은 보고된 버그의 원인이 되는 특정 소스 코드 파일, 함수 또는 라인을 식별하는 것을 목표로 한다. 결함 있는 코드가 식별되면, 프로그램 수정은 해당 오류를 수정하기 위한 패치를 생성하거나 제안하는 데 초점을 맞춘다. 이 두 단계는 자동 디버깅의 기초를 이루며, 소프트웨어의 신뢰성을 유지하고 수작업 디버깅의 부담을 줄이기 위해 필수적인 과정이다.
대규모 코드 및 버그 데이터를 기반으로 의미 있는 표현을 자동으로 학습할 수 있는 능력 덕분에, 딥러닝 기반 기술은 소프트웨어 공학 분야에서 점차 주목을 받고 있다. 버그 위치추정과 프로그램 수정을 위한 다양한 자동화 기법이 제안되어 왔으나, 딥러닝 기반 접근법은 여전히 다양한 코드베이스와 실제 버그 패턴에 대해 일관되게 일반화하는 데 어려움을 겪고 있다. 이러한 한계에 기여하는 요인 중 하나는 입력 데이터에 존재하는 잡음성 인자(noisy artifacts)로, 이는 모델의 판단을 왜곡하고 예측 성능을 저하시키는 원인이 될 수 있다. 이와 같은 잡음은 코드 포맷의 불일치, 부정확하게 작성된 버그 리포트, 학습 중 발생한 허위 상관관계 등에서 기인할 수 있다. 본 논문은 이러한 문제를 해결하기 위해, 해석 가능성 기법을 활용하여 잡음이 모델의 의사결정에 어떤 방식으로 영향을 미치는지를 체계적으로 분석하고, 버그 위치추정 및 프로그램 수정에서의 신경망 기반 접근법의 효과성을 향상시키는 것을 목표로 한다.
본 논문은 버그 위치 추정과 자동 수정 성능 향상을 위해 두 가지 핵심 관점에서 접근한다: 1) 잡음 입력 토큰, 2) 오류를 유발하는 모델 행위. 먼저, 특정 입력 토큰이 모델 성능에 부정적인 영향을 미치는 양상을 분석하고, 이를 탐지 및 필터링하는 기법을 제안한다. 이처럼 해석 기반 뉴럴 디버깅 모델을 두 축에서 개선함으로써, 실제 환경에서 모델의 정확성과 신뢰성을 높이고자 한다. 실험 결과, 제안하는 해석 기반 개선 기법은 버그 위치 추적 및 패치 생성 성능을 각각 평균 26.5%, 18.6% 향상시키며, 최대 126%, 130.4%의 성능 향상을 달성함으로써 기존 기저 모델 대비 상당한 성능 향상을 입증했다. 또한, 제안한 실패 식별 기법은 65.8%의 조기 중단 성공률과 3.2% 이내의 성능 저하로, 실제 환경에서 모델의 신뢰도를 높일 수 있다. 본 연구의 실험 결과는 모델의 실패 해석을 통한 성능향상의 필요성과 중요성을 보여주며, 향후 오류 유발 메커니즘 분석 및 그에 기반한 대응 방안 설계가 뉴럴 디버깅 성능을 더욱 향상시킬 수 있는 중요한 연구방향임을 제시한다.
주제어: 소프트웨어 엔지니어링 자동화, 버그 추적, 프로그램 자동 수정, 모델 해석, 대규모 언어 모델
다국어 초록 (Multilingual Abstract)
A bug report is created when unexpected software behavior is observed and is typically reported in natural language, often with accompanying logs or error traces. It is used as a reference for identifying and resolving the underlying issue. Software b...
A bug report is created when unexpected software behavior is observed and is typically reported in natural language, often with accompanying logs or error traces. It is used as a reference for identifying and resolving the underlying issue. Software bugs can cause major disruptions for users and may lead to critical failures, making their identification and resolution essential but difficult tasks for developers. Steps to solve bug report typically involves two main steps: bug localization and program repair. Bug localization aims to identify the specific source code files, functions, or lines that are responsible for a reported bug. Once the faulty code is located, program repair focuses on generating or suggesting patches to correct the identified errors. Together, these steps form the foundation of automated debugging and are essential for maintaining software reliability and reducing manual debugging effort.
Due to their ability to automatically learn meaningful representations from large-scale code and bug data, deep learning-based techniques have gained popularity in software engineering tasks. While various automated techniques for bug localization and program repair have been proposed, many deep learning-based approaches still face challenges in consistently generalizing across diverse codebases and real-world bug patterns. One underexplored factor contributing to this challenge is the presence of noisy artifacts—irrelevant or misleading features in the input data—that can distort model behavior and degrade prediction quality. These artifacts may stem from inconsistent code formatting, poorly written bug reports, or spurious correlations learned during training. To address this issue, this paper leverages interpretability tools to systematically analyze how such noise influences model decisions, with the goal of improving the effectiveness of neural approaches in bug localization and program repair.
This study approaches the improvement of bug localization and automated program repair performance from two key perspectives: (1) noisy input tokens and (2) model behaviors that induce errors. First, we analyze how specific input tokens negatively impact model performance and propose a method to detect and filter such tokens. By improving interpretable neural debugging models along these two axes, we aim to enhance the accuracy and reliability of models in real-world debugging scenarios. Experimental results show that our interpretation-driven refinement significantly improves bug localization and patch generation, achieving average gains of 26.5% and 18.6%, respectively, with maximum improvements of up to 126% and 130.4% over the baseline. with maximum gains of up to 126% and 130.4%. In addition, the proposed failure detection method achieves a 65.8% early-stopping success rate with only a 3.2% performance degradation, contributing to enhanced model trustworthiness in practical settings. These findings underscore the necessity and importance of performance improvements through failure interpretation, and point to future research directions in analyzing error-inducing mechanisms and designing corresponding mitigation strategies to further advance neural debugging systems.
목차 (Table of Contents)