2015
DOI: 10.1007/978-3-662-46081-8_19
|View full text |Cite
|
Sign up to set email alerts
|

An Experimental Evaluation of Deliberate Unsoundness in a Static Program Analyzer

Abstract: Abstract. Many practical static analyzers are not completely sound by design. Their designers trade soundness to increase automation, improve performance, and reduce the number of false positives or the annotation overhead. However, the impact of such design decisions on the effectiveness of an analyzer is not well understood. This paper reports on the first systematic effort to document and evaluate the sources of unsoundness in a static analyzer. We developed a code instrumentation that reflects the sources … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
22
0

Year Published

2015
2015
2019
2019

Publication Types

Select...
4
4

Relationship

3
5

Authors

Journals

citations
Cited by 20 publications
(22 citation statements)
references
References 16 publications
(12 reference statements)
0
22
0
Order By: Relevance
“…Related to the types of issues that developers consider to be important are the potential sources of unsoundness in program analysis that can affect the detection of such issues. We listed the most common sources of unsoundness from program analysis research [28] and asked developers to rank up to five of them. During our initial interviews and the beta survey, we found that some developers were unfamiliar with the terminology used (though most were aware of the concepts).…”
Section: What Functionality Should Analyzers Have?mentioning
confidence: 99%
See 1 more Smart Citation
“…Related to the types of issues that developers consider to be important are the potential sources of unsoundness in program analysis that can affect the detection of such issues. We listed the most common sources of unsoundness from program analysis research [28] and asked developers to rank up to five of them. During our initial interviews and the beta survey, we found that some developers were unfamiliar with the terminology used (though most were aware of the concepts).…”
Section: What Functionality Should Analyzers Have?mentioning
confidence: 99%
“…By now, researchers have realized that soundness is commonly eschewed in practice [44]. In fact, there have even emerged approaches for measuring the unsoundness in a static analysis and evaluating its practical impact [28]. In industry, as it also becomes evident in Section 5, it is a well-established design decision to build program analyzers to be unsound in order to increase automation, improve performance, achieve modularity, and reduce the number of false positives or the annotation overhead.…”
Section: Other Related Workmentioning
confidence: 99%
“…This does not necessarily mean absolute correctness when putting restrictions (such as no parameter aliasing in Clousot [10] or soundness up to the first error with unpredictable effects in Astrée [23]), preferably machine checkable ones (such as the former restrictions on dynamic memory allocation in Astrée [23], now dropped).…”
Section: Soundnessmentioning
confidence: 95%
“…Unsoundness is ubiquitous in static analyzers [15], typically to intentionally favor other important qualities, such as precision or efficiency. A recent technique systematically documents and evaluates the sources of intentional unsoundness in a widely used, commercial static analyzer [16]. The experimental evaluation of this work sheds light on how often the unsoundness of the analyzer causes it to miss bugs.…”
Section: Related Workmentioning
confidence: 99%