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

검색결과 5건 처리시간 0.02초

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

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

분기 커버리지를 위한 동적 테스트 데이터 생성 (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++을 대상으로 실험한 결과, 제안한 방법이 코드 커버리지를 증가에 효과적인 것을 확인하였다.