• Title/Summary/Keyword: Code coverage

Search Result 104, Processing Time 0.023 seconds

VHDL Code Coverage Checker for IP Design and Verification (IP 설계 환경을 위한 VHDL Code Coverage Checker)

  • 김영수;류광기;배영환;조한진
    • Proceedings of the IEEK Conference
    • /
    • 2001.06b
    • /
    • pp.325-328
    • /
    • 2001
  • This paper describes a VHDL code coverage checker for If design and verification. Applying the verification coverage to IP design is a methodology rapidly gaining popularity. This enables the designers to improve the IP design quality and reduces the time-to-market by providing the Quantitative measure of simulation completeness and test benches. To support this methodology, a VHDL code coverage model was defined and the measurement tool was developed.

  • PDF

Transformation Method for a State Machine to Increase Code Coverage (코드 커버리지를 높이기 위한 상태 머신 변환 방법)

  • Yoon, YoungDong;Choi, HyunJae;Chae, HeungSeok
    • Journal of KIISE
    • /
    • v.43 no.9
    • /
    • pp.953-962
    • /
    • 2016
  • Model-based testing is a technique for performing the test by using a model that represents the behavior of the system as a system specification. Industrial domains such as automotive, military/aerospace, medical, railway and nuclear power generation require model-based testing and code coverage-based testing to improve the quality of software. Despite the fact that both model-based testing and code coverage-based testing are required, difficulty in achieving a high coverage using model-based testing caused by the abstraction level difference between the test model and the source code, results in the need for performing model-based testing separately. In this study, to overcome the limitations of the existing model-based testing, we proposed the state machine transformation method to effectively improve the code coverage using the protocol state machine, one of the typical modeling methods is used as the test model in model-based testing, as the test model. In addition, we performed a case study of both systems and analyzed the effectiveness of the proposed method.

Improving Code Coverage for the FPGA Based Nuclear Power Plant Controller (FPGA기반 원전용 제어기 코드커버리지 개선)

  • Heo, Hyung-Suk;Oh, Seungrohk;Kim, Kyuchull
    • Journal of IKEEE
    • /
    • v.18 no.3
    • /
    • pp.305-312
    • /
    • 2014
  • IIt takes a lot of time and needs the workloads to verify the RTL code used in complex system like a nuclear control system which is required high level reliability using simple testbench. UVM has a layered testbench architecture and it is easy to modify the testbench to improve the code coverage. A test vector can be easily constructed in the UVM, since a constrained random test vector can be used even though the construction of testbench using UVM. We showed that the UVM testbench is easier than the verilog testbench for the analysis and improvement of code coverage.

Runtime-Guard Coverage Guided Fuzzer Avoiding Deoptimization for Optimized Javascript Functions (최적화 컴파일된 자바스크립트 함수에 대한 최적화 해제 회피를 이용하는 런타임 가드 커버리지 유도 퍼저)

  • Kim, Hong-Kyo;Moon, Jong-sub
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.30 no.3
    • /
    • pp.443-454
    • /
    • 2020
  • The JavaScript engine is a module that receives JavaScript code as input and processes it, among many functions that are loaded into web browsers and display web pages. Many fuzzing test studies have been conducted as vulnerabilities in JavaScript engines could threaten the system security of end-users running JavaScript through browsers. Some of them have increased fuzzing efficiency by guiding test coverage in JavaScript engines, but no coverage guided fuzzing of optimized, dynamically generated machine code was attempted. Optimized JavaScript codes are difficult to perform sufficient iterative testing through fuzzing due to the function of runtime guards to free the code in the event of exceptional control flow. To solve these problems, this paper proposes a method of performing fuzzing tests on optimized machine code by avoiding deoptimization. In addition, we propose a method to measure the coverage of runtime-guards by the dynamic binary instrumentation and to guide increment of runtime-guard coverage. In our experiment, our method has outperformed the existing method at two measures: runtime coverage and iteration by time.

The Video on Demand System Failure Evaluation of Software Development Step

  • Jang, Jin-Wook
    • Journal of the Korea Society of Computer and Information
    • /
    • v.24 no.4
    • /
    • pp.107-112
    • /
    • 2019
  • Failure testing is a test that verifies that the system is operating in accordance with failure response requirements. A typical failure test approaches the operating system by identifying and testing system problems caused by unexpected errors during the operational phase. In this paper, we study how to evaluate these Failure at the software development stage. Evaluate the probability of failure due to code changes through the complexity and duplication of the code, and evaluate the probability of failure due to exceptional situations with bugs and test coverage extracted from static analysis. This paper studies the possibility of failure based on the code quality of software development stage.

Code Coverage Measurement in Configurable Software Product Line Testing (구성가능한 소프트웨어 제품라인 시험에서 코드 커버리지 측정)

  • Han, Soobin;Lee, Jihyun;Go, Seoyeon
    • KIPS Transactions on Software and Data Engineering
    • /
    • v.11 no.7
    • /
    • pp.273-282
    • /
    • 2022
  • Testing approaches for configurable software product lines differs significantly from a single software testing, as it requires consideration of common parts used by all member products of a product line and variable parts shared by some or a single product. Test coverage is a measure of the adequacy of testing performed. Test coverage measurements are important to evaluate the adequacy of testing at the software product line level, as there can be hundreds of member products produced from configurable software product lines. This paper proposes a method for measuring code coverage at the product line level in configurable software product lines. The proposed method tests the member products of a product line after hierarchizing member products based on the inclusion relationship of the selected features, and quantifies SPL(Software Product Line) test coverage by synthesizing the test coverage of each product. As a result of applying the proposed method to 11 configurable software product line cases, we confirmed that the proposed method could quantitatively visualize how thoroughly the SPL testing was performed to help verify the adequacy of the SPL testing. In addition, we could check whether the newly performed testing for a member product covers the newly added code parts of a feature.

ER-Fuzz : Conditional Code Removed Fuzzing

  • Song, Xiaobin;Wu, Zehui;Cao, Yan;Wei, Qiang
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • v.13 no.7
    • /
    • pp.3511-3532
    • /
    • 2019
  • Coverage-guided fuzzing is an efficient solution that has been widely used in software testing. By guiding fuzzers through the coverage information, seeds that generate new paths will be retained to continually increase the coverage. However, we observed that most samples follow the same few high-frequency paths. The seeds that exercise a high-frequency path are saved for the subsequent mutation process until the user terminates the test process, which directly affects the efficiency with which the low-frequency paths are tested. In this paper, we propose a fuzzing solution, ER-Fuzz, that truncates the recording of a high-frequency path to influence coverage. It utilizes a deep learning-based classifier to locate the high and low-frequency path transfer points; then, it instruments at the transfer position to promote the probability low-frequency transfer paths while eliminating subsequent variations of the high-frequency path seeds. We implemented a prototype of ER-Fuzz based on the popular fuzzer AFL and evaluated it on several applications. The experimental results show that ER-Fuzz improves the coverage of the original AFL method to different degrees. In terms of the number of crash discoveries, in the best case, ER-Fuzz found 115% more unique crashes than did AFL. In total, seven new bugs were found and new CVEs were assigned.

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

A Study on Validation of OFP for UAV using Auto Code Generation (자동 코드생성을 이용한 무인기용 OFP의 검증에 관한 연구)

  • Cho, Sang-Ook;Choi, Kee-Young
    • Journal of the Korean Society for Aeronautical & Space Sciences
    • /
    • v.37 no.4
    • /
    • pp.359-366
    • /
    • 2009
  • MATLAB Autocode generation is a feature that converts a block diagram model in Simulink to a c program. Utilizing this function makes MATLAB/Simulink an integrated developing environment, from controller design to implementation. It can reduce development cost and time significantly. However, this automated process requires high reliability on the software, especially the original Simulink block diagram model. And thus, the verification of the codes becomes important. In this study, a UAV flight program which is generated with Simulink is validated and modified according to DO-178B. As a result of applying the procedures, the final program not only satisfied the functional requirement but is also verified with structural point of view with Decision Coverage 93%, Condition Coverage 95% and MC/DC 90%.

Coverage metrics for high-level events in behavioral model verification (동작적 모델 검증의 상위 레벨 사건에 대한 검출률 측정법)

  • Kim, Kang-Chul;Im, Chang-Gyun;Ryu, Jae-Hung;Han, Suk-Bung
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.10 no.3
    • /
    • pp.496-502
    • /
    • 2006
  • The complexity of IC has rapidly increased as VLSI fabrication technology has grown up quickly. This paper proposes verification methods for data conflicts and protocol between IPs for SoC with coverage metrics. The high-level events is defined to cooperation between blocks or process statement in HDL, or a sequence of performing a job compared to low-level event. They are classified into two categories, resource conflicts and protocol or specification-dependent conflicts. And two coverage metrics used for code coverage in low-level event are proposed to verify the hish-level events. The events of resource conflicts can be detected by using statement coverage metric if global signal or variable has flags in a testbench program, and protocol-dependent events can be checked by data flow metric or path metric.