DocumentCode :
3144010
Title :
Kiasan: A Verification and Test-Case Generation Framework for Java Based on Symbolic Execution
Author :
Deng, Xianghua ; Robby ; Hatcliff, John
Author_Institution :
Dept. of CIS, Kansas State Univ., Manhattan, KS
fYear :
2006
fDate :
15-19 Nov. 2006
Firstpage :
137
Lastpage :
137
Abstract :
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.
Keywords :
Java; formal verification; object-oriented programming; program testing; Bogor framework; ESC; JUnit test cases; Java; Kiasan; code effects; compositional reasoning; constraint solving; design-by-contract reasoning; model checking; object-oriented software; software development; software engineering; symbolic execution; test-case generation framework; theorem proving; verification framework; Computational Intelligence Society; Constraint theory; Contracts; Counting circuits; Data visualization; Java; Object oriented modeling; Programming; Software engineering; Software testing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Leveraging Applications of Formal Methods, Verification and Validation, 2006. ISoLA 2006. Second International Symposium on
Conference_Location :
Paphos
Print_ISBN :
978-0-7695-3071-0
Type :
conf
DOI :
10.1109/ISoLA.2006.60
Filename :
4463705
Link To Document :
بازگشت