Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis 2019
DOI: 10.1145/3293882.3330553
|View full text |Cite
|
Sign up to set email alerts
|

Differentially testing soundness and precision of program analyzers

Abstract: In the last decades, numerous program analyzers have been developed both by academia and industry. Despite their abundance however, there is currently no systematic way of comparing the effectiveness of different analyzers on arbitrary code. In this paper, we present the first automated technique for differentially testing soundness and precision of program analyzers. We used our technique to compare six mature, state-ofthe art analyzers on tens of thousands of automatically generated benchmarks. Our technique… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
7
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 25 publications
(7 citation statements)
references
References 72 publications
0
7
0
Order By: Relevance
“…Differential testing has been successfully applied to various domains, most notably compilers and runtime systems [16], [19], [17], [18], [20]. Following this success, differential testing has been applied to many other domains, from program analyzers, such as model checkers [41], debuggers [42], and symbolic execution engines [43], to probabilistic programming languages [44], and software libraries and services [45], [46], [47], [48]. Inspired by this work, we also employ differential testing for finding bugs in ORM systems.…”
Section: Related Workmentioning
confidence: 99%
“…Differential testing has been successfully applied to various domains, most notably compilers and runtime systems [16], [19], [17], [18], [20]. Following this success, differential testing has been applied to many other domains, from program analyzers, such as model checkers [41], debuggers [42], and symbolic execution engines [43], to probabilistic programming languages [44], and software libraries and services [45], [46], [47], [48]. Inspired by this work, we also employ differential testing for finding bugs in ORM systems.…”
Section: Related Workmentioning
confidence: 99%
“…Klinger et al [42] represent the first automated technique for deferentially testing the soundness and precision of program analysers. To evaluate the six well-known developed program analysers, the researchers used tens of thousands of automatically generated benchmarks.…”
Section: Survey Of Related Workmentioning
confidence: 99%
“…On the formal verification side, there have been some pen-and-paper proofs, such as that of the Astree analyzer [12], some automatic and interactive proofs, such as [16,44], and some verification efforts, which include [2,26,31]. Testing efforts for program analyzers include e.g., static analyzers [13,28,49,52], symbolic execution engines [27], refactoring engines [14], compilers [29,30,32,43,47,50], SMT solvers [3], among others. Most of these testing approaches use programs in the target language as test cases and and apply testing techniques like fuzzing (e.g., [3,27,50]) or differential testing [35], (e.g., [3,[27][28][29]50]).…”
Section: Related Workmentioning
confidence: 99%