서지주요정보
Mutation-based debugging of real-world multilingual programs = 프로그램 변이를 이용한 실제 다중 언어 프로그램 디버깅
서명 / 저자 Mutation-based debugging of real-world multilingual programs = 프로그램 변이를 이용한 실제 다중 언어 프로그램 디버깅 / Taehoon Kwak.
발행사항 [대전 : 한국과학기술원, 2016].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8029211

소장위치/청구기호

학술문화관(문화관) 보존서고

MCS 16010

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

Programmers maintain and evolve their software in a variety of programming languages to take advantage of various control/data abstractions and legacy libraries. The programming language ecosystem has diversi ed over the last few decades, and non-trivial programs are likely to be written in more than a single language. Unfortunately, language interfaces such as Java Native Interface and Python/C are difficult to use correctly and the scope of fault localization goes beyond language boundaries, which makes debugging multilingual bugs challenging. Moreover, since existing fault localization techniques mostly focus on small-size monolingual programs, the techniques show low accuracy on localizing the fault of large-size multilingual programs. To overcome the aforementioned limitations, I propose a mutation-based fault localization technique for real-world multilingual programs. The key intuition behind the mutation-based approach is that mutation testing results will be largely di erent depending on whether mutation is on correct statement or mutation is on faulty statement. To improve the accuracy for locating multilingual bugs, I have developed and applied new mutation operators as well as conventional mutation operators. The evaluation of the proposed approach is performed on six non-trivial multilingual bugs which are obtained from bug repositories for real-world open-source projects, such as Eclipse SWT, SQLitejdbc, Java-gnome, and Azureus. The size of target projects is ranging from 6KLOC to 341KLOC. The result is promising in that the proposed technique identi es the faulty statements as the most suspicious statements for all six bugs. Even in the worst case a programmer can locate the faulty statement within 8 statements recommended by the proposed technique. Especially, I describe a detailed experiment result to suggest that mutation-based approach often provides the mutants which can be served as a hint to fix the multilingual bug.

오늘날 많은 소프트웨어는 기존 라이브러리(legacy library)를 재사용하거나 각 프로그래밍 언어가 갖는 장점을 최대한 활용하기 위해 다중 언어로 구성되는 경우가 많이 있다. 다중 언어로 프로그램을 개발하게 되면 겪는 어려움 중 하나는 언어 간의 인터페이스 규칙을 정확히 이해하고 개발하지 않으면 고치기 어려운 결함이 발생할 수 있다는 점이다. 다중 언어 프로그램에서 발생하는 결함은 실행 흐름이 언어의 경계선을 넘나들기 때문에 개발자가 결함의 위치를 추적하기가 쉽지 않다. 또한, 기존의 결함 위치추정 방법은 단일 언어로 구성된 프로그램을 대상으로 하기 때문에, 다중 언어 프로그램에서는 정확도가 매우 떨어져서 개발자에게 도움을 주지 못한다. 본 논문에서는 다중 언어 프로그램의 결함을 효과적으로 디버깅할 수 있는 프로그램 변이를 활용한 결함 위치추정 기법인 MUSEUM을 제시한다. MUSEUM은 두 가지 관찰된 사실에 기반한 프로그램 변이 분석을 통해 결함의 위치를 추정한다. 두 개의 관찰된 사실은 변이된 프로그램에 원본 프로그램과 동일한 테스트 케이스를 실행 했을 때 테스트의 결과가 달라지는 경우를 이용하기 위한 이론적 근거를 제공해준다. MUSEUM의 결과는 실행 가능한 구문에 대한 결함 의심도 순위이다. 이 결과는 개발자가 디버깅을 수행할 때 살펴보아야 할 구문의 우선순위를 정하는 데에 도움을 준다. 기존에 제시되었던 단일 언어 프로그램에 대한 변이 규칙만 이용하는 것은 다중 언어 프로그램의 결함 위치를 추적하는데 한계점이 있으므로, 본 논문에서는 프로그램 변이 분석 방법을 다중 언어 프로그램에 효과적으로 적용하기 위하여 다중 언어의 특징을 반영한 새로운 15개의 변이 규칙을 제시하여 프로그램 변이 기반 방식의 정확도를 높였다. MUSEUM을 평가하기 위해 실제 사용 중인 오픈 소스 프로젝트의 버그 저장소에서 6개의 결함을 수집하였고 해당 프로젝트의 크기는 6KLOC에서 341KLOC까지이다. MUSEUM이 알려주는 각 프로그램 구문의 의심도 순위에 따라 실제 결함의 원인이 되는 구문을 찾아내기 위해 살펴보아야 하는 구문의 수를 측정하였고, 이 결과를 대표적인 결함 위치 추정 방법인 스펙트럼에 기반한 결함 위치추정 기법(SBFL: Spectrum-Based Fault Localization)의 결과와 비교하였다. MUSEUM의 결과에 따르면 최악의 경우에서도 8개의 구문(전체의 4.3\%)을 살펴보면 실제 결함 구문을 찾아낼 수 있었지만, SBFL의 결과를 이용하면 최악의 경우에는 모든 구문을 살펴보아야 결함 구문을 찾아낼 수 있음을 실험 결과를 통해 보였다. 특히, MUSEUM은 구문에 대한 의심도 순위를 제공할 뿐만 아니라, 의심도 순위를 추론하기 위해 사용되는 프로그램 변이를 분석하면 실제 결함을 고치는 데 도움을 줄 수 있음을 구체적인 사례를 통해 보였다.

서지기타정보

서지기타정보
청구기호 {MCS 16010
형태사항 v, 36 p. : 삽화 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 곽태훈
지도교수의 영문표기 : Moonzoo Kim
지도교수의 한글표기 : 김문주
학위논문 학위논문(석사) - 한국과학기술원 : 전산학부,
서지주기 References : p. 31-34
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서