Effective and efficient test generation for multithreaded programs using concurrency coverage metrics동시성 커버리지 메트릭을 이용한 멀티쓰레드 프로그램의 효과적이고 효율적인 테스트 생성

Cited 0 time in webofscience Cited 0 time in scopus
  • Hit : 526
  • Download : 0
오늘날 많은 소프트웨어는 멀티코어 하드웨어를 효과적으로 활용할 수 있는 멀티쓰레드 프로그램(multithreaded program)형태로 개발되고 있다. 멀티쓰레드 프로그램 개발의 난점 중 하나는 기존의 소프트웨어 테스팅(software testing) 방법이 멀테쓰레드 프로그램의 동시성 오류 검출과 동작정확성 검증에 효과적이지 않다는 점이다. 프로그램 입력 값에 의해서만 동작이 결정되는 비 멀티쓰레드 프로그램(단일쓰레드 프로그램)과 달리, 멀티쓰레드 프로그램의 동작은 입력 값뿐만 아니라 쓰레드 스케쥴(thread schedule), 즉 쓰레드 간 실행순서에 의해서도 영향을 받는다. 일반적인 멀티쓰레드 프로그램의 경우, 쓰레드 스케쥴이 실행 시점에 비결정적(non-deterministic) 쓰레드 스케쥴러에 의해 결정되기 때문에, 규모가 작은 프로그램에 대해서조차 발생 가능한 쓰레드 스케쥴이 극심히 많고, 별도의 장치 없이 쓰레드 스케쥴의 의도적 생성이 어렵기 때문에, 기존의 비 멀티쓰레드 프로그램을 대상으로 한 테스팅 방법으로는 효과적이고 효율적인 테스팅 수행이 어렵다. 멀티쓰레드 프로그램의 오류검출과 동작정확도 검증을 위해 현재까지 개발된 여러 기법은, 분석 능력이 제한적이거나 검증 대상 프로그램 크기에 대한 확장성이 낮아 실제 소프트웨어 개발에서 실용성이 낮은 실정이다. 본 논문은 동시성 커버리지 메트릭(concurrency coverage metric)을 활용하여 멀티쓰레드 프로그램을 효과적이고 효율적으로 테스팅하는 자동 테스팅 기법을 제안한다. 동시성 커버리지 메트릭은, 현재 널리 쓰이는 분기/구문 커버리지 메트릭과 유사하게, 검증 대상 프로그램에서 대한 테스팅 조건을 생성함으로써 멀티쓰레드 프로그램의 체계적인 테스팅을 지원하고자 제안된 방법론이다. 반면, 동시성 커버리지 메트릭이 실제 소프트웨어 테스팅에서 어느 정도 효용성을 제공하는 지 실증적으로 입증되지 않았으며, 그동안 동시성 커버리지 메트릭을 활용한 자동 테스팅 기법도 제한적인 수준이었다. 본 논문은 우선, 동시성 커버리지 메트릭이 테스트 메트릭으로서 멀티쓰레드 프로그램 테스팅에 효과적인 기능을 제공하는지를 실험적 방법으로 검토하였다. 여러 멀티쓰레드 프로그램을 이용한 실험 결과에 따르면, 현재 제안된 대부분의 동시성 커버리지 메트릭은 멀티쓰레드 프로그램 테스팅의 오류 검출능력을 추정하고 유용한 테스트 생성 지표를 제공하는데 효과적인 기능을 제공한다. 본 논문은 두 번째로, 테스팅 과정에서 높은 동시성 커버리지를 단시간에 달성하는 쓰레드 스케쥴 생성 알고리즘을 제시하고, 이를 기반으로 한 자동 테스팅 기법을 소개한다. 본 논문이 제시한 자동 테스팅 기법은, 기존에 제안된 동시성 커버리지 메트릭의 한계점을 개선한 새로운 메트릭인 조합적 동시성 커버리지 메트릭 (combinatorial concurrency coverage metric)를 활용한다. 본 논문이 제시한 자동 테스팅 기법을 기존의 멀티쓰레드 프로그램 테스팅 기법과 비교한 실험 결과에 따르면, 본 논문의 기법이 기존 기법보다 향상된 멀티쓰레드 프로그램 오류 검출 효용성과 효율성을 달성함을 알 수 있다. 마지막으로, 본 논문은 동시성 커버리지 메트릭을 활용하여 멀티쓰레드 프로그램에 대해 효과적으로 회기 테스팅(regression testing)을 수행하는 동시성 커버리지 기반 회기 테스팅 기법을 제시한다. 본 논문이 제시한 기법을 기존 기법과 비교한 실험결과에 따르면, 동시성 커버리지 기반 회기 테스팅 기법은 멀티쓰레드 프로그램 수정 과정에서 발생하는 동시성 회기 오류를 기존 기법보다 효과적이고 효율적으로 검출한다.
Advisors
Kim, Moonzooresearcher김문주researcher
Description
한국과학기술원 :전산학부,
Publisher
한국과학기술원
Issue Date
2015
Identifier
325007
Language
eng
Description

학위논문(박사) - 한국과학기술원 : 전산학부, 2015.8 ,[viii, 133 p. :]

Keywords

Software testing; Multithreaded program; Coverage metric; Concurrency bug; Automated test generation; 소프트웨어 테스팅; 멀티쓰레드 프로그램; 커버리지 메트릭; 동시성 오류; 자동 테스트 생성

URI
http://hdl.handle.net/10203/206695
Link
http://library.kaist.ac.kr/search/detail/view.do?bibCtrlNo=628706&flag=dissertation
Appears in Collection
CS-Theses_Ph.D.(박사논문)
Files in This Item
There are no files associated with this item.

qr_code

  • mendeley

    citeulike


rss_1.0 rss_2.0 atom_1.0