A Dutch poet, Riekus Waskowsky, once wrote a poem that translates to English like this:
Writing poetry is like cooking,
You throw something in a pan
if you know how to cook.
In the same way you can compare poetry to cooking, you can compare testing to cooking.
If you don’t know how to cook, you need help getting started. You need to know what ingredients to use, and you need to know how to put them together. In short: a recipe.
But then, if you are becoming a more experienced cook, you realise that you need the recipe less and less. A the same time you start to improve on the recipe. For instance, imagine starting with the standard recipe for spaghetti Bolognese but you’ll find that some people do not like onions – you try it without them and it tastes good without them as well. Or you have vegetarians over for dinner and you replace the ground beef with vegetarian meat. As you become more and more experienced you start to improve the recipe and adapt it to specific situations.
If you are just starting with testing you will need a lot of help getting started as well - a step by step description of how to go through the testing process will help you there – for instance, the description as described in TMap NEXT. When you gain experience, you notice that a standard way of testing does not always fit the circumstances. You start to change and to adapt to specific situations.
As the field of testing is getting more mature a generic process for testing does not help anymore – most testers are aware of the generic solution. Testers need something else; something that can support them to be flexible in an agile world.
This is why in the new TMap Suite we introduced the building blocks. A Building block is a solution for a testing challenge. For instance, a test plan is a solution to describe the test approach to the stakeholders and building support for this approach.
Building blocks are similar to ingredients: an experienced cook can combine ingredients in several ways to fit the occasion for which he cooks. Within tmap.net site you can find several descriptions of different building blocks that can help you in the testing activities. They can be used in any way that suits your situation – they are there to support your specific situation. Look for instance at the building block test approaches – you can find a lot of useful information on how to apply coverage based test approaches in that Building block.
Mind you, this does not mean that ‘anything goes’ – in some situations a recipe can still be required, even for experienced cooks. Think of the Japanese dish Fugu – a dish that is prepared with extremely poisonous fish. Because of the extreme precaution a recipe is need to be followed precisely in this situation – you can imagine the same in situations where software is of life and death importance, for instance aviation or some health care appliances.
But this illustrates the point: every situation is different and requires its unique approach – the reason we introduced the building blocks in the new approach. The point is that everyone is responsible for creating the approach that fits their situation the best.
In a next blog I will give more information on how to use building blocks and how to build your own way of structured testing. In the mean time – start throwing some building blocks in a pan!
Thomas Veltman is test consultant