Omg, how do I write software that isn't a ticking timebomb!?
summary
Shows concrete results using Property Based Testing with the Python tool Hypothesis to generate inputs, shrink failures and find real bugs—example: a numeric average implementation breaks on two huge floats; shrinking delivers a minimal counterexample. Describes combinator strategies like one_of, filtering and building structured objects, and a rule‑based state machine to fuzz a Flask blog (register/login/post) so sequences of actions expose logic bugs. Cites real incidents: 8.5 million devices crashed, ~2,000 flights cancelled, arguing PBT finds subtle, high‑impact faults and speeds debugging.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:07Property-based testing matters
- 5:00Software catastrophes causes
- 9:20Role of testing in development
- 13:14Testing compilers with property-based testing
- 14:38Chaos monkey and test oracle
- 16:26Property-based testing with Hypothesis
- 18:57Generating complex test data
- 20:00Testing serialization
- 23:41Abstract properties limitations
- 25:23Edge cases in average calculations
- 27:13Debugging with Hypothesis shrinking
- 30:47Stateful testing with Flask blog
- 39:22Expanding stateful testing model
- 40:25Next steps in property-based testing
related talks
40mProperty-based Thinking
01h 07mSufficiently Advanced Testing
01h 31mIntroduction to Property-Based Testing
27mTesting Beyond Examples: Property Based Testing with Hypothesis
41mProperty Based Testing in Python with Hypothesis
41mProperty Based Testing with Hypothesis: Stronger Tests, Less Work
38mTesting with two failure seeking missiles: fuzzing and property based testing
32mMore testing with fewer tests
