Periodically I gain insight or inspiration from studying unrelated areas or industries, this was the case when I was struck by the similarities between testing and cooking. On the surface they seem drastically different but as you dig deeper you start to see the similarities.
The most basic type of cooking involves following recipes. These recipes are typically created by someone else and offer not only the items needed to create the entree, but also step-by-step instructions. The ingredients and steps working together will, in theory, create the perfect replication of the dish. But many of us know that even after following the recipe to the letter things don’t always turn out so perfectly. You can accidentally over or under cook the meal because of variations with your stove. The instructions could make assumptions about your level of knowledge or terminologies (simmer being my favorite) that cause the dish to not turn out correctly. Or you may find that even after making the dish its not really what you had hoped it would be, sounded better on paper.
As a tester I hear these things and immediately think of scripts and test cases. These sorts of “tests” (checks) are usually made by someone else and outline the prerequisites for the test, the steps to be followed, and if all goes well you get the “expected results.” But this method has the same problems as a recipe. Your setup may not exactly match, or you may misunderstand a term, or worse you could expend all this time and effort and the test(s) aren’t as good as they seemed on paper.
Taking this analogy further lets consider the difference between a cook and a chef. A cook follows a recipe created by someone else, usually a head chef. He rarely, A cooks job is to recreate the same exact entree consistently, over and over again. Whereas a chef is looking for new an interesting culinary experiences, they won’t settle for the same thing over and over again. A chef not only needs to understand the science of food but also the aesthetics, and they must be highly creative. Chefs understand that repeating the same thing over and over again numbs the palette and doesn’t advance their craft. To this end a chef is constantly looking for the next new food combination. They are often sought out not for what they have done in the past but what they can do in the future.
Here again as a tester I see parallels, in this case “checkers” versus” testers.” A checker is someone who performs scripts that someone else created with the intention of consistently repeating the test(s) looking for the excepted results. But here is where things get interesting, in software testing often we aren’t looking for the same thing over and over again, we need to find something new. This is where a tester steps in. A tester, not unlike a chef, understands there is little value in doing the same things over and over again. A tester also has a high level of skill and must be knowledgeable in their craft. They often aren’t satisfied with the work they’ve done in the past and are looking for new an interesting testing opportunities. Testers are often sought out not for what they have done in the past but what they can do in the future.
So are you a cook (checker) or a chef (tester)?