Fantastic Bugs (and how I find them)
I build open-source testing tools, like Hypothesis and Pytest… and I’ve seen some fascinating bugs. Join me for a tour of the best, and we’ll explore why bugs happen, my ‘property-based’ tricks for finding them, and how to prevent them. If, of course, the weird behaviour really is a bug!
We’ll look at weird behaviour featuring unicode, datetimes, numbers and not-a-numbers; in libraries and in the language itself. I’ll explain how I decide where to look, and the ‘property based’ attitude to specifying what code should always or never do.
We’ll see some cool performance optimisations, misunderstandings, unexpected implementation details, and a couple of genuine bugs. Reflecting on the difference can help us understand why bugs happen, and if we’re lucky even how to prevent, find, and fix them!