Isn’t the phrase interesting…I’ve always been a food lover. I love to explore new cuisines whenever possible. I always make sure to spend some of my “ME” time exploring new recipes. Because of this crazy interest in me, I started to watch culinary videos on Youtube. After watching the culinary videos on Youtube over and over, I slowly started my cooking journey.
Every cooking lover would have started their journey of cooking as a disaster cook 😊 so did I, where many of my recipes were not digestible or simply ruined😊. Gradually I started to pay attention to the recipe and finally ended up with outputs close to what was expected. Also learning more recipes from culinary videos on Youtube eventually helped me to understand that a lot of dishes are almost identical, a few areas of tweaking and some hints and tricks will enable different variants in food. The point is that the more you explore the recipes, the more control you’ve got over the effectiveness of the result – and the more you enjoy preparing it. Now I’m an occasional Youtuber, posting some of my crazy recipes on my channel 😊 if you like to watch culinary videos do visit my Youtube channel 😊
After being passionate about cooking, I noticed several aspects of cooking that I think are really similar to what we also have in software testing. I found it interesting being a software tester by myself, so I thought of sharing those fun-filled interesting topics with my tech mates as well 😊 so let’s begin…
Connecting the dots of a newbie in cooking with early Software Testers:
Early Software Testers will eventually have many challenges at the initial phase of their testing journey, like a person who struggles to cook at the early stage of their cooking journey, for instance – can not formulate adequately effective test cases, insufficient test coverage, running of unnecessary tests, and so on, this will eventually end up delivering a poor quality product to the customer.
So anyone who is new in the testing domain will have to start somewhere and a wise place to start would be to start exploring the products or applications that are under test. To add on we can get a book on testing to try to understand the core concepts and principles in software testing in order for us to explore the product more productively from a testing perspective.
At the start of the testing journey, we will surely make enormous mistakes like – missing finding critical bugs, missing documenting what we did, focusing more on preparing tests which eventually led to limited time for actual execution, etc. But no one will learn unless we make mistakes. Paying attention to the core strategy of testing will open doors to widen our minds in thinking about what can be done differently in testing and yet in a more effective manner.
Preparing a recipe and Verifying + Validating an Application have certain similarities:
My friends often tease me that “I’m in love with Briyani’s”, indeed it’s true I’m a Briyani lover anytime Briyani is served to me I can have it wholeheartedly 😊
A month ago I had a huge craving for Hyderabadi Chicken Briyani and I couldn’t stop myself from making it at home for the entire family, while working on it suddenly a thought hit my mind, how a recipe can be related to software testing? Though this can sound funny to many, it’s interesting so stay along…
Have you ever prepared Briyani? If you have ever prepared it, then you might already know that you need ingredients like biryani rice, chicken, ghee, cooking oil, onion, tomato, whole spices, chilly powder, garam masala powder, salt, coriander and mint leaves, green chilies, etc for the preparation. Apart from the ingredients, we would need a thick bottom biryani cooking pot, a big serving spoon, gas stove, kitchen lighter, kitchen knife, etc. as support items for our project “Hyderabadi Chicken Briyani”! So how is this recipe related to testing let’s check that out…
- Now let’s say we are provided with 2kg of chicken, 500g of briyani rice, a teaspoon of oil and ghee, a small onion, an unlimited supply of spices, and so on and we are asked to prepare biryani for 10 people using the above ingredients, is it feasible to do? It’s a big NO! The ingredients that are provided are not appropriate as per the requirement of serving 10 people.
Take away 1: We need to VERIFY whether our ingredients are available in the correct quantity?
- Now if we are provided with the ingredients in the correct quantity, can we prepare Briyani for 10 people? Hold on with the answer here, What if we are provided with chicken that is spoiled or ghee that is stinking? Will it be still possible for us to prepare a good Briyani? It’s again a big NO in that situation!
Take away 2: We need to VERIFY whether our ingredients are of good quality?
- Now let us assume that we have got all the ingredients in proper quantity and of good quality and we have finally prepared the long-awaited Hyderabadi Chicken Briyani. But wait a moment won’t we be cautious to taste i.e basically TEST a little Briyani before serving it to our family? To check if all the ingredients are well infused in the Biryani, if any ingredients are less or should have been added more, and so on…
Take away 3: Here basically we need to VALIDATE whether our final product (Briyani) has been prepared correctly or not?
Taking into account all the above key takeaways, let us see how the preparation of a Biryani makes sense in terms of the software testing process. The verification of the correct quantity and quality of the ingredients, while preparing the Briyani can be compared with the verification process in software testing. The final validation of whether the Briyani has been prepared as expected can be compared with the validation process in software testing. Verification was done when the Briyani preparation was ongoing when we did not have the end product Briyani ready. Validation was done once we assumed that the end product Briyani was ready. These points can be related to the common way of addressing the Verification and Validation process within Software Testing 😊
Are we building the product right? – Verification
Are we building the right product? – Validation
So until now isn’t it interesting and fun to relate testing with cooking 😊 let’s see some more parallels between Cooking and Software Testing:
- To excel as a cook you need an unrelenting dedication to the diner’s experience (could be a family member (or) whomsoever you are preparing the meal for). Everything we think about while preparing the meal is how satisfied the diner would be after having the food, with software testing the same consideration must be made. The whole point is to provide a quality user experience. Your application, service, or whatever is under test, succeeds to the extent that the people who use it like to use it and consider it beneficial in their life.
- Cooking and Testing both should be a continuous process until the end product goes live. Things could go worst if a proper ‘cooking/testing’ technique is not kept intact from the beginning. Test your cooking ingredients before you cook. Prepare properly your test strategy before you start testing.
- Cooking and Testing both need learning along with relevant practice. If you just spend time reading and knowing things there is no space for realizing your potential. And, if you’ve only been practicing, chances are you didn’t create something innovative in a long while. Balance of learning and practice is the key.
- Cooking frequently makes you master it. And, persistent efforts towards software testing make you a pro-tester. By being consistent in your efforts, you can master the art of testing/cooking.
- It is crucial to plan your testing strategy or food recipe ahead of time. Else, you have got end-users or guests waiting. Planning for the process in advance will allow you to prepare for the meal better. Planning the Testing activity ahead can ensure effective testing.
- Finally, cooking needs passion. When you are a passionate cook willing to try something new, you can be more creative with your recipes. In similar terms when you are passionate enough while testing your application you can deliver great results at work and customers would be more satisfied.