Testing Specifications In Dafny
summary
IronSpec provides concrete ways to surface specification bugs in Dafny: an automatic sanity checker that flags input/output disconnects, an automated mutation testing pipeline that mutates specs and keeps alive mutations whose proofs still pass, and a methodology for writing Spec-Testing Proofs (STPs) as unit-style checks. The prototype runs on nine specifications (including three open-source verified systems) and finds specification bugs in each of those three, helping distinguish specs that are too weak or too strong.
AI-written summary · about
chapters (10)
- 0:00Spec testing in Dafny
- 1:04Why specs need testing
- 2:29Verifying trusted specs
- 3:54Iron Spec testing
- 7:02Automatic sanity checks
- 8:47Manual spec testing
- 10:52Mutation testing specs
- 13:20Iron Spec results
- 14:21Impact on open-source
- 15:14Q&A
related talks
15mIronSpec: Increasing the Reliability of Formal Specifications
38mLiving with Spec
47mTesting the Hard Stuff and Staying Sane
20mRandomised Testing of the Dafny Compiler: Into the CI
01h 06mBeyond Test Driven Development
43mspec loves data structures
42mWorkshop / Taming Chaotic Specs: RSpec Design Patterns
38mAbove and beyond type systems with clojure.spec
