John Hughes - Testing the Hard Stuff and Staying Sane
ClojureTV4 HN recommenders · recommended in 4 months, 2016–2026
talk · intermediate · evergreen · 2016–2026 on HN
John Hughes, co-creator of QuickCheck, talks about property-based testing of hard systems. He shows production examples where it found very low-level bugs, including issues in the CAN bus standard.
Recommended as the best introduction to property-based testing and cited for its examples of bugs found in the CAN standard.
Up next
6 mo on HN"Transducers" by Rich Hickey
Strange Loop Conference
6 HN recommender · 2014–2025
9 mo on HNBrian Goetz - Stewardship: the Sobering Parts
ClojureTV
10 HN recommender · 2014–2025
3 mo on HNLenses, Folds, and Traversals
Edward Kmett
3 HN recommender · 2013–2014
6 mo on HNCan You Watch This Without Getting Angry?
CGP Grey
6 HN recommender · 2015–2025
15 mo on HNRailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
15 HN recommender · 2015–2025
11 mo on HN"Testing Distributed Systems w/ Deterministic Simulation" by Will Wilson
Strange Loop Conference
12 HN recommender · 2014–2024
11 mo on HN🚀 TDD, Where Did It All Go Wrong (Ian Cooper)
DevTernity Conference
11 HN recommender · 2018–2024
11 mo on HNBret Victor - Inventing on Principle
Rui Oliveira
12 HN recommender · 2013–2025
11 mo on HNSolving Problems the Clojure Way - Rafal Dittwald
Clojure/north
10 HN recommender · 2019–2025
11 mo on HNDebugging Under Fire: Keep your Head when Systems have Lost their Mind • Bryan Cantrill • GOTO 2017
GOTO Conferences
8 HN recommender · 2018–2025
10 mo on HN"Performance Matters" by Emery Berger
Strange Loop Conference
12 HN recommender · 2019–2025
10 mo on HNA Tour of the Acme Editor
Russ Cox
11 HN recommender · 2012–2026
6 comments from Hacker News
I'd recommend watching this ▶ this video to see how powerful this can be. I've just discovered generative testing due to clojure.spec. Describing specs for your data works not only to help validate data structures but can be plugged in as properties for generative testing. After the "aha" moment it was followed by a feeling that I've wasted so much time writing specs just to validate data structures and writing specs just to see if my functions are working as they should. This is one of the things I wish was obvious in my learning track right after vim/emacs will help you code faster.
One of the authors, John Hughes did a talk on property-based testing at Clojure West some number of years back. Worth a watch if you're interested: ▶ this video
I feel like this talk by John Hughes showed that there is real value in this approach with production systems of varying levels of complexity, with two different examples of using the approach to find very low level bugs that you'd never think to test for in traditional approaches. ▶ this video
While of course Haskell has more normal testing infrastructure available (eg. link ), my favorite bit of Haskell testing is QuickCheck, which IIUC started life in Haskell and has been reimplemented in other languages with various degrees of effectiveness and various degrees of connection to the original project. John Hughes (not the filmmaker) gives a great talk about it: ▶ this video
Possibly due to amount of data coming from various sensors and systems. BTW, CAN standard is riddled with bugs: ▶ this video at 26:18
> CAN bus is a brilliant thing for car diagnostics and modification but with every good system normally has a sword of damocles. There are over 100 issues (aka bugs) in the spec though. Uncovered by these guys: ▶ this video (starting at 19:10, includes examples)