the software model checker blast applications to software
play

The Software Model Checker BLAST: Applications to Software - PowerPoint PPT Presentation

The Software Model Checker BLAST: Applications to Software Engineering Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar Int. Journal on Software Tools for Technology Transfer, 2007 Stefan Buchholz March 17, 2009 1 Model


  1. The Software Model Checker BLAST: Applications to Software Engineering Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar Int. Journal on Software Tools for Technology Transfer, 2007 Stefan Buchholz March 17, 2009 1

  2. Model checking Program source software model checker Property e.g. modified C-code (SLAM, BLAST) - Valid according to the specification - Error path 2

  3. Model checking Goal Find a path from an initial state to an error state (reachability) Problem State explosion ! Infeasible to check every state. BLAST's solution Dynamic (lazy) predicate abstraction 3

  4. CEGAR Counterexample-guided abstraction refinement Start with a coarse abstraction Try to reach an error state in the abstract domain Success Fail Is the path feasible ? Program satisfies the specification Yes No Refine the abstraction Safety property violated (bug) 4

  5. Optimizations Lazy predicate abstraction don't refine error-free regions Interpolation-based predicate discovery add predicates locally when refining 5

  6. Applications Reduce runtime memory-checks Test their reachability and remove unnecessary ones Automatic test generation For any counterexample found try to generate a test vector BLASTing Linux Code 6

  7. Demonstration Open source ! http://mtc.epfl.ch/software-tools/blast/ 7

  8. Limitations False alarms (can't show infeasability of a path) Mathematical integers (no overflows modeled) Decision functions only implement linear arithmetic Uninterpreted functions (e.g. bit-level manipulations) Simple pointer arithmetic and alias-handling Weak predicate language No logical quantifiers No precise reasoning about recursive functions possible 8

  9. Conclusion + Good performance and scalability - Limitations make it impractical for a lot of real world applications (pointer arithmetic !) - Manually modifying the source code is always required 9

  10. BACKUP 10

  11. Data structures Control flow automaton (CFA) Internal representation of a program Nodes are control points, edges are operations Abstract reachability tree (ART) Represents a portion of the reachable state space A path in the ART corresponds to a program execution Each node stores a link to a CFA-location, the current call stack and the state of variables 11

  12. Automatic test generation Target Predicate Coverage Can a location be reached and the variables satisfy a predicate p ? e.g. p = true for location coverage Coverage of a location L Test if L is reachable (dead code detection) When a feasible path is found generate a variable assignment that guides it to the location Embarrassingly parallel 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend