Strauss: a specification miner

  • Authors:
  • Glenn Schatzman Ammons;Rastislav Bodik

  • Affiliations:
  • -;-

  • Venue:
  • Strauss: a specification miner
  • Year:
  • 2003

Quantified Score

Hi-index 0.01

Visualization

Abstract

Program verification tools (such as model checkers) are powerful tools for finding errors in programs. Unfortunately, these tools need lots of formal specifications of correct program behavior. Can we really expect programmers to write all of these specifications by hand? This dissertation is about Strauss, a tool I wrote to bring automation to specification-writing. By observing traces of working programs, Strauss infers many temporal specifications, each of which says how correct programs use a small part of an interface. I used Strauss to derive 17 formal specifications for the X11 windowing system (whose libraries contain over 2000 routines and over 500 data structures), and used the specifications to find bugs in several widely distributed applications.