• 제목/요약/키워드: 테스트 커버리지

검색결과 86건 처리시간 0.025초

동적 분기 커버리지를 위한 테스트 데이터 자동 생성 (Automated Test Data Generation for Dynamic Branch Coverage)

  • 정인상
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제2권7호
    • /
    • pp.451-460
    • /
    • 2013
  • 높은 테스트 커버리지 달성을 위해 심볼릭 실행, 자료 흐름 분석 및 제약 해결 기법 등을 이용하여 테스트 데이터 생성을 하는 것이 일반적이다. 최근에 그와 같은 정교한 수단 없이도 높은 커버리지를 효과적으로 달성 할 수 있는 방법이 제안되었다. 그러나 이 방법도 실행 중에 다른 메모리 로케이션들이 바인딩되는 분기 조건을 갖는 프로그램에 대해서는 높은 커버리지를 가져오는 테스트 데이터 생성이 어려웠다. 특히 플래그 조건을 가지는 프로그램에 대해서는 특정 분기들이 실행되지 않아 높은 커버리지를 달성하지 못하는 경우가 발생한다. 이 논문에서는 이 문제를 다루기 위하여 기존 커버리지 기준을 개선한 동적 분기 커버리지 기준들과 동적 분기에 기반 한 테스트 데이터 생성 전략을 제안한다. 실험을 통하여 플래그 조건이 있는 프로그램들에 대해서도 제안된 방법이 기존의 방법에 비해 효과적으로 커버리지를 달성함을 보인다. 요약은 무슨 연구를 어떻게 수행하였는지, 주된 연구결과와 그 중요성에 관해 간결하게 기술하여야 한다.

최적화 컴파일된 자바스크립트 함수에 대한 최적화 해제 회피를 이용하는 런타임 가드 커버리지 유도 퍼저 (Runtime-Guard Coverage Guided Fuzzer Avoiding Deoptimization for Optimized Javascript Functions)

  • 김홍교;문종섭
    • 정보보호학회논문지
    • /
    • 제30권3호
    • /
    • pp.443-454
    • /
    • 2020
  • 자바스크립트 엔진은 주로 웹 브라우저에 적재되어 웹 페이지를 표시하는 여러 기능 중 자바스크립트 코드를 입력으로 받아 처리하는 모듈이다. 자바스크립트 엔진 내 취약점은 종단 사용자의 시스템 보안을 위협할 수 있어 많은 퍼징 테스트 연구가 수행되었다. 그중 일부 연구는 자바스크립트 엔진 내 테스트 커버리지를 유도하는 방식으로 퍼징 효율을 높였으나, 최적화되어 동적으로 생성된 기계어 코드에 대한 커버리지 유도 퍼징은 시도되지 않았다. 최적화된 자바스크립트 코드는 예외적인 흐름 발생 시 코드를 해제하는 런타임 가드의 기능으로 인해 퍼징을 통한 충분한 반복 테스트가 어렵다. 본 논문은 이러한 문제점을 해결하기 위해 최적화 해제를 회피하여 최적화된 기계어 코드에 대해 퍼징 테스트를 수행하는 방법을 제안한다. 또한, 동적 바이너리 계측 방식으로 수행된 런타임 가드의 커버리지를 계측하고 커버리지 증가를 유도하는 방식을 제안한다. 실험을 통해, 본 연구가 제안하는 방식이 런타임 가드 커버리지, 시간당 테스트 횟수의 두가지 척도에서 기존의 방식보다 뛰어남을 보인다.

J2EE 애플리케이션의 흐름분석을 통한 커버리지 기반 테스트 방법 (A coverage driven test method for J2EE Applications through flow analysis)

  • 이정규;국승학;김현수
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2008년도 추계학술발표대회
    • /
    • pp.516-519
    • /
    • 2008
  • 최근 엔터프라이즈 애플리케이션은 J2EE 컴포넌트로 개발된다. J2EE 플랫폼은 애플리케이션을 개발하는데 편리한 기능을 제공한다. 하지만 J2EE 애플리케이션의 테스트는 J2EE 서버 내부에서 자원을 관리하는 컨테이너의 접근 통제 때문에 기존의 테스트 방법으로 수행하기 어렵다. 본 논문에서는 J2EE 환경에 맞는 J2EE 애플리케이션의 테스트 방법을 제안한다. 이 방법은 애플리케이션을 구성하는 EJB 컴포넌트를 정적 및 동적 분석하여 획득한 정보로 애플리케이션의 메소드 커버리지를 분석하고, 메소드 커버리지를 향상시키기 위한 테스트 데이터를 생성하여 J2EE 애플리케이션을 테스트한다.

MC/DC 커버리지를 만족하는 콘콜릭 테스팅 연구 (Concolic testing research to satisfy the MC/DC coverage)

  • 최석원;구근회;최진영
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.423-425
    • /
    • 2016
  • 콘콜릭 테스팅(Concolic testing)은 프로그램 실행을 실제 구체적인 입력 값(Concrete Values)을 입력하며, 동시에 심볼릭 실행 (Syrnbolic execution)을 진행하는 테스팅 기법이다. 콘콜릭 테스팅은 모든 실행 가능 경로를 탐색하여, 테스트 케이스를 자동 생생한다. 그래서 높은 분기 커버리지를 나타내지만, 안전성을 목표로 하는 MC/DC 커버리지는 만족하지 못한다. 본 논문에서는 분기 커버리지와 MC/DC 커버리지를 만족하는 테스트 케이스를 자동생성하는 CREST 도구 개선을 제안한다.

분기 커버리지를 위한 동적 테스트 데이터 생성 (Dynamic Test Data Generation for Branch Coverage)

  • 정인상;성영락
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(B)
    • /
    • pp.150-152
    • /
    • 2012
  • 일반적으로 테스트 데이터 자동 생성을 지원하기 위해 심볼릭 실행기나 제약 해결기와 같은 도구를 요구한다. 그러나 이와 같은 도구들을 개발하는 것은 상당한 노력이 요구되는 것도 사실이다. 이 논문에서는 이러한 도구들의 지원 없이 분기 커버리지를 효과적으로 달성할 수 있는 테스트 데이터 생성 방법을 제안한다. 이를 위해 경로 지향 테스트 데이터 생성을 위해 개발된 Korel의 방법을 확장하여 프로그램의 분기들을 가능한 많이 실행할 수 있는 테스트 데이터를 효과적으로 생성하는 방법을 제안한다.

코드 커버리지를 높이기 위한 상태 머신 변환 방법 (Transformation Method for a State Machine to Increase Code Coverage)

  • 윤영동;최현재;채흥석
    • 정보과학회 논문지
    • /
    • 제43권9호
    • /
    • pp.953-962
    • /
    • 2016
  • 모델 기반 테스팅은 시스템의 행위를 표현하는 모델을 시스템 명세로 활용하여 테스트를 수행하는 기술이다. 자동차, 국방/항공, 의료, 철도, 원자력과 같은 산업 도메인에서는 소프트웨어의 품질 향상을 위해 모델 기반 테스팅과 코드 커버리지 기반 테스팅을 요구하고 있다. 모델 기반 테스팅과 코드 커버리지 기반 테스팅이 모두 요구됨에도 모델과 소스 코드 간의 추상화 수준 차이로 인해 모델 기반 테스팅만으로 높은 코드 커버리지를 달성하는 것이 어려워 모델 기반 테스팅과 코드 커버리지 기반 테스팅이 별도로 수행되어져 왔다. 본 연구에서는 기존의 모델 기반 테스팅의 한계점을 개선하기 위하여 모델 기반 테스팅에서 테스트 모델로서 이용되는 대표적인 모델링 방법 중 하나인 프로토콜 상태 머신을 테스트 모델로서 이용하여 효과적으로 코드 커버리지를 향상시키는 상태 머신 변환 방법을 제안한다. 또한 본 연구에서는 두 시스템을 대상으로 한 사례 연구를 수행하여 제안 방법의 효과성을 분석하였다.

C 프로그램을 테스팅하기 위한 분기 커버리지에 기반을 둔 자동 테스트 데이터 생성 (Automated Test Data Generation Based on Branch Coverage for Testing C Programs)

  • 정인상
    • 한국콘텐츠학회논문지
    • /
    • 제12권11호
    • /
    • pp.39-48
    • /
    • 2012
  • 소프트웨어 테스팅이 소프트웨어 개발 비용의 상당 부분을 차지하는 것은 잘 알려진 사실이다. 소프트웨어 테스팅 비용을 줄이기 위해 소프트웨어 테스트 데이터를 자동으로 생성하는 방법에 많은 연구가 이루어지고 있다. 일반적으로 테스트 데이터 자동 생성을 지원하기 위해 심볼릭 실행기나 제약 해결기와 같은 정교한 도구들을 요구한다. 그러나 이와 같은 도구들을 개발하거나 구입하는 것은 소프트웨어 테스트 관련 비용을 증가시키는 또 다른 요소로 작용된다. 이 논문에서는 심볼릭 실행이나 제약 해결에 의존되지 않는 동적 테스트 데이터 방법을 제안한다. 제안된 방식은 분기 커버리지 기준을 효과적으로 만족하도록 Korel의 경로 지향 테스트 데이터 생성 방법을 확장한다. 이 논문에서는 삼각형 분류 프로그램에 대한 실험을 통하여 제안된 방법이 분기 커버리지를 매우 효과적으로 달성함을 보인다.

Burr 커버리지 함수에 기초한 ENHPP소프트웨어 신뢰성장모형에 관한 연구 (The Study for ENHPP Software Reliability Growth Model based on Burr Coverage Function)

  • 김희철
    • 한국컴퓨터정보학회논문지
    • /
    • 제12권4호
    • /
    • pp.33-42
    • /
    • 2007
  • 소프트웨어 제품의 정확한 인도시기를 예측하거나 효용성 및 신뢰성을 예측하기 위해서는 소프트웨어 테스팅 과정에서 중요한 요소인 테스트 커버리지를 이용하면 보다 효율적인 테스팅 작업을 할 수 있다. 이런 모형을 ENHPP모형이라고 한다. 본 논문에서는 기존의 소프트웨어 신뢰성 모형인 지수 커버리지 모형과 S-커버리지 모형을 재조명하고 이 분야에 적용될 수 있는 Burr 분포에 기초한 Burr 커버리지 모형을 제안하였다. 고장 간격 시간으로 구성된 자료를 이용한 모수추정 방법은 최우추정법 과 일반적인 수치해석 방법인 이분법을 사용하여 모수 추정을 실시하고 효율적인 모형 선택은 편차자승합(SSE) 및 콜모고로프 거리를 적용하여 모형들에 대한 효율적인 모형선택도 시도하였다. NTDS 자료를 사용한 임무시간 비교 분석한 결과 Burr 커버리지 모형 시행이 지수나 S-형 모형보다 우수함을 보이고 있다. 이 자료들에서 기존의 모형과 Burr 커버리지 모형의 비교를 위하여 산술적 및 라플라스 검정, 편의 검정등을 이용하였다.

  • PDF

LTL Synthesis와 그래프 커버리지를 이용한 GUI 테스트 경로 생성 (LTL Synthesis and Graph coverage, GUI test path generation using)

  • 김태균;조민택;권기현
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(A)
    • /
    • pp.217-220
    • /
    • 2011
  • LTL Synthesis와 그래프 커버리지를 이용하여 시스템의 요구사항으로 속성을 추출하여 GUI 의 테스트경로 생성에 대하여 설명한다. LTL Synthesis 는 GR formula 라는 특수한 형태를 사용하여 시스템의 상태, 환경으로부터의 입력 정보와 시스템의 행위, 상위 수준의 작업의 작업 명세를 입력으로 받아 GR formula 형태로 변환하고 기대되는 작업이 실현 가능하면 오토마타를 생성한다. 이렇게 생성된 오토마타에 그래프 커버리지를 이용하여 실험 가능한 GUI 테스트 경로를 생성하여 시스템을 검사한다.

사물 인터넷 환경을 위한 BitTorrent 알고리즘 기반의 테스트 커버리지 측정기법 (A Method of Test Coverage Measurement Based on BitTorrent for Internet of Things Environment)

  • 류호동;이우진
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제3권10호
    • /
    • pp.365-370
    • /
    • 2014
  • 사물 인터넷(Internet of Things : IoT) 환경이 이미 네트워크기반의 서비스 분야에서 가장 대표적인 패러다임이 되었음에도 불구하고, 인간과 사물 및 환경이 서로 제약 없이 연결되는 특성으로 인하여 해당 환경에 특화된 테스트 기법은 여전히 많은 연구가 필요한 상황이다. 에뮬레이터 기반에서 테스트 대상 장치를 구동하는 대부분의 기존 방식은 IoT와 같이 그 연결이 다양해지고 장치의 구분이 불분명해질수록 실제 환경과의 격차가 커져 결론적으로 부정확한 테스트 결과가 산출될 가능성이 높다. 본 논문에서는 이러한 문제를 개선하고자 각각의 장치들의 오버헤드를 최소화함과 동시에 대상 코드의 특정 부분이 중복적으로 테스트되지 않는 특징을 가진 BitTorrent기반의 테스트 커버리지 측정 기법을 제안한다.