Better Testing Is Better Learning

As humans, we face tests every day and are constantly testing what we know against the world we come up against. Because we test so much, most people don’t think about what or how they test. It is beneficial for you to be aware of what you are testing. It will improve your ability to learn.

Failing to learn something is often failing to know how to test. Take learning to code for example. When I was learning via online lessons and tutorials, I tested concepts and methods with exercises, but this didn’t mean the information was useful in reality. What was relevant to passing the tests in the lessons was different from what was relevant in real life. I only realized this once I had a relevant project to work on. Once I had that, I could test the usefulness of what I was learning faster. When my tests connected to the real world, I was motivated to continue and improve. Good tests connect you with reality.

Learning from Test-Driven Development

In software development, there is an idea called test-driven development. It is the idea that you should focus on tests first. Engineers following test-driven development write the tests they want their code to pass first, then write the code satisfying those tests.

Test-driven development is good because it makes sure the code written creates the wanted outcome, and not just what the engineer thinks is best. It limits the amount of excess and unnecessary code while maintaining quality over time. The tests connect the code to the outcome, or in more general terms, the action to reality. This idea is important and relevant beyond software development.

Keep A High Bar

Because tests connect action and reality, they allow you to know if you are learning something. People are often too easy on themselves in testing (or don’t test at all) and disconnect from reality. We fool ourselves because failing tests hurts. The solution is either to improve your solution or lower the bar to pass. Without realizing it, a lot of people lower their bar.

“The first principle is that you must not fool yourself — and you are the easiest person to fool.”

Richard Feynman

For example, when learning a language, there are easier and harder ways to test what you know. Easier tests like Duolingo or textbooks are low stakes and allow you to fail, but also don’t reflect reality well. Harder tests, such as having a conversation, are high stakes (you’ll be embarrassed if you mess up). A conversation is like a series of small tests where you get feedback on how you’re doing throughout. Without realizing it, people gravitate towards easier tests and often learn less because of it.

Many hard problems are hard because testing them is hard. How do you test theoretical physics? You build on accepted knowledge, try to discover new ideas and concepts, and test them in frameworks you have in the past (or make up your own frameworks). If you’re lucky and talented, maybe your concept is important enough to spend billions of dollars on tests like CERN. This is a very high bar. Luckily, most tests in your life won’t be this hard.

Maintain Speed

Another way people lower their standards for testing is by slowing down. When we face harder tests, we test less because it takes time and energy. We get lazier, push ourselves less, and take “common knowledge” for granted. We settle for “good enough.” The fewer tests we do the less we learn. We should aim to maintain speed and tempo in testing rather than letting ourselves become comfortable slowing down.

People we admire as a society do a lot of tests quickly. It’s often all about reps, but you only hear about the reps that succeed. James Dyson, for example, went through 5,127 prototypes before figuring out the right cyclone for his vacuum. You know him because the reps helped him figure it out. That was because he knew how to test, and did so rapidly.

“I will fail many times, and I will be really right once” is the entrepreneurs’ way. You have to give yourself a lot of chances to get lucky.

Sam Altman

All this means you should be aware of your tests. Figure out what you are testing now and what you’d like to be testing in the future. Figure out how hard your tests are, and don’t give up if your tests are failing. Test in weird places you haven’t before because the common knowledge you aren’t testing could be wrong. Maintain a high speed of testing because that means you are learning a lot. Understanding your tests and improving them is an excellent way to improve your life.

Thanks to Kym Ellis, Christine Cauthen, and Nick Drage from Foster for the feedback.

Let me know what you think on Twitter.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s