~/talk

A Deep Specification for Dropbox

Talkat Clojure/conj 2015 · 2015-11-16..11-18· [software-architecture, testing]
links:none on file
slides:none on file

A formal QuickCheck-style specification is implemented as a state machine and run against real Dropbox clients in VMs using Clojure test.check, with operations read/write plus a special stabilize operation and conjectured up/down server messages to model non-determinism. The harness generates randomized sequences with sleeps and shrinking, finds timing-dependent surprises (including a reproducible data-loss case and unexpected file resurrection), and validates that specification-based random testing can expose real synchronizer bugs.

AI-written summary · about

  1. 0:00Start
  2. 2:34A Specification
  3. 6:50Deep specifications
  4. 12:39Expressive type systems
  5. 15:20Key ideas
  6. 19:12QuickCheck
  7. 21:34Goals
  8. 22:56Test Setup
  9. 25:40Basic Specification
  10. 33:38Approach
  11. 34:39Final specification
  12. 37:09Using the specification for testing
  13. 38:39Modeling the operations
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.