Testing? Making beer? They have one critical component in common. When done right, the results can be … Fantastic.
By no doubt, making beer is a very physical process. While testing code is a highly abstract process. They both require high degrees of thoughtfulness, attention to detail, and thoroughness.
Sure, grab a computer or some barley, and start to make stuff. Is that possible? Yup, but they all benefit from some systematic approach to create a good result. One might start out by learning about common errors in programming. Reading recipes for beer. Having planning at the core of your mental processes creates a better product.
Today we use modern tools to help us in our planning. When it comes to being a tester, you could be using jMeter, sublime, or many other excellent tools out there to help you automate your test process.
The same goes for beer brewing, with tools like Brew Father, Beer Smith, or a notebook full of postits’ and doodles. Helping you to jot down your recipes. Keeping track of the fermentation. Software tools help you in all manner of ways. Document what you have done. How you did it and how you can improve on that process.
These tools help us in diagnosing where things didn't go as intended. Maybe it's the OCR that's always failing because of weird handwriting somebody has. For some reason, the beer always comes back tasting as green apples.
Data? Data! Having tools is fantastic but tools without data are meaningless. Fortunately, we also have lots of ways to collect data:
Modern brewing collects data on:
These processes are both laborious in the sense that it takes effort to create a good result. The main difference is that if the brewing fails you must wait another two weeks for the fermentation to complete. Whereas fixing an error in software could take as little as 15 minutes.
Mistakes are sometimes infuriating to make, but they are an opportunity. Looking at it from a higher perspective failing helps us to improve – learning from failure is the greatest teacher there is. Using the data helps us to find out what we are going wrong. A test case that suddenly takes ten times longer could point out a loop error. Similarly, a low Ph might explain the weird green apple taste.
Because that's what testing and making beer is all about. Failing strategically to create awesome results.