Basket-case Reduction

David MacIver writes good articles about psychology and coping with life, for example “How to do hard things”. Over in the world of computers, he is also an expert in something called test case reduction

The idea of test case reduction is to find the simplest thing that will break a program. You might, for example, start with a thousand-word essay that you can’t upload to a particular website. To understand what’s going wrong you remove text until you find the shortest input that breaks things – maybe the website can’t handle accented characters or something. You can do this by hand, or if you’re smart you will use some of David’s code to do it automatically.

David has heroically resisted the temptation to phrase self-help in terms of debugging. In his position I would have given in immediately – because so many of the processes I go through to figure out my head are equivalent to debugging.

I have the benefit that my brain is pretty good at running simulations of how I would behave in different situations. So when a situation freaks me out, I can later apply my own internal test case reduction. ‘Would I have coped better if I had trusted the other person?’ I might ask myself. “What about if I felt confident in my knowledge of what we were talking about?” And if it works, I’ll eventually have a simplified scenario which showcases the bug in my brain.

Written on May 7, 2021