...
首页> 外文期刊>International Journal on Software Tools for Technology Transfer >The software model checker Blast Applications to software engineering
【24h】

The software model checker Blast Applications to software engineering

机译:软件模型检查器Blast在软件工程中的应用

获取原文
获取原文并翻译 | 示例
           

摘要

Blast is an automatic verification tool for checking temporal safety properties of C programs. Given a C program and a temporal safety property, Blast either statically proves that the program satisfies the safety property, or provides an execution path that exhibits a violation of the property (or, since the problem is undecidable, does not terminate). Blast constructs, explores, and refines abstractions of the program state space based on lazy predicate abstraction and interpolation-based predicate discovery. This paper gives an introduction to Blast and demonstrates, through two case studies, how it can be applied to program verification and test-case generation. In the first case study, we use Blast to statically prove memory safety for C programs. We use CCured, a type-based memory-safety analyzer, to annotate a program with run-time assertions that check for safe memory operations. Then, we use Blast to remove as many of the run-time checks as possible (by proving that these checks never fail), and to generate execution scenarios that violate the assertions for the remaining run-time checks. In our second case study, we use Blast to automatically generate test suites that guarantee full coverage with respect to a given predicate. Given a C program and a target predicate p, Blast determines the program locations q for which there exists a program execution that reaches q with p true, and automatically generates a set of test vectors that cause such executions. Our experiments show that Blast can provide automated, precise, and scalable analysis for C programs.
机译:Blast是用于检查C程序的时间安全性的自动验证工具。给定一个C程序和一个暂时的安全性,Blast要么静态地证明该程序满足安全性,要么提供一个表现出违反该属性的执行路径(或者,由于问题无法确定,因此不会终止)。 Blast基于惰性谓词抽象和基于插值的谓词发现来构造,探索和改进程序状态空间的抽象。本文介绍了Blast,并通过两个案例研究演示了如何将其应用于程序验证和测试用例生成。在第一个案例研究中,我们使用Blast来静态证明C程序的内存安全性。我们使用CCured(一种基于类型的内存安全分析器)为程序添加运行时断言,以检查安全内存操作。然后,我们使用Blast删除尽可能多的运行时检查(通过证明这些检查永远不会失败),并生成违反其余运行时检查的断言的执行方案。在我们的第二个案例研究中,我们使用Blast自动生成测试套件,以保证对给定谓词的完全覆盖。给定一个C程序和一个目标谓词p,Blast确定存在q且p true达到q的程序执行的程序位置q,并自动生成导致这种执行的一组测试向量。我们的实验表明,Blast可以为C程序提供自动化,精确和可扩展的分析。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号