ABSTRACT: This paper compares the similarities between following the Test Process for software development and following a recipe for baking a cake. Advice is offered in regards to choosing recipes, gathering ingredients and using tools to assist in creating a product that meets the standards of the recipe.
I love cooking in my spare time. As I was baking a lovely chocolate cake over the weekend I found that I was comparing the recipe to a Test Process. By making something challenging seem like an everyday activity (at least for me) I hope this paper helps with your understanding. Maybe you will be able to bake a cake next weekend too!
Choose your Recipe / Framework
Well where to start? That’s easy we have a recipe and often a picture to see what the end product should look like. OK, maybe not that easy, you may not have a picture and find it difficult to visualise, or now you see that beautiful cake and feel a bit intimidated. I have got an answer for both. First, the fact that you may not have a picture, don’t let that stop you. This takes a bit of preparation upfront as if you decide to bake and have not done your research you may be stuck without that picture. But if you’ve thought about it
beforehand you have a number of options. Try another of your recipe books, they may have one or at least one similar. Talk to your friends, they may have one you can borrow or failing that, look it up on the Internet, there are hundreds of examples there to help. This is the same for the Test
Process. There are lots of books and articles on the web, and of course your peers who may have tried a similar process or join some networking forums/conferences. There are always people out there willing to share their experiences. Of course you are starting from a written recipe so the person who wrote it must have some level experience and will have tried out various combinations of ingredients already.
Gather your Ingredients / Resources
So you have your recipe of your framework for the Test Process – what next? Having read the recipe you now need to gather together your ingredients. These equate to your resources. What do you need to make your recipe a reality? Most recipes have a list of ‘staple’ ingredients which you probably already have in your cupboard but others you may have to go out and buy specially, although it is likely that you will
have some left over for the next time. This is the same as the test process in that you will already have some expertise within your team and maybe some process and procedure documentation or even some templates or test artefacts that you can reuse. If you do not have these then you will need to go out and “buy” or borrow them.
Ingredients in a Testing Sense
OK, so what would be your ingredients in a testing sense? This would be the resources that you need to do the testing. One of the key resources is the people who are going to be doing the testing. This is one of your staple ingredients. But like say flour, it may come in different types and each is used for different purposes, the same with your people they will have different experiences, competencies and skills. Sometimes you can substitute but at other times they are a critical ingredient. Let’s think about baking a cake. In order for the cake to rise you need to have some raising agent which you can get from Self Raising flour. If you use other, say Plain flour your cake may not rise unless you also use other raising agents such as baking powder. This is the same for people in your team. They have certain skills and competencies which you may need for a particular project. First think about what testing you are trying to conduct and who would make up your ideal team. For example, the skills and knowledge required to complete system testing are different from that of user acceptance testing. I would suggest that you conduct a skills audit and work out where you have the gaps which can be filled through training or on the job mentoring. OK, there will be some crossover after all in that they are all types of flour, so have some of the same characteristics.
Other resources that you may need are test environments, office space and other team members such as developers. They all have a role to play in putting together your cake. As with your testing staff you need to think about what resources you need and which suit your needs for the particular project you are working on or cake you are baking. You may not always be able to get the ideal mix, but as stated before there are ways to compensate or substitute.
Follow the Instructions in the Recipe
You now have your recipe (framework) and you have assembled your ingredients (resources) or at least know how to get them and when you are likely to need them. Now the fun starts, you need to follow the instructions in the recipe. In some instances this may just be a few lines, in others it may be a number of pages. My advice, if you are just starting out is to keep it simple. In fact my advice to everyone is to make every project as simple as possible. I know some projects may be highly complex, may involve large numbers of teams and span continents but that is no reason to make the instructions for the testing complex. I have reviewed many projects where teams have reams and reams of process and have become overwhelmed with the amount of process resulting in them misplacing the fundamentals of testing, not focusing on the risks they are trying to mitigate, and the project has failed, overrun or critical defects have been migrated to production. Remember the old saying ‘KISS’. Now you have your Test Strategy and how you are likely to implement it through the Test Plan.
Research and Practice Techniques
Most cooking involves some kind of technique in order to produce the finished product; this is also the case with testing. In fact to get the best results it may require a number of techniques. Some techniques are easier than others such as creaming the butter and sugar or Equivalence Partitioning and Boundary Value Analysis. Whilst others such as rubbing in the fat to flour for pastry, where the conditions also need to be correct, may be slightly more complex, as with say Orthogonal Arrays. The good news is practice makes perfect. When undertaking analysis and design of test conditions/cases, there is a whole toolkit of techniques, some of which have been mentioned above and others which are traditionally used by Business Analysts that can be used in the right situation. Go out there and research the techniques available and learn to use the techniques that give you what you are looking for, based on the risk profile of what you are testing and the time and resources that you have available.
Sometimes the use of a tool can be helpful. In the example above of creaming the butter and sugar it may be quicker and easier to use an electric whisk or food processor, but these do come with some overhead in that they need to be assembled correctly. If you are only making one cake they may be overkill and of course there is the washing up afterwards and who likes doing that.
This is the same with the use of any tool such as a Test Management tool or an Automation tool. They all need to be configured, there is some training involved if you are using them for the first time or even if you have used the tool before, but you are now using it in another environment or client. If you only have a few tests to run why not keep it simple and use an excel spreadsheet. However if you are trying to manage hundreds or even\ thousands a tool is a must. It is important to get the right tool at the right expense to suit the job you are doing. If you do not first have the planning and correct processes in place a tool is only going to get you into a mess much quicker. Also if you are using the wrong tool for the techniques you have chosen or the project environment you will also make your job less easy. So now you have everything that you need to bake your cake, so have a go. Remember that practice makes perfect.
Listen to Feedback and Act on it
Of course it is always advisable to get some feedback on your cake. Hopefully they liked the cake but you can always make improvements as your confidence and experience grows. Make sure that you listen to this feedback and act on it. Maybe you didn’t quite have all the correct ingredients and you substituted them. How did that work? Did it make it better or worse? If they liked it better make sure you make a note on the recipe so that when you do that again you have not lost the improvement and conversely if it didn’t go so well, record that too. Everyone should learn from their mistakes or better still the mistakes made by others! Once you get more experience you will know what is going to give you the best results for the situation you are in. Don’t be afraid to experiment and ask for help or suggestions from your team.
Once you have got the hang of basic recipes you can move on to the more complex recipes or projects. Always make sure that you keep the fundamentals in mind because they don’t change that much. We have mainly been talking about baking a cake, of which there are hundreds of different kinds in their own right all requiring different skills, but just think about the millions of other items that you can cook from sweet to savoury and hot to cold. Some are just blends or types of others whilst others may are quite unique. That just about sums up the projects that you could find yourself on, I have found that no one project is the same as another and your environment and team may change. Now you have the recipe for success go out there experiment and learn.