서지주요정보
Automated testing of reactive software with non-deterministic events: a case study on LG electric oven = 비결정적 이벤트를 처리하는 반응형 소프트웨어를 위한 자동화 테스팅 기법: LG 전기 오븐 사례 연구
서명 / 저자 Automated testing of reactive software with non-deterministic events: a case study on LG electric oven = 비결정적 이벤트를 처리하는 반응형 소프트웨어를 위한 자동화 테스팅 기법: LG 전기 오븐 사례 연구 / Yong Bae Park.
발행사항 [대전 : 한국과학기술원, 2015].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8027723

소장위치/청구기호

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

MCS 15018

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

In our daily lives, we utilize numerous devices controlled by software including home appliance products such as electric ovens and refrigerators. Such devices has reactive software which repeat receiving a user input/event through an event handler, updating their internal state based on the input, and generating outputs. A challenge to test a reactive program is to check if the program correctly reacts to various non-deterministic sequence of events because an unexpected sequence of events may make the system fail due to the race conditions between the main loop and asynchronous event handlers. Thus, it is important to systematically generate various sequences of events by controlling the order of events and relative timing of event occurrences with respect to the main loop execution. In this dissertation, we report our industrial experience to solve the aforementioned problem by developing a systematic event generation framework based on concolic testing technique. The framework systematically generates both event ordering and event timing to test reactive software by transforming source code of the target software. The source code transformation adds a symbolic variable that decides whether or not an event is raised at a specific location in the target program. Using the transformed code, a concolic testing technique systematically generated various values on the symbolic variables to test various event ordering and timing. We have applied the framework to a LG electric oven and detected several critical bugs in both unit testing and integration testing. In unit testing, we applied the framework to three modules where 2 concurrency bugs are found. In integration testing, we found a bug that causes the oven not response to any user inputs due to the illegal state transition. To evaluate effectiveness and efficiency of the framework, we also compared our framework with noise injection random testing technique. The comparison results show that our framework finds a corner-case bug faster than the random testing technique.

일상 생활 속에서 사용하는 자주 사용하는 전자레인지, 냉장고와 같은 가전제품에는 하드웨어를 제어하는 반응형 소프트웨어가 포함되어 있다. 반응형 소프트웨어는 이벤트 핸들러를 실행하여 사용자 입력과 이벤트를 받고, 입력 받는 이벤트에 따라서 내부 상태를 변경한 후에, 결과를 출력하는 것을 반복한다. 이러한 반응형 소프트웨어에서는 이벤트의 발생이 비결정적(non-deterministic)이며, 이벤트 핸들러와 메인 루프의 실행 순서가 경쟁 상태이기 때문에 개발자가 의도하지 않은 이벤트 발생 순서에 의해서 오류가 발생할 수 있다. 따라서 반응형 소프트웨어를 효과적으로 테스팅하기 위해서는 사용자 입력 값에 따라서 소프트웨어가 올바르게 동작하는 가를 확인하는 것뿐만이 아니라, 다양한 이벤트 발생 순서와 발생 시점에 따라서 소프트웨어가 올바르게 동작하는 가를 확인해야 한다. 즉, 반응형 소프트웨어를 테스트할 때, 메인 루프의 실행을 기준으로 한 상대적인 이벤트 발생 시점과 이벤트의 순서를 제어하여 소프트웨어의 다양한 행동을 관찰하는 것이 중요하다. 본 논문은 산업체에서 개발하는 반응형 소프트웨어를 테스트하기 위해서 concolic 테스팅 기법을 기반으로한 이벤트 생성 프레임워크를 소개하고, 실제 반응형 소프트웨어에 적용한 사례연구를 설명한다. 이 프레임워크는 실행 이벤트의 발생 순서와 시간을 체계적으로 생성하기 위해서 반응형 소프트웨어의 소스코드를 수정하고, 수정된 코드에 대해서 concolic 테스팅을 수행한다. 코드 수정 단계에서는 심볼릭 변수를 추가하고, 대상 프로그램의 특정 실행 시점에 이벤트를 발생시킬지를 심볼릭 변수로 결정한다. 이후 수정된 코드로 concolic 테스팅을 수행하면, concolic 테스팅은 심볼릭 변수를 체계적으로 변경하면서 다양한 이벤트 발생 시점과 순서를 생성한다. 이벤트 생성 프레임워크를 LG전자의 전기 오븐에 적용하여 단위 테스트와 통합 테스트를 수행한 결과, 오븐 제어 소프트웨어 내의 버그를 찾아내었다. 단위 테스트에서는 오븐 제어 소프트웨어의 3개의 모듈에 프레임워크를 적용하였고, 2개의 동시성 버그를 찾아내었다. 통합 테스트에서는 오븐이 비정상적인 상태로 전환되어 사용자의 입력이 무시되는 버그를 찾아내었다. 그리고 프레임워크가 얼마나 효과적이고 효율적인가를 실험적으로 보이기 위해서 랜덤 테스팅 기법과 비교하였으며, 프레임워크가 렌덤 테스팅보다 발견하기 어려운 버그를 더 효과적이고 효율적으로 찾는다는 것을 실험적으로 보였다.

서지기타정보

서지기타정보
청구기호 {MCS 15018
형태사항 v, 38 p. : 삽화 ; 30 cm
언어 영어
일반주기 저자명의 한글표기 : 박용배
지도교수의 영문표기 : Moon Zoo Kim
지도교수의 한글표기 : 김문주
Including Appendix
학위논문 학위논문(석사) - 한국과학기술원 : 전산학과,
서지주기 References : p.
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서