~/talk

spec loves data structures

Talkat EuroClojure 2017 · 2017-07-20..07-21· [clojure, testing]
slides:none on file

Shows that Clojure spec plus test.check are used to build white‑box invariant tests and custom generators that find subtle persistent data structure bugs (hashmap transient errors from 2013, a split bug reported 2016, AVL rebalancing omissions). Converts trees to a map representation, generates reachable and unreachable instances, runs generative checks (about 50 property runs, 14 invariant checks), fixes defects and raises confidence that the rebuilt implementations actually obey structural and performance contracts.

AI-written summary · about

  1. 0:00Introduction
  2. 9:10data.avl Aug 2016 (DAVL-8)
  3. 11:05data.avi Oct 2016 (new invariant tests)
  4. 16:12The final black box
  5. 20:36Enter spec cont'd
  6. 26:24data.avl leaf specs
  7. 27:22data.avl :: node spec
  8. 28:49data.avl :: avl-map spec
  9. 29:52data.avl invariant test
  10. 31:35data.avl spec'd cont'd
  11. 36:51s/fdef as test specification cont'd
  12. 39:41No parameterized specs
  13. 41:31Next steps
~/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.