~/talk

Surprise yourself with Property Based Testing

Talkat Øredev 2023 · 2023-11-08..11-10· [testing, rust]

Randomized tests that compare a reimplementation against a known‑good oracle find real bugs: a Rust Motorola 68k emulator run with ~1,600 QuickCheck-style properties (covering many of ~65,000 opcodes) runs ~4 hours, produces 16 PRs against Masashi, and surfaces subtle CPU and timing mismatches. Stateful checks reproduce LevelDB defects as command sequences (17‑step then 33‑step repros). Tooling details matter: generators to craft inputs, shrinking to minimize counterexamples, and seeding or nightly runs tame non-determinism.

AI-written summary · about

  1. 0:00Introduction
  2. 1:07Why Property Based Testing
  3. 5:24What is a property
  4. 6:32Example vs property testing
  5. 8:18From example to property
  6. 11:29Defining PBT clearly
  7. 13:19Tooling support
  8. 20:26Stateful PBT explained
  9. 26:10LevelDB case study
  10. 27:15Criticisms and concerns
  11. 29:02Making property based testing work in practice
  12. 33:44Finding properties
  13. 34:27Three ways to derive
  14. 39:24Dual implementation
  15. 40:10Tools and resources
  16. 41:56Summary
~/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.