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

Search Result 5, Processing Time 0.028 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.

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++.