• Title/Summary/Keyword: 분기 커버리지

Search Result 10, Processing Time 0.024 seconds

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

  • Chung, In Sang
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.2 no.7
    • /
    • pp.451-460
    • /
    • 2013
  • In order to achieve high test coverage, it is usual to generate test data using various techniques including symbolic execution, data flow analysis or constraints solving. Recently, a technique for automated test data generation that fulfills high coverage effectively without those sophisticated means has been proposed. However, the technique shows its weakness in the generation of test data that leads to high coverage for programs having branch conditions where different memory locations are binded during execution. For certain programs with flag conditions, in particular, high coverage can not be achieved because specific branches are not executed. To address the problem, this paper presents dynamic branch coverage criteria and a test data generation technique based on the notion of dynamic branch. It is shown that the proposed technique compared to the previous approach is more effective by conducting experiments involving programs with flag conditions.

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

  • Choi, Sook-won;Koo, Keun-hoi;Choi, Jin-Young
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2016.10a
    • /
    • pp.423-425
    • /
    • 2016
  • 콘콜릭 테스팅(Concolic testing)은 프로그램 실행을 실제 구체적인 입력 값(Concrete Values)을 입력하며, 동시에 심볼릭 실행 (Syrnbolic execution)을 진행하는 테스팅 기법이다. 콘콜릭 테스팅은 모든 실행 가능 경로를 탐색하여, 테스트 케이스를 자동 생생한다. 그래서 높은 분기 커버리지를 나타내지만, 안전성을 목표로 하는 MC/DC 커버리지는 만족하지 못한다. 본 논문에서는 분기 커버리지와 MC/DC 커버리지를 만족하는 테스트 케이스를 자동생성하는 CREST 도구 개선을 제안한다.

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

  • Chung, In-Sang;Seong, Yeong-Rak
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06b
    • /
    • pp.150-152
    • /
    • 2012
  • 일반적으로 테스트 데이터 자동 생성을 지원하기 위해 심볼릭 실행기나 제약 해결기와 같은 도구를 요구한다. 그러나 이와 같은 도구들을 개발하는 것은 상당한 노력이 요구되는 것도 사실이다. 이 논문에서는 이러한 도구들의 지원 없이 분기 커버리지를 효과적으로 달성할 수 있는 테스트 데이터 생성 방법을 제안한다. 이를 위해 경로 지향 테스트 데이터 생성을 위해 개발된 Korel의 방법을 확장하여 프로그램의 분기들을 가능한 많이 실행할 수 있는 테스트 데이터를 효과적으로 생성하는 방법을 제안한다.

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

  • Chung, In-Sang
    • The Journal of the Korea Contents Association
    • /
    • v.12 no.11
    • /
    • pp.39-48
    • /
    • 2012
  • It is well known that software testing amounts for a significant portion of software development cost. In order to reduce the cost of software testing. a lot of researches on automated test data generation have been performed. Sophisticated tools for performing symbolic execution or solving a system of path constraints are required to support automated test data generation. Developing or purchasing those tools leads to another factor of increasing the cost involving software testing. In this paper, we propose a dynamic test data generation approach that does not depend on symbolic execution or constraint solving at all. The proposed approach extends Korel's path-oriented method to satisfy the branch coverage criterion effectively. We conducted an experiment to evaluate the effectiveness of the proposed technique with a triangle classification program to show that branch coverage can be easily achieved.

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

  • Chung, In-Sang
    • The Journal of the Institute of Internet, Broadcasting and Communication
    • /
    • v.12 no.2
    • /
    • pp.189-197
    • /
    • 2012
  • It is usual for test data generation to be performed using either high-level specifications or source codes written in high-level programming languages. In certain circumstances, however, such information is not always available. This paper presents a technique that generates test data based on executable object codes. The proposed technique makes use of a very simple function minimization technique without sophisticated object code analysis and produces test data dynamically. We have conducted a simple experiment to evaluate the effectiveness of the proposed test data generation technique with a triangle classification program to show that branch coverage can be easily achieved.

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

  • Kim, Seoyoung;Cho, Mingi;Kim, Jongshin;Kwon, Taekyoung
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.30 no.6
    • /
    • pp.1079-1085
    • /
    • 2020
  • Fuzzing is used to find vulnerabilities for a library. Because library fuzzing only tests the implemented functions, in order to achieve higher code coverage, additional functions that are not implemented should be implemented. However, if a function is added without regard to the calling relationship of the functions in the library, a problem may arise that the function that has already been tested is added. We propose a novel method to improve the code coverage of library fuzzing. First, we analyze the function call graph of the library to efficiently add the functions for library fuzzing, and additionally implement a library function that has not been implemented. Then, we apply a hybrid fuzzing to explore for branches with complex constraints. As a result of our experiment, we observe that the proposed method is effective in terms of increasing code coverage on OpenSSL, mbedTLS, and Crypto++.

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

  • Chung, In-Sang;Park, Jung-Kyu
    • Journal of KIISE:Software and Applications
    • /
    • v.37 no.10
    • /
    • pp.768-772
    • /
    • 2010
  • Concolic testing generates test data by combining concrete program execution and symbolic execution to achieve high test coverage. CREST is a representative open-source test tool implementing concolic testing. Currently, however, CREST aims at exploring all possible execution paths. In case of testing a specific branch or block, thus, it can be ineffective. This paper suggests a goal-oriented concolic testing that generates test data to execute a given branch or block.

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

  • Kim, Yun-Ho;Kim, Moon-Zoo;Jang, Yoon-Kyu
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2012.06b
    • /
    • pp.120-122
    • /
    • 2012
  • 기존 소프트웨어 테스팅 기법은 개발자가 수동으로 테스트 케이스를 작성해야 하는 비효율성으로 인해 임베디드 소프트웨어의 안정성 확보에 어려움이 있다. Concolic 테스팅 기법은 자동으로 소프트웨어 테스트 케이스를 생성함으로써 기존 소프트웨어 테스팅 기법의 문제를 해결했지만, 임베디드 소프트웨어 테스트에 필수적인 bitwise 연산을 지원하지 않는 등의 문제가 있었다. 본 논문에서는 임베디드 소프트웨어를 위해 bitwise 연산을 지원하는 Concolic 테스팅 개선 방법에 대한 연구를 수행하고 오픈 소스 임베디드 소프트웨어 Busybox에 적용하여 기존 연구와 결과를 비교하였다. Busybox의 10개 유틸리티에 적용한 결과 기존 연구 결과 대비 평균 33%의 분기 커버리지 향상이 있었다.

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

  • Park, Changyong;Kim, Junhee;Ryu, Sungtae;Youn, Hyunsang;Lee, Eunseok
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.1235-1238
    • /
    • 2012
  • 오늘날 소프트웨어가 가지는 규모와 복잡성은 날로 심화되고 있으며, 소프트웨어 개발 시 결함을 찾아 내기 위한 테스트에 많은 시간이 소모되고 있는 실정이다. 이러한 문제점을 해결하기 위해 중요한 기술 중 하나가 결함 위치 추적(Fault Localization)이다. 이 기법을 이용하여 결함을 추적하기 위해서는 다량의 테스트 케이스를 필요로 하며, 추가로 테스트 케이스를 작성하는 것은 또 다른 개발 부하이다. 본 논문에서는 이를 해결하기 위해서 분기별 입력 조합 기반 테스트 케이스 생성방법과 시드 결과 기반 테스트 케이스 생성방법을 제안하였다. 개발자는 본 생성방법을 통해 테스트 케이스 생성에 대한 비용 절감을 기대 할 수 있다. 제안하는 내용의 효용성을 검증하기 위해 실제 예제 코드에 적용하여 평가하였다. 두 가지 방법 모두 무작위 생성한 테스트 케이스에 비해 개발자가 직접 생성하는 것과 유사한 테스트 케이스를 생성하고, 제안 방법으로 생성한 테스트 케이스의 신뢰성을 확인하였다.

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

  • Won, Young Jin;Choi, Yun Seok
    • Proceedings of the Korea Water Resources Association Conference
    • /
    • 2016.05a
    • /
    • 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