Publications

Detailed Information

정적분석을 활용한 이단계 언어를 위한 소프트웨어 시험 기법 확장 : Extending Software Test Methods for Two-staged Languages Using Static Analysis

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

김택수

Advisor
우치수
Major
전기·컴퓨터공학부
Issue Date
2012-02
Publisher
서울대학교 대학원
Abstract
본 논문에서는 정적 분석 기법을 활용하여 기존의 소프트웨어 테스트 기법을 이단계 언어에 적용하기 위한 확장 방법을 제안한다. 이단계 언어의 동적 코드 생성 특성으로 인해 기존의 테스트 기법을 그대로 적용하는 것은 쉽지 않다. 본 논문에서는 기존의 테스트 기법을 이단계 언어에 그대로 적용했을 때 결과가 왜곡될 수 있음을 보이고 그 원인을 파악한다.

본 논문은 동적으로 생성 가능한 코드를 정적 분석을 활용해 예측하는 분석 방법을 제안한다. 또한 예측 결과를 활용하여 이단계 언어로 작성된 프로그램의 제어 흐름이 어떻게 구성될 지를 분석하는 분석기를 고안한다. 또한 수학적인 검증을 통해 분석기의 정당성을 보인다.

테스트 묶음의 품질을 평가하는 척도인 테스트 커버리지, 소프트웨어 시스템이 얼마나 복잡한 지를 평가하는 순환 복잡도와 테스트 케이스 자동 생성 기법인 콘콜릭 테스팅의 세 가지 테스트 기법을 이단계 언어에 적용하도록 확장하였으며 각 확장 과정의 정당성을 증명하였다.

본 논문에서 확장으로 대상으로 한 테스트 기법과 척도들은 널리 알려지고 사용되는 기법들이다. 또한 다양한 사례 연구를 통해 그 유효성을 입증받았기 때문에 이 테스트 기법들을 이단계 언어에 적용하는 방법에 대한 연구는 이단계 언어로 작성된 프로그램의 테스트에 소요되는 시간과 비용을 줄이고 신뢰도를 높이는 데 도움이 될 것으로 기대한다. 또한 확장된 테스트 기법을 활용하여 보다 견고한 소프트웨어 시스템을 개발할 수 있다.
This paper extends software test methods for a program written in a two-staged programming language. Applying traditional software test methods to two-staged languages or multi-staged languages is difficult because of the metaprogramming features. This paper shows that a result of the traditional test methods may be distorted by dynamically generated code fragments and finds out the reason.

This paper proposes a static analyzer estimating how many code fragments can be generated and executed in the execution time using. A control flow of a program written in a two-staged programming language is also composed with a result of the analysis. Moreover, a mathematical proof for a correctness of the analysis is provided.

Three typical test methods: test coverage, cyclomatic complexity, and concolic testing have been extended in this paper. Test coverage is a software measurement for assessment of a quality of test suites and cyclomatic complexity is one of the most popular software complexity metric. Concolic testing is an automatic test case generation method. For these methods, this paper extends them to apply for a two-staged language and prove the correctness.

Test methods and metrics extended in this paper are well-known and popular. Moreover, their utility have been proved by many studies. I hope that this study can help not only increasing a reliability of a program written in a two-staged language but also building more robust software system with the extended test methods.
Language
kor
URI
https://hdl.handle.net/10371/156640

http://dcollection.snu.ac.kr:80/jsp/common/DcLoOrgPer.jsp?sItemId=000000001643
Files in This Item:
There are no files associated with this item.
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share