서지주요정보
Mutation testing of object-oriented features of Java = 자바프로그램의 객체지향 특성을 대상으로 하는 뮤테이션 시험기법
서명 / 저자 Mutation testing of object-oriented features of Java = 자바프로그램의 객체지향 특성을 대상으로 하는 뮤테이션 시험기법 / Yu-Seung Ma.
저자명 Ma, Yu-Seung ; 마유승
발행사항 [대전 : 한국과학기술원, 2005].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8016615

소장위치/청구기호

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

DCS 05014

SMS전송

도서상태

이용가능

대출가능

반납예정일

초록정보

Although object-oriented features such as encapsulation, inheritance, and polymorphism provide powerful features, they introduce new kinds of faults, some of which are difficult to detect, diagnose, and correct. Many research have been made on the object-oriented program testing, but there is little research handling object-oriented features well. This thesis presents a mutation testing technique aiming at detecting faults in the use of object-oriented features. The effectiveness of mutation testing depends heavily on mutation operators. However, previously developed operators are insufficient to test the object-oriented language features. Therefore, we developed a comprehensive set of class mutation operators first. Our mutation operators are based on all possible usage patterns of the object-oriented features, and can be used to detect faults involving inheritance, polymorphism, and dynamic binding, thus are useful for inter-class testing. The cost of mutation testing has traditionally been so high, thus the mutation testing without tool support is almost impossible. We developed an automated mutation tool that supports whole mutation process and graphical user interface for ease of use. Also, to reduce execution cost of mutation testing, we devised a cost reduction method, which uses two key technologies, Mutant Schemata Generation (MSG) and bytecode translation. This method adapts the existing MSG method for mutants that change the program behavior and uses bytecode translation for mutants that change the program structure. A key advantage is in performance: only two compilations are required and both the compilation and execution time for each is greatly reduced. Experimental results show that our cost reduction method is about five times faster than separate compilation.

객체지향 언어가 제공하는 캡슐화, 상속, 다형성 등의 객체지향적 특성들은 프로그램의 효율적인 설계와 뛰어난 재사용이라는 장점을 가져오나, 기존의 순차적 프로그램에서 볼 수 없었던 새로운 오류를 발생시킨다. 본 논문에서는 객체지향적 특성으로 인해 발생하는 오류들을 검출하기 위한 뮤테이션 기법을 제안하고, 이의 자동화 된 수행을 지원하는 뮤테이션 시스템을 디자인 및 개발하였다. 또한 뮤테이션 시험의 문제점 중 하나인 고가의 수행비용을 줄이기 위한 기법을 제안하였다. 오류 기반 시험기법인 뮤테이션 기법은 다른 오류 기반 시험기법과 마찬가지로 다루려는 오류의 정의에 따라 그 효율성이 결정되는데, 뮤테이션 기법에서 이는 뮤테이션 연산자들을 통해 이루어지므로 이들의 개발은 매우 중요하다. 클래스 뮤테이션 연산자는 객체지향적 특성으로 인해 나타나는 오류들을 정의하는 뮤테이션 연산자로, 기존에 제안된 클래스 연산자들은 객체지향적 특성들을 충분히 다루고 있지못하다. 본 논문에서는 자바 프로그램에서 나타날 수 있는 객체지향적 특성들의 모든 가능한 사용패턴을 반영하는 클래스 뮤테이션 연산자를 개발하였다. 개발된 연사자들을 자바를 대상으로 하여 만들어졌으나, 다른 객체지향 프로그램으로 적용이 가능하다. 일반적으로 뮤테이션 시험은 거대한 양의 수행 비용을 요하므로, 자동화 도구는 뮤테이션 시험의 필수적 요소이다. 현존하는 뮤테이션 도구들의 대부분은 순차프로그램 언어를 대상으로 하고 있는데, 이 도구들은 공통적으로 프로그램으로부터 추상 구문 트리를 추출하여 뮤턴트들을 생성해낸다. 하지만 이 방법은 객체지향적 특성들을 제대로 뽑아내지 못하므로, 클래스 뮤테이션 연산자를 지원하지 못한다. 이를 해결하기 위해 본 연구에서는 리플렉션을 이용하여 객체지향 특성들을 뽑아내어 뮤턴트들을 생성 및 수행시키는 자동화 도구 MuJava/sc를 개발해였다. MuJava/sc는 소스코드에 오류가 삽입된 뮤턴트들을 만들어내는데, 이들 뮤턴트들은 개별적 컴파일 (separete compilation) 기법에 의해 각각 컴파일 되어 실행 가능한 형태로 바뀐다. 따라서 많은 수의 뮤턴트를이 생성될 경우, 이들을 모두 컴파일 해야하므로 수행비용이 높아진다. 본 논문에서 제안된 비용감소 기법은 뮤턴트 생성 속도를 향상 시킴으로서 수행비용을 감소시키는 방법으로 MSG 기법과 바이트코드 변환 기법을 이용한다. 제안된 기법은 여러 오류들을 동시에 하나의 소스코드에 집어 넣거나, 소스코드가 아닌 바이트 코드에 직접 오류를 삽입함으로서 수행비용을 줄인다. 제안된 기법의 효율성을 시험하기 위해, 이를 지원하는 또 다른 뮤테이션 도구 MuJava/bc를 만들어 이의 효율성을 개별적 컴파일 기법을 사용하는 MuJava/sc의 결과와 비교하였다. 이들 두 도구는 뮤턴트 생성 및 수행방식 제외하고는 모든 면에서 동일하다. 실험 결과, MSG와 바이트 코드 변환을 이용한 비용감소 기법이 개별적 컴파일 기법을 사용하는 경우보다 약 5배정도의 비용 감소 효과를 가져왔다. 현재 본 연구에서 개발된 MuJava/sc는 공개되어 웹에서 다운받아 사용이 가능하다.

서지기타정보

서지기타정보
청구기호 {DCS 05014
형태사항 vii, 94 p. : 삽도 ; 26 cm
언어 영어
일반주기 저자명의 한글표기 : 마유승
지도교수의 영문표기 : Yong-Rae Kwon
지도교수의 한글표기 : 권용래
학위논문 학위논문(박사) - 한국과학기술원 : 전산학전공,
서지주기 Reference : p. 89-94
주제 Mutation testing
Object-oriented features
Java
뮤테이션 테스팅
객체지향 프로그램
자바
QR CODE qr code