[论文解读] Incremental Bounded Model Checking for Embedded Software (extended version)
本文提出一种用于嵌入式C软件的增量有界模型检测(BMC)技术,通过利用增量SAT求解避免在连续循环展开过程中产生冗余计算。通过重用先前的求解工作,该方法相比非增量BMC将验证时间减少了高达一个数量级,显著提升了工业嵌入式系统验证的可扩展性。
Program analysis is on the brink of mainstream in embedded systems development. Formal verification of behavioural requirements, finding runtime errors and automated test case generation are some of the most common applications of automated verification tools based on Bounded Model Checking. Existing industrial tools for embedded software use an off-the-shelf Bounded Model Checker and apply it iteratively to verify the program with an increasing number of unwindings. This approach unnecessarily wastes time repeating work that has already been done and fails to exploit the power of incremental SAT solving. This paper reports on the extension of the software model checker CBMC to support incremental Bounded Model Checking and its successful integration with the industrial embedded software verification tool BTC EmbeddedTester. We present an extensive evaluation over large industrial embedded programs, which shows that incremental Bounded Model Checking cuts runtimes by one order of magnitude in comparison to the standard non-incremental approach, enabling the application of formal verification to large and complex embedded software.
研究动机与目标
- 为解决非增量有界模型检测在嵌入式软件验证中的低效问题,即在不断增加的循环展开中重复进行SAT求解,造成大量时间浪费。
- 将增量SAT求解集成到专为工业C程序设计的软件模型检查器中,利用嵌入式控制循环与硬件转换关系之间的结构相似性。
- 在大规模工业基准测试上评估增量BMC的性能提升,并证明其在真实世界验证工具中的实际可行性。
- 通过将该技术集成到BTC EmbeddedTester和EmbeddedValidator工具中,推动工业应用,目前已有数百名工业用户使用。
提出的方法
- 扩展Cbmc工具以支持增量BMC,通过在连续展开中重用SAT求解器状态,避免重新计算先前已求解的公式。
- 应用符号执行和程序切片技术,在SAT求解前减小验证公式的规模,从而提高效率。
- 不仅将增量SAT求解应用于循环展开,还将其扩展至其他验证任务,如路径探索和属性检查。
- 采用混合方法,结合有界模型检查与增量SAT求解,以验证安全属性并生成反例。
- 使用大规模工业级嵌入式C基准测试验证该方法,与非增量BMC及TACUS 2014竞赛优胜者进行性能对比。
- 将增强后的模型检查器集成到BTC EmbeddedTester和EmbeddedValidator中,自3.4和4.3版本起实现工业部署。
实验结果
研究问题
- RQ1增量SAT求解是否能显著减少嵌入式C程序有界模型检测的运行时间?
- RQ2在工业嵌入式软件上,增量BMC相较于非增量BMC在可扩展性方面提升程度如何?
- RQ3增量BMC在嵌入式控制软件中连续循环展开时,对冗余计算的减少效果如何?
- RQ4增量BMC能否成功集成到工业验证工具中并在实践中被采用?
- RQ5增量BMC在实现显著性能提升的同时,是否能保持高准确性(无误报)?
主要发现
- 与非增量BMC相比,增量BMC在大型工业嵌入式基准测试上的验证运行时间减少了高达一个数量级。
- 该性能提升在多种工业程序中保持一致,证明了其在复杂嵌入式系统中的稳健可扩展性。
- 在运行效率方面,增量BMC相比TACAS 2014软件验证竞赛优胜者提升了十倍。
- 集成到BTC EmbeddedTester和EmbeddedValidator后,已使数百名工业用户能够实现更快、更具可扩展性的验证。
- 增量SAT求解有效重用先前计算,消除连续展开中的冗余工作,且不损失精度。
- 该方法保持了完整的准确性,能够生成有效反例,并支持面向覆盖率的测试向量生成。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。