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