论文标题
关于测试SMT求解器的类型感知操作员突变的异常有效性
On the Unusual Effectiveness of Type-Aware Operator Mutations for Testing SMT Solvers
论文作者
论文摘要
我们提出了一种类型感知的操作员突变,这是一种简单但异常有效的测试SMT求解器的方法。关键思想是突变种子公式中符合类型的操作员,以产生良好的突变公式。然后将这些突变公式用作SMT求解器的测试用例。我们在Opfuzz工具中实现了类型感知的操作员突变,并将其用于应力测试Z3和CVC4,这是两个最先进的SMT求解器。类型感知操作员突变非常有效:在对Opfuzz进行广泛测试的一年中,我们报告了Z3和CVC4各自的GitHub问题跟踪器的1,092个错误,其中确认了819个独特的错误,开发人员已确认了685个错误的错误。检测到的错误是高度多样的 - 我们发现了许多不同类型的错误(声音错误,无效的模型错误,崩溃等),逻辑和求解器配置。我们进一步对Opfuzz发现的错误进行了深入研究。研究结果表明,Opfuzz发现的错误是高质量的。其中许多会影响SMT Solvers代码库的核心组件,并且有些需要重大更改才能修复。在Opfuzz发现的819个确认的错误中,有184个是Soundness错误,SMT求解器中最关键的错误和489个位于求解器的默认模式中。值得注意的是,Opfuzz在CVC4中发现了27个关键声音错误,事实证明这是一个非常稳定的SMT求解器。
We propose type-aware operator mutation, a simple, but unusually effective approach for testing SMT solvers. The key idea is to mutate operators of conforming types within the seed formulas to generate well-typed mutant formulas. These mutant formulas are then used as the test cases for SMT solvers. We realized type-aware operator mutation within the OpFuzz tool and used it to stress-test Z3 and CVC4, two state-of-the-art SMT solvers. Type-aware operator mutations are unusually effective: During one year of extensive testing with OpFuzz, we reported 1,092 bugs on Z3's and CVC4's respective GitHub issue trackers, out of which 819 unique bugs were confirmed and 685 of the confirmed bugs were fixed by the developers. The detected bugs are highly diverse -- we found bugs of many different types (soundness bugs, invalid model bugs, crashes, etc.), logics and solver configurations. We have further conducted an in-depth study of the bugs found by OpFuzz. The study results show that the bugs found by OpFuzz are of high quality. Many of them affect core components of the SMT solvers' codebases, and some required major changes for the developers to fix. Among the 819 confirmed bugs found by OpFuzz, 184 were soundness bugs, the most critical bugs in SMT solvers, and 489 were in the default modes of the solvers. Notably, OpFuzz found 27 critical soundness bugs in CVC4, which has proved to be a very stable SMT solver.