• 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