QuickSpec is a tool that takes an Erlang or Haskell API and guesses a formal specification for it! QuickSpec is mostly automatic: it "reverse-engineers" the specification by random testing of the API, and all the user need do is give the types of the functions to be tested as well as test data generators. QuickSpec only works on purely functional APIs, such as data structures, at the moment.
This talk will show QuickSpec in action as well as the ideas behind it.