• Title/Summary/Keyword: 심볼릭 실행

Search Result 9, Processing Time 0.034 seconds

Deterministic Parallelism for Symbolic Execution Programs based on a Name-Freshness Monad Library

  • Ahn, Ki Yung
    • Journal of the Korea Society of Computer and Information
    • /
    • v.26 no.2
    • /
    • pp.1-9
    • /
    • 2021
  • In this paper, we extend a generic library framework based on the state monad to exploit deterministic parallelism in a purely functional language Haskell and provide benchmarks for the extended features on a multicore machine. Although purely functional programs are known to be well-suited to exploit parallelism, unintended squential data dependencies could prohibit effective parallelism. Symbolic execution programs usually implement fresh name generation in order to prevent confusion between variables in different scope with the same name. Such implementations are often based on squential state management, working against parallelism. We provide reusable primitives to help developing parallel symbolic execution programs with unbound-genercis, a generic name-binding library for Haskell, avoiding sequential dependencies in fresh name generation. Our parallel extension does not modify the internal implementation of the unbound-generics library, having zero possibility of degrading existing serial implementations of symbolic execution based on unbound-genecrics. Therefore, our extension can be applied only to the parts of source code that need parallel speedup.

자바를 활용한 수치계산에서의 심볼릭 연산 알고리즘

  • Kim, Cheol-Su;Kim, Ik-Chan;Yang, Jun-Yeong
    • Communications of Mathematical Education
    • /
    • v.13 no.2
    • /
    • pp.535-547
    • /
    • 2002
  • 본 논문은 교육현장에서 자바(Java)를 이용한 수치계산 애플릿(Applet)을 개발할 경우 수식을 인식하여 그 결과를 실행하고 보여주는 심볼릭 연산을 구현하기 위한 알고리즘 개발과 다양한 입력식을 처리하기 위한 효율적인 자료구조를 제안한다. 구현된 패키지내의 클래스는 변수와 상수, 다양한 연산자를 처리하기에 적합하며 분석된 정보를 통해 사칙연산의 처리, 연산자 우선순위의 처리, 심볼릭 연산, 다항식, 방정식, 함수의 그래프 작성, 간단한 미적분 처리를 하는 알고리즘을 제안한다.

  • PDF

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

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 도구 개선을 제안한다.

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.

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.

CRESTIVE-DX: Design and Implementation of Distrusted Concolic Testing Tool for Embedded Software (CRESTIVE-DX: 임베디드 소프트웨어에 대해 테스트케이스 생성을 지원하는 분산 Concolic 테스팅 도구)

  • Leem, Hyerin;Choe, Hansol;Kim, Hyorim;Hong, Shin
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.9 no.8
    • /
    • pp.229-234
    • /
    • 2020
  • This paper presents the design and the implementation of CRESTIVE-DX, a concolic testing tool that distribute the concolic testing process over the embedded target system and the host system for efficient test generation of a target embedded program. CRESTIVE-DX conducts the execution of a target program on the target embedded system to consider possible machine-dependent behaviors of a target program execution, and conducts machine-independent parts, such as search-strategy heuristics, constraint solving, on host systems with high-speed computation unit, and coordinates their concurrent executions. CRESTIVE-DX is implemented by extending an existing concolic testing tool for C programs CREST. We conducted experiments with a test bed that consists of an embedded target system in the Arm Cortex A54 architecture and host systems in the x86-64 architecture. The results of experiments with Unix utility programs Grep, Busybox Awk, and Busybox Ed show that test input generation of CRESTIVE-DX is 1.59 to 2.64 times faster than that of CREST.

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.

An Improvement in Loading Speed Using RAM-based Java Card Installer (RAM기반 자바카드 인스톨러를 이용한 로딩속도 개선)

  • Jin, Min-Sik;Choi, Won-Ho;Lee, Dong-Wook;Kim, Han-Na;Jung, Min-Soo;Park, Kyoo-Seok
    • Journal of Korea Multimedia Society
    • /
    • v.10 no.5
    • /
    • pp.604-611
    • /
    • 2007
  • Java Card has gained genera1 acceptance with standard for smart card and (U)SIM technology, and it is in distinction from native card by its post-issuance of an application and independence from hardware platforms. However, a main weak point of Java Card is its low execution speed caused by the hardware limitation and Java programming language itself. In this paper, we propose a new Java Card Installer to improve the download speed during the post-issuance of an application by resolving symbolic references to physical references in HAM. Our Resolution_In_RAM is based on the improved new RAM writing is 100,000 times faster than EEPROM writing and PageBuffer that is operated as block mode, rather than cell mode is used to write to EEPROM. Consequently, the total number of EEPROM writing are reduced 37%, and the times of downloading are reduced over 30% by using the Resolution_In_RAM-based Java Card Installer.

  • PDF