Checkification: A Practical Approach for Testing Static Analysis Truths
Daniela Ferreiro, Ignacio Casso, Jose F. Morales, Pedro, L\'opez-Garc\'ia, Manuel V. Hermenegildo

TL;DR
This paper introduces a practical method for testing the correctness of static analyzers based on abstract interpretation by combining static and dynamic assertion checks within the Ciao framework.
Contribution
It presents a simple, integrated approach for validating static analysis tools through assertion-based testing, addressing a gap in formal validation methods.
Findings
Identified multiple bugs in the CiaoPP static analyzer.
Most bugs were fixed or confirmed, improving analyzer reliability.
The approach requires minimal effort and overhead.
Abstract
Static analysis is an essential component of many modern software development tools. Unfortunately, the ever-increasing complexity of static analyzers makes their coding error-prone. Even analysis tools based on rigorous mathematical techniques, such as abstract interpretation, are not immune to bugs. Ensuring the correctness and reliability of software analyzers is critical if they are to be inserted in production compilers and development environments. While compiler validation has seen notable success, formal validation of static analysis tools remains relatively unexplored. In this paper, we propose a method for testing abstract interpretation-based static analyzers. Broadly, it consists in checking, over a suite of benchmarks, that the properties inferred statically are satisfied dynamically. The main advantage of our approach lies in its simplicity, which stems directly from…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Adversarial Robustness in Machine Learning · Software Engineering Research
