• 제목/요약/키워드: 분기 커버리지

검색결과 10건 처리시간 0.022초

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

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

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의 방법을 확장하여 프로그램의 분기들을 가능한 많이 실행할 수 있는 테스트 데이터를 효과적으로 생성하는 방법을 제안한다.

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

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

실행가능 목적 코드를 기반으로 하는 자동 테스트 데이터 생성 (Automated Test Data Generation based on Executable Object Codes)

  • 정인상
    • 한국인터넷방송통신학회논문지
    • /
    • 제12권2호
    • /
    • pp.189-197
    • /
    • 2012
  • 고수준의 명세나 고수준의 프로그래밍 언어로 작성된 원시 코드를 이용하여 테스트 데이터를 생성하는 것이 일반적이다. 그러나 어떤 상황에서는 이러한 테스트 데이터 생성 정보가 항상 이용가능하지 않을 수 있다. 이 논문에서는 실행가능 목적코드를 바탕으로 테스트 데이터를 생성하는 방법을 제안한다. 제안된 방법은 정교한 목적 코드 분석을 필요로 하지 않은 매우 간단한 함수 최소화 기법을 사용하여 동적으로 테스트 데이터를 생성한다. 삼각형 분류 프로그램에 대한 실험을 통하여 분기 커버리지를 매우 효과적으로 달성함을 보인다.

라이브러리 퍼징의 커버리지 향상 방법 연구 (A Study of Coverage Improvement for Library Fuzzing)

  • 김서영;조민기;김종신;권태경
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1079-1085
    • /
    • 2020
  • 라이브러리 구현의 결함을 발견하기 위해 동적 분석 방법인 퍼징(fuzzing)이 사용되고 있다. 라이브러리 대상 퍼징은 구현된 함수만 테스트를 할 수 있으므로 더 높은 코드 커버리지를 달성하기 위해서는 구현되지 않은 함수들을 추가로 구현해주어야 한다. 하지만 라이브러리 함수들의 호출 관계를 고려하지 않고 함수를 추가하면 이미 테스트를 수행한 함수가 추가되는 문제가 발생할 수 있다. 본 논문에서는 라이브러리 퍼징의 코드 커버리지 성능을 향상시키기 위한 개선 방법을 제안한다. 먼저, 라이브러리 퍼징의 대상 함수를 효율적으로 추가하기 위해 라이브러리의 함수 호출 그래프 분석하고 구현되지 않은 라이브러리 함수를 추가 구현한다. 그리고 라이브러리의 해결하기 어려운 제약조건을 가진 분기를 탐색하는 방법으로 하이브리드 퍼징을 적용한다. OpenSSL, mbedTLS, Crypto++을 대상으로 실험한 결과, 제안한 방법이 코드 커버리지를 증가에 효과적인 것을 확인하였다.

목적 지향 콘콜릭 테스팅 (Goal-oriented Concolic Testing)

  • 정인상;박정규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제37권10호
    • /
    • pp.768-772
    • /
    • 2010
  • 콘콜릭 테스트는 높은 테스트 커버리지를 달성하기 위해 실제 프로그램 수행과 심볼릭 수행을 결합하여 테스트 데이터를 생성한다. CREST는 콘콜릭 테스팅을 구현한 대표적인 open-source인 테스트 도구이다. 그러나 현재 CREST는 기본적으로 프로그램의 모든 가능한 실행 경로들을 탐색하는 것을 목적으로 한다. 이 때문에 특정 분기 또는 블록만을 테스트하는 경우에는 비효율적일 수 있다. 이 논문에서는 프로그램 상의 한 분기 또는 블록을 주고 이률 실행할 수 있는 테스트 데이터를 생성하는 목적 지향 콘콜릭 테스트 방법을 제안한다.

CREST-BV: 임베디드 소프트웨어를 위한 Bitwise 연산을 지원하는 Concolic 테스팅 기법 (CREST-BV: An Improved Concolic Testing Technique with Bitwise Operations Support for Embedded Software)

  • 김윤호;김문주;장윤규
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2012년도 한국컴퓨터종합학술대회논문집 Vol.39 No.1(B)
    • /
    • pp.120-122
    • /
    • 2012
  • 기존 소프트웨어 테스팅 기법은 개발자가 수동으로 테스트 케이스를 작성해야 하는 비효율성으로 인해 임베디드 소프트웨어의 안정성 확보에 어려움이 있다. Concolic 테스팅 기법은 자동으로 소프트웨어 테스트 케이스를 생성함으로써 기존 소프트웨어 테스팅 기법의 문제를 해결했지만, 임베디드 소프트웨어 테스트에 필수적인 bitwise 연산을 지원하지 않는 등의 문제가 있었다. 본 논문에서는 임베디드 소프트웨어를 위해 bitwise 연산을 지원하는 Concolic 테스팅 개선 방법에 대한 연구를 수행하고 오픈 소스 임베디드 소프트웨어 Busybox에 적용하여 기존 연구와 결과를 비교하였다. Busybox의 10개 유틸리티에 적용한 결과 기존 연구 결과 대비 평균 33%의 분기 커버리지 향상이 있었다.

결함 위치 추적을 위한 테스트 케이스 자동 생성 기법 (Test Case Automatic Generation for Fault Localization)

  • 박창용;김준희;류성태;윤현상;이은석
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.1235-1238
    • /
    • 2012
  • 오늘날 소프트웨어가 가지는 규모와 복잡성은 날로 심화되고 있으며, 소프트웨어 개발 시 결함을 찾아 내기 위한 테스트에 많은 시간이 소모되고 있는 실정이다. 이러한 문제점을 해결하기 위해 중요한 기술 중 하나가 결함 위치 추적(Fault Localization)이다. 이 기법을 이용하여 결함을 추적하기 위해서는 다량의 테스트 케이스를 필요로 하며, 추가로 테스트 케이스를 작성하는 것은 또 다른 개발 부하이다. 본 논문에서는 이를 해결하기 위해서 분기별 입력 조합 기반 테스트 케이스 생성방법과 시드 결과 기반 테스트 케이스 생성방법을 제안하였다. 개발자는 본 생성방법을 통해 테스트 케이스 생성에 대한 비용 절감을 기대 할 수 있다. 제안하는 내용의 효용성을 검증하기 위해 실제 예제 코드에 적용하여 평가하였다. 두 가지 방법 모두 무작위 생성한 테스트 케이스에 비해 개발자가 직접 생성하는 것과 유사한 테스트 케이스를 생성하고, 제안 방법으로 생성한 테스트 케이스의 신뢰성을 확인하였다.

클라우드 기반 HyGIS (HyGIS based on cloud computing)

  • 원영진;최윤석
    • 한국수자원학회:학술대회논문집
    • /
    • 한국수자원학회 2016년도 학술발표회
    • /
    • pp.316-316
    • /
    • 2016
  • HyGIS는 DEM 기반의 수문지형처리를 중심으로 다양한 모형을 연계할 수 있도록 구성된 S/W 모음이다. 이는 한국건설기술연구원을 비롯한 다수의 기관 및 연구원들이 노력한 성과물이다. 본 연구는 기존 HyGIS 연구과정에서 도출된 성과물의 실용화 사업화를 위한 방안을 연구하였다. 이를 위하여 S/W 테스팅, 오픈소스 도입, 클라우드 컴퓨팅으로 나누어 접근하였다. 먼저 S/W의 테스팅에 있어서 기존 개발 소스코드는 블랙박스 테스트 방식의 동등 클래스 분할, 경계 값 분석 등 일부 모듈에 대한 단위 테스트와 제한적인 통합테스트가 수행된 바 있다. 보다 체계적인 테스트 단계로서 화이트박스 테스트 개념 중 문장/분기/조건 커버리지에 대하여 검토하였으며, 실제 소스코드 중 핵심 구간에 대한 적용 및 정량화를 통하여 현 수준을 객관적으로 진단하였고 보완 방안을 도출하였다. 오픈소스 적용을 위하여 QGIS, MapWindow 등 공간정보 분야의 최신 오픈소스 모듈을 비교 검토하였다. 적용 단계는 이를 기존 HyGIS S/W에 반영시키는 과정이며, S/W 관점에서는 컴포넌트 모듈의 대체라고 표현될 수 있다. 대규모의 전환 비용이 발생되므로 적용 후보에 대하여는 기능적 측면 뿐만 아니라 마이그레이션 비용과 중장기적인 유지보수 비용을 고려한 검토가 이루어 졌다. 한편 오픈소스 기술의 적용은 단순히 구성 요소 원가절감 측면만이 아닌, 중장기적 유지보수 체계 도모 및 지속가능한 생태계로의 전환에 더 큰 의의가 있다. 마지막으로 클라우드 컴퓨팅 기술의 적용 분야이다. HyGIS 입력 Data의 공급을 위한 인프라로서 자체 구축 인프라가 아닌 IaaS 클라우드인 Blob Storage 및 CDN을 시험 적용하였다. 클라우드를 활용함으로써 초기 비용을 최소화하고 합리적 비용으로 유연한 확장이 가능한(Scale Out, Scale Up) 구조를 취하게 되었다. 또한 입력 Data 공급 서버를 위한 Storage 측면만이 아니라 S/W의 배포에 있어서도 클라우드 컴퓨팅 기술을 활용하고자 시도하였다. 클라우드 기술을 활용하여 HyGIS S/W가 설치된 VM(Virtual Machine)자체를 임대하는 방식으로 시험 구성 되었다. VM에 대한 RDP 프로토콜 Access에 있어서 IP기반 접근 제어를 통하여 보안을 강화하는 방안을 실험하였으며, ISO 27001, ISO 27018 등 관련 보안 규정에 부합하는 서비스 제공이 가능하도록 검토하였다. 이러한 클라우드 VM방식 서비스를 통하여 Package형 S/W 뿐만 아니라 Subscription 방식의 서비스 제공 방식을 병행할 수 있다. 사용자에게는 S/W 설치 및 H/W Lock 구비 과정이 생략되는 이점이 있다.

  • PDF