paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Constraint-Based Test Oracles for Program Analyzers

面向程序分析器的基于约束的测试预言(oracle)
ASE Proceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering2024匹配度 3/10 · 该论文关注程序分析器自身的测试,属于静态分析元级问题,但未涉及LLM/Agent、浮点程序分析或贝叶斯程序分析等用户核心研究方向,也不涉及AI与PL的交叉。引用 7 inbox
Markus Fleischmann, David Kaindlstorfer, Anastasia Isychev, Valentin Wüstholz, Maria Christakis
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:用 SMT 约束生成带已知安全性的程序作为测试预言,检测程序分析器自身的可靠性与精度缺陷。

程序分析器实现了复杂算法,其实现中同样可能存在缺陷:不精确的分析器无法验证本无不可达错误位置的安全程序,而不可靠的分析器则会把存在可达错误位置的不安全程序错误地证明为安全。本文提出为分析器生成基于约束的测试预言的方法,将用于 fuzzer 基准测试的 Fuzzle 改造并扩展为工具 Minotaur。Minotaur 从 SMT 约束生成 C 程序,并依据约束的可满足性推导所生成程序是安全还是不安全;据此判定被测分析器的结论是否正确,例如若分析器将不安全程序证明为安全,则说明其存在可靠性问题。作者用 Minotaur 测试了 11 个著名的、推理可达性属性的分析器,共发现 30 个独特的可靠性与精度问题。

问题
程序分析器实现中的缺陷会使其不精确(漏报安全程序)或不可靠(把不安全程序判为安全),而针对分析器本身的测试缺乏可靠的判定基准。
方法
复用并扩展 Fuzzle 实现 Minotaur:从 SMT 约束生成 C 程序,并根据约束可满足性确定程序的安全性,将其作为测试预言来检验被测分析器结论的正确性。
评估
在 11 个针对可达性属性的知名分析器上运行 Minotaur,共发现 30 个独特的可靠性与精度问题。
原文摘要(Abstract)

Program analyzers implement complex algorithms and, as any software, can contain bugs. Bugs in their implementation may lead to analyzers being imprecise and failing to verify safe programs, i.e., programs with no reachable error locations; or worse, analyzer bugs may lead to reporting unsound results by verifying unsafe programs, i.e., programs with reachable error locations.In this paper, we propose a method to detect such bugs by generating constraint-based test oracles for analyzers. We re-purpose and extend Fuzzle, a tool for benchmarking fuzzers, in a tool called Minotaur. Minotaur generates C programs from SMT constraints, and based on the satisfiability of the constraints, derives whether the generated programs are safe or unsafe. For instance, for an unsafe program, an analyzer under test contains a soundness issue if it proves it safe. Using Minotaur, we found 30 unique soundness and precision issues in 11 well-known analyzers that reason about reachability properties.CCS Concepts• Software and its engineering → Software testing and debugging.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{FleischmannKIWC24,
  title = {Constraint-Based Test Oracles for Program Analyzers},
  author = {Markus Fleischmann and David Kaindlstorfer and Anastasia Isychev and Valentin Wüstholz and Maria Christakis},
  booktitle = {ASE},
  year = {2024},
  doi = {10.1145/3691620.3695035}
}