최근 소프트웨어 산업의 발전으로 소프트웨어의 복잡성이 매우 증가하였다. 이에 따라, 개발자들의 크고/작은 실수들이 발생하게 되었으며 아직까지도 많은 개발자들이 디버깅에 많은 시간을 할애하고 있다. Eclipse 오픈 소스 프로젝트에서는 하루 평균 약 300건의 버그 리포트가 제출되고 있으며, 크고/작은 버그들에 대해서 자동적으로 버그를 정정한다면 소프트웨어 품질을 좋아질 것이다. 본 논문은 이러한 문제를 해결하기 위해 버그 정정 관리를 위한 프레임워크를 제안한다. 버그 정정 관리 프레임워크에는 버그 심각도 예측, 버그 정정 개발자 추천, 버그 로컬라이제이션, 프로그램 버그 정정으로 구성한다. 먼저 버그 심각도 예측에는 버그 리포트에 전처리 과정을 진행하고, 토픽 모델을 구축한다. 워드 임베딩 과정을 통해 합성곱 신경망과 장단기 메모리를 사용하여 각 토픽들에 학습을 적용한다. 버그 정정 개발자 추천에서는 버그 리포트에 대해 전처리 과정과 토픽 모델을 구축한다. 제안한 유사 버그 리포트 검색 기법을 진행하여 유사 버그 리포트를 추출한다. 워드 임베딩 과정을 통해 합성곱 신경망과 장단기 메모리를 사용하여 학습을 진행한다. 버그 로컬라이제이션에서는 버그 리포트, 소스코드 파일, 스택 트레이스를 추출하여 텍스트 특징 추출 과정을 진행한다. 추출된 텍스트 특징들을 결합하여, 오토인코더에 넣어 학습을 진행하고 출력을 합성곱 신경망과 장단기 메모리 알고리즘에 넣어 최종적으로 버기 소스코드 파일을 예측한다. 프로그램 버그 정정에서는 버그 리포트, 소스코드 파일, 키워드 검색을 통한 Github 관련 소스코드 및 설명을 파싱한다. 프로그램 변환 과정을 거쳐 Seq-GAN 알고리즘으로 학습을 진행한다. 새로운 버기 프로그램이 제출되면, Seq-GAN 모델에 넣어 프로그램 패치를 생성한다. 생성된 프로그램 패치가 적절하게 생성되었는지 판단하기 위해 적합도 함수를 이용한다. 주어진 모든 테스트 케이스를 통과하면 프로그램 버그 정정이 적절하게 되었다고 판단한다. 본 프레임워크의 모델에 대한 성능을 평가하기 위해 오픈 소스 프로젝트로 베이스라인과 비교하였으며 제안한 모델이 더 좋은 성능을 보였다. 향후 매개변수 최적화 및 다양한 알고리즘 결합으로 프레임워크의 성능을 더욱 향상할 예정이다.
With the recent development of the software industry, the complexity of software has increased greatly. As a result, big / small mistakes of developers have occurred, and many developers still spend a lot of time debugging. On average, about 300 bug reports are submitted in the Eclipse open source project per day, and software quality will be improved if bugs are automatically corrected for large / small bugs. In this paper, we propose a framework for managing bug fixes to solve these problems. The bug correction management framework consists of predicting the severity of a bug, recommending a developer to fix a bug, localizing a bug, and fixing a program bug. First of all, to predict the severity of a bug, we preprocess the bug report and build a topic model. Through the word embedding process, learning is applied to each topic using a convolutional neural network and long- and short-term memory. The bug correction developer recommendation builds a pre-processing and topic model for bug reports. We proceed with the proposed similar bug report search technique to extract the similar bug report. Through the word embedding process, learning is performed using a convolutional neural network and long and short-term memory. In bug localization, text features are extracted by extracting bug reports, source code files, and stack traces. Combining the extracted text features, put them into an auto-encoder to learn, and put the output into a convolutional neural network and a long- and short-term memory algorithm to finally predict the buggy source code file. In the program bug correction, the Github related source code and description are parsed through a bug report, source code file, and keyword search. After the program conversion process, learning is performed using the Seq-GAN algorithm. When a new buggy program is submitted, it is added to the Seq-GAN model to generate a program patch. The fitness function is used to determine whether the generated program patch has been properly generated. After passing all the given test cases, it is judged that the program bug correction is appropriate. To evaluate the performance of the proposed framework''s model, it was compared with the baseline as an open source project, and the proposed model performed better. In the future, we plan to further improve the performance of the framework by optimizing parameters and combining various algorithms.