首页> 外文会议>International Symposium on Leveraging Applications of Formal Methods, Verification and Validation >Kiasan: A Verification and Test-Case Generation Framework for Java Based on Symbolic Execution
【24h】

Kiasan: A Verification and Test-Case Generation Framework for Java Based on Symbolic Execution

机译:Kiasan:基于符号执行的Java的验证和测试案例生成框架

获取原文

摘要

Best program practices in software engineering emphasize software components that are loosely coupled and can be independently developed by different vendors. While these approaches improve the process of software development, however, they present a number of challenges involving reasoning about the correctness of individual components as well as their integration. Design-by-contract reasoning offers a promising approach to reason about software components by requiring software contracts that describe the behaviors of the components. This allows one to focus at satisfying the contract of each component, i.e., it allows compositional reasoning. In this paper, we present Kiasan, a technique that combines symbolic execution, model checking, theorem proving, and constraint solving to support design-by-contract reasoning of object-oriented software. There are a number of interesting tradeoffs between Kiasan other approaches such as ESC/Java. While checking in Kiasan is sometime more expensive, Kiasan can check much stronger behavioral properties of object-oriented software including properties/software that makes extensive use of heap-allocated data. In addition, Kiasan naturally generates counter examples, visualization of code effects, and JUnit test cases that are driven by code and user-supplied specifications. We present Kiasan and describe how it is implemented on top of the Bogor framework. Furthermore, we present a case study in which Kiasan is applied to a variety of examples and we discuss insights gained from our experience.
机译:软件工程中的最佳程序实践强调软件组件,这些组件松散耦合,可以由不同的供应商独立开发。虽然这些方法改善了软件开发的过程,但是,它们呈现了许多挑战,涉及推理各个组件的正确性以及它们的整合。逐个合同推理提供了一种有希望的方法,可以通过要求描述组件行为的软件合同来推理有关软件组件的原因。这允许人们专注于满足每个组分的合同,即,它允许组成推理。在本文中,我们呈现了一种基本的技术,该技术结合了符号执行,模型检查,定理证明和约束解决以支持面向对象软件的逐合理推理。 Kiasan之间存在许多有趣的权衡,例如Esc / Java等方法。在kiasan的检查时,有时候可以更昂贵,Kiasan可以检查面向对象软件的强大行为属性,包括大量使用堆分配的数据。此外,Kiasan自然地生成了代码示例,代码效果的可视化,以及由代码和用户提供的规范驱动的JUnit测试用例。我们提出了kiasan并描述了它在茂物框架之上的实施方式。此外,我们展示了一个案例研究,其中Kiasan适用于各种例子,我们讨论了我们经验中获得的见解。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号