Keynote - Preventing, Finding, and Fixing Bugs On a Time Budget | Raymond Hettinger @ PyBay2018
SF Python1 HN recommender · recommended in 1 month, 2020–2022
talk · intermediate · evergreen · 2020–2022 on HN
Raymond Hettinger's PyBay 2018 keynote on preventing, finding and fixing bugs under a time budget. He covers testing practice, type annotation tradeoffs and the limits of coverage metrics.
HN cites it in Python testing and code quality threads, including his point that 100% coverage proves little.
Up next
8 mo on HNTempleOS | Down the Rabbit Hole
Fredrik Knudsen
7 HN recommender · 2019–2022
5 mo on HNAndrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
ChimiChanga
4 HN recommender · 2024–2026
6 mo on HNOld-fashioned rice cookers are extremely clever
Technology Connections
6 HN recommender · 2020–2025
3 mo on HNParsing JSON Really Quickly: Lessons Learned
InfoQ
3 HN recommender · 2020–2026
3 mo on HNWhat's a Memory Allocator Anyway? - Benjamin Feng
Zig SHOWTIME
3 HN recommender · 2020–2021
7 mo on HNJoe Armstrong & Alan Kay - Joe Armstrong interviews Alan Kay
Erlang Solutions
6 HN recommender · 2016–2026
6 mo on HN30 Weird Chess Algorithms: Elo World
suckerpinch
8 HN recommender · 2019–2026
8 mo on HNCasey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025
Better Software Conference
11 HN recommender · 2025–2026
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
5 comments from Hacker News
This is a good talk by the core developer Raymond Hettinger [1]. He prefers pytest too. I don't do any crazy testing, but I really like property-based testing with Hypothesis, which is also mentioned. This video isn't Python but it's a great intro to property-based testing [2]. 1. ▶ this video 2. link
Please see Raymond Hettinger's keynote on efficiently handling bugs[0]. He makes the case that static type checking is a boon for Python except for in specific programs that make extensive use of covariant and/or contravariant types. [0] ▶ this video
My examples are just personal anecdotes, you can dismiss them by saying "our team won't make the same mistake". If your goal is 100% coverage then it will turn testing into ritual and only give you the illusion of quality. Instead of testing inputs and edge cases, you will focus on testing lines of code. There's a good illustration of uselessness of 100% coverage in one of Raymond Hettinger talks: ▶ this video > I use testing as a tool to be sure we ship quality code I suspect we have different definitions of quality, and your might include testing, so I doubt I will be able to convince you.
I had a similar experience after watching a Computerphile video with John Hughes, one of the authors of the original propert-based testing tool, QuickCheck [1]. Running hundreds of thousands of unique tests and finding the simplified cases was mind blowing to watch. I loved the video but my first experience with this method was with Python's Hypotheis [2], I haven't used it a ton but it's great for finding parsing errors. In the words of Python core developer Raymond Hettinger: > It's not quite fuzzing, but it hits it with the kind of test cases that a good QA engineer would typically come up with, and it does it in automated fashion. 1. link 2. link 3. ▶ this video
Yes, they are probably most useful to me for the IDE completions and docs as well. Raymond Hettinger gave at least one talk [1] where he discussed how there are tradeoffs: reasons why you might use them and reasons why you might not. At the end of the day you can pass whatever you want to a function and the only reason to use types if they make your code better—but there are other tools that might be more worth your time in some situations. [1]: ▶ this video