GoldRusher is a dynamic analysis tool primarily meant to aid reverse engineers with analyzing malware. Based on the fact that hidden code segments rarely execute, the tool is able to rapidly highlight functions and ba...
详细信息
ISBN:
(纸本)9781538649695
GoldRusher is a dynamic analysis tool primarily meant to aid reverse engineers with analyzing malware. Based on the fact that hidden code segments rarely execute, the tool is able to rapidly highlight functions and basic blocks that are potentially hidden, and identify the trigger conditions that control their executions.
In this paper two test generation algorithms for VHDL processes will be presented. The first algorithm works on combinational processes whereas the second works on sequential processes. The goal of both algorithms is ...
详细信息
ISBN:
(纸本)9643600572
In this paper two test generation algorithms for VHDL processes will be presented. The first algorithm works on combinational processes whereas the second works on sequential processes. The goal of both algorithms is testing all portions of the design by traversing all the possible paths. The VHDL subset we have considered in these algorithms covers almost 90 percent of ordinary designs. Our approach in this paper is employing software testing metrics as well as state and transition coverage for FSMs.
Software testing suggests the quality of the software product. More the effective testing means high quality software product. In this paper we have identified and prioritized the parameters according to the perspecti...
详细信息
ISBN:
(纸本)9788132222477;9788132222460
Software testing suggests the quality of the software product. More the effective testing means high quality software product. In this paper we have identified and prioritized the parameters according to the perspective of different entities involved in software lifecycle. The prime objective of the paper is to perform software testing from the perspective of Kansei Engineering methodology with multi-objective optimization.
Regression testing is an activity in the software testing process to ensure the software is validated and verified after modification occurred on software. It is costly process procedure which has been expected to rea...
详细信息
ISBN:
(纸本)9781450364218
Regression testing is an activity in the software testing process to ensure the software is validated and verified after modification occurred on software. It is costly process procedure which has been expected to reach half cost of the software maintenance cost. Many techniques and approaches have been used in regression testing process to enhance the efficiency and effectiveness of regression testing process. Such as test case reduction, test case selection, test case prioritization and retest all. Test case prioritization has been used in regression testing to increase the effectiveness through selecting the most vital test case that has the ability in finding and uncovering errors in the system under test. This paper has introduced a new algorithm for prioritizing test cases in test suite that is based on method and line of code coverage. Test cases which cover the most methods and line of code are more effective and efficient in finding errors.
Statement coverage is commonly used as a measure of test suite quality. coverage is often used as a part of a code review process: if a patch decreases overall coverage, or is itself not covered, then the patch is scr...
详细信息
ISBN:
(数字)9781450359375
ISBN:
(纸本)9781450359375
Statement coverage is commonly used as a measure of test suite quality. coverage is often used as a part of a code review process: if a patch decreases overall coverage, or is itself not covered, then the patch is scrutinized more closely. Traditional studies of how coverage changes with code evolution have examined the overall coverage of the entire program, and more recent work directly examines the coverage of patches (changed statements). We present an evaluation much larger than prior studies and moreover consider a new, important kind of change coverage changes of unchanged statements. We present a large-scale evaluation of code coverage evolution over 7,816 builds of 47 projects written in popular languages including Java, Python, and Scala. We find that in large, mature projects, simply measuring the change to statement coverage does not capture the nuances of code evolution. Going beyond considering statement coverage as a simple ratio, we examine how the set of statements covered evolves between project revisions. We present and study new ways to assess the impact of a patch on a project's test suite quality that both separates coverage of the patch from coverage of the non-patch, and separates changes in coverage from changes in the set of statements covered.
File systems need testing to discover bugs and to help ensure reliability. Many file system testing tools are evaluated based on their code coverage. We analyzed recently reported bugs in Ext4 and BtrFS and found a we...
详细信息
ISBN:
(纸本)9798400702242
File systems need testing to discover bugs and to help ensure reliability. Many file system testing tools are evaluated based on their code coverage. We analyzed recently reported bugs in Ext4 and BtrFS and found a weak correlation between code coverage and test effectiveness: many bugs are missed because they depend on specific inputs, even though the code was covered by a test suite. Our position is that coverage of system call inputs and outputs is critically important for testing file systems. We thus suggest input and output coverage as criteria for file system testing, and show how they can improve the effectiveness of testing. We built a prototype called IOCov to evaluate the input and output coverage of file system testing tools. IOCov identified many untested cases (specific inputs and outputs or ranges thereof) for both CrashMonkey and xfstests. Additionally, we discuss a method and associated metrics to identify over- and undertesting using IOCov.
We propose a novel notion of data-flow coverage for testing declarative programs. Moreover, we extend an automatic test-case generator such that it can achieve data-flow coverage. The coverage information is obtained ...
详细信息
ISBN:
(纸本)9781595939197
We propose a novel notion of data-flow coverage for testing declarative programs. Moreover, we extend an automatic test-case generator such that it can achieve data-flow coverage. The coverage information is obtained by instrumenting a program such that it collects coverage information during its execution. Finally, we show the benefits of data-flow based testing for a couple of example applications.
Ensuring the correctness of code coverage profilers is crucial, given the widespread adoption of code coverage for various software engineering tasks. Existing validation techniques, such as differential testing and m...
详细信息
ISBN:
(纸本)9798400703270
Ensuring the correctness of code coverage profilers is crucial, given the widespread adoption of code coverage for various software engineering tasks. Existing validation techniques, such as differential testing and metamorphic testing, have shown effectiveness in uncovering bugs in coverage profilers. However, these techniques have limitations as they primarily rely on homogeneous sources, i.e., different coverage profilers or the profilers themselves, for validation. In this paper, we propose Decov, a novel heterogeneous testing technique, to validate coverage profilers using the information provided by debuggers as a heterogeneous source. coverage profilers record execution counts for each source line in the program, while debuggers monitor hit counts for each source line when running the program in debug mode. Our key insight is that the execution counts obtained from coverage profilers should align with the hit counts monitored by debuggers, without conflicts. Decov constructs multiple heterogeneous relations and utilizes them to uncover bugs in coverage profilers. Through experiments on Gcov and LLVM-cov, two widely used code coverage profilers, we discovered 21 new bug reports, with 19 of them directly confirmed by developers. Notably, developers have resolved 5 bugs in the latest trunk version. Decov serves as a simple yet effective coverage profiler validator and offers a complementary approach to existing techniques.
We describe the design, implementation and use of HPC, a tool-kit to record and display Haskell Program coverage. HPC includes tools that instrument Haskell programs to record program coverage, run instrumented progra...
详细信息
ISBN:
(纸本)9781595936745
We describe the design, implementation and use of HPC, a tool-kit to record and display Haskell Program coverage. HPC includes tools that instrument Haskell programs to record program coverage, run instrumented programs, and display information derived from coverage data in various ways.
Fuzzing is one of the most popular and practical techniques for security analysis. In this work, we aim to address the critical problem of high-quality input generation with a novel input-aware fuzzing approach called...
详细信息
ISBN:
(纸本)9798400700507
Fuzzing is one of the most popular and practical techniques for security analysis. In this work, we aim to address the critical problem of high-quality input generation with a novel input-aware fuzzing approach called NESTFUZZ. NESTFUZZ can universally and automatically model input format specifications and generate valid input. The key observation behind NESTFUZZ is that the code semantics of the target program always highly imply the required input formats. Hence, NESTFUZZ applies fine-grained program analysis to understand the input processing logic, especially the dependencies across different input fields and substructures. To this end, we design a novel data structure, namely Input Processing Tree, and a new cascading dependency-aware mutation strategy to drive the fuzzing. Our evaluation of 20 intensively-tested popular programs shows that NestFuzz is effective and practical. In comparison with the state-of-the-art fuzzers (AFL, AFLFast, AFL++, MOpt, AFLSmart, WEIZZ, ProFuzzer, and TIFF), NestFuzz achieves outperformance in terms of both code coverage and security vulnerability detection. NESTFUZZ finds 46 vulnerabilities that are both unique and serious. Until the moment this paper is written, 39 have been confirmed and 37 have been assigned with CVE-ids.
暂无评论