Explore chapters and articles related to this topic
Code Coverage Metrics
Published in Chris Hobbs, Embedded Software Development for Safety-Critical Systems, 2019
Various tools exist to generate test cases that can at least provide good statement and branch coverage. One such tool is the open-source KLEEKLEE symbolic execution program described on page 283. As it carries out its symbolic execution, it performs the analysis necessary to determine the values of the variables needed to drive the program down each of its paths. When KLEE is applied to the program calculating the greatest common divisor (page 265), it generates the following test cases: m = 2147483647, n = 2147483647 (GCD = 2147483647).m = 50790404, n = 54463393 (GCD = 1).m = 679738981, n = 340287488 (GCD = 1).
Code Coverage Metrics
Published in Chris Hobbs, Embedded Software Development for Safety-Critical Systems, 2017
Various tools exist to generate test cases that can at least provide good statement and branch coverage. One such tool is the open-source KLEE symbolic execution program described on page 272. As it carries out its symbolic execution, it performs the analysis necessary to determine the values of the variables needed to drive the program down each of its paths. When KLEE is applied to the program calculating the greatest common divisor (page 251), it generates the following test cases: m = 2147483647, n = 2147483647 (GCD = 2147483647).m = 50790404, n = 54463393 (GCD = 1).m = 679738981, n = 340287488 (GCD = 1).
The Programming Aspect of Simulation
Published in William Delaney, Erminia Vaccari, Dynamic Models and Discrete Event Simulation, 2020
William Delaney, Erminia Vaccari
Symbolic execution (also called symbolic evaluation) corresponds to determining symbolic values for variables and predicates along a certain execution path through a program (or part of a program), given symbolic values of certain variables relative to the beginning of the path.
False positive elimination in suspected code fault automatic confirmation
Published in International Journal of Computers and Applications, 2018
Honglei Zhu, Dahai Jin, Yunzhan Gong
In recent years, with the development of software technology, the requirements of software are increasing as well as the scale and complexity of software. In order to detect and repair the defects that exist in the software as soon as possible, many researchers have developed defect detection tools which are based on static analysis technique. Such as: Cousot et al. [1] developed ASTREE tool that based on abstract interpretation theory framework; Bush et al. [2] developed a static analysis tool that based on symbolic execution which is named PREfix; Xiao et al. [3] use the software defect detection system (DTS) which developed by Beijing university of posts and telecommunications to perform the experiments. In general, static defect detection tools contain two stages: static analysis and manual review. Static analysis is used to obtain the grammar and semantic information of the program, and with the information as a basis for automatic defect detection. The purpose of manual review is judging the inspect point is a false positive or a real defect. Manual confirmation is a time-consuming task that requires expertise, patience, and understanding of the program. Software developers and testers refused to use the static analysis tools because of lots of inspect points should be confirmed. Suspected fault automatic confirmation can reduce the burden of manual confirmation, and improves the availability of static analysis tools. According to the theorem of Rice, static analysis can not simultaneously has the reliability and completeness for any nontrivial properties of program, the results of code static analysis exist some false positives or false negative. Therefore, eliminating part of false positives through by the local analysis of the program is great significance. It can greatly improve the efficiency of the confirmation in the process of the suspected fault automatic confirmation.