Sunday, August 23, 2009

Investigating details, a waste of time?

I had a great holiday this year. With my family we lived in a tent for 2 weeks. Every day was fun and gives me the opportunity to have some quality time with my family. Of course there were some moments which good be better. It was great because the big picture fits.

When sitting in my chair in front of the tent I had some time of thinking. Clearing my head of thoughts I filled them with news ideas. I needed something to do and made some pictures from close distance. This gave me the idea that although the pictures are nice it doesn't tell the whole story of my holiday. This made me wonder why we are focussing on details in testing. Why we are for example insist on unit tests. one of the reasons is to find issues sooner. Should this be done as in a huge system there might too much details. For example, if I shoot every detail of my holiday I had to spend more time on defining details and making the pictures instead of enjoying the holiday. Because of this I would miss a lot of joy.

Below you find some pictures I shoot. With these examples I will try to explain why focussing on details is not always the right way.

My son asked me to make a funny picture of his foot. As you see, you can notice some details. Only is this enough, at least you can check that there are no wounds on it. Ask your self, if there was a wound and it should be nursed, what sense would it make? Is it necessary for the whole picture? The grass behind the foot gives a indication that there is more space behind that foot. Currently the foot is the main object. If I would fade-out it would become part of a bigger picture. In that big picture a lot of other things are happening like children playing, parents sitting, tents standing, trees are growing. As a foot is is part of that bigger picture. I would ask you: If the foot has a wound, what influence would that wound have on the bigger picture? Should it be nursed? Was the time spend on this detail valuable for this bigger picture?

The grass-picture:
Looking behind the foot you see grass growing. When you are on a camping site you have lots of grass growing. When I would make pictures of occurring circumstances which it would certainly result in pictures with some pieces of grass. Is it necessary to investigate every time the details of it? With the picture below I could ask several questions about the colour, the structure. How is the single grass halm growing? Are there different types of grass, is the floor covered well? Are there some dangerous insects living over there? Are there laying pieces of glass lying there which might hurt the children? I wonder is it necessary to ask these questions every time to value the bigger picture? Should I spend in testing all the time effort to similar objects only on different places? Should all details be covered?

The wooden stick-pictures:
Even when there is a need for investigating details, is it done right? In the example below there would be a need to investigate the wooden stick. As you see, the wooden stick can be tested in similar ways on both pictures. Only there is a slight difference between the pictures. So when do you know when you are using the correct view? How can you tell from which angle you should test? I you focus only on the stick, what can you tell about the size? Perhaps it is not a stick, instead a tree. Due to the size it might hurt and have impact on my holiday. As you see, to check the size, you have to focus on other details than the stick. You have to look at the position of the stick with respect to its size and the environment. Focusing on the details of the stick will cost too much time and wrong conclusions might be drawn.

The ash-tray picture:
Sometimes the detailed image looks very dirty you hardly can continue watching at it. For instance the code is very sloppy code. You get distracted from the bigger picture. Perhaps this is a result which supports other issues. In the ash-tray you see a lot of dirt. It is unhealthy etc. Still it is functional. The ash is stored in some kind of a container and can do less harm when there is no wind. If the ash-tray was not there, the output of other habits would be stored else were in an uncontrolled environment. Is it necessary to check in detail how it looks like?

Beer-can picture:
This picture is one I like, it shows some important information from the beer-can in detail. Only I know it is a beer-can as I drank used it. You only see the top of it and can perform some test on it. How would you know if you are sufficient? When are details good enough? If these questions cannot be answered what sense does it make to perform detailed tests.

Sometimes the details look like a mess; you have to focus more to see what is in it. After focussing you will see objects which can lead to further testing. Would it make sense? The picture below is from a dinner we had, although it looks awful it tasted very good. And it was just to combination which made it taste good. The taste was the main object of the food;it should fulfil one of our needs: dinner and we should be able to eat it while it is hot. For those objectives it was not necessary to have each piece lying in a specific order.

In both pictures of the towels you see details about the structure. The first is made from a larger distance then the second one. How would you know that the detail you look at is sufficient? Wasn't it good enough to know that towels were available and trust the purpose of them, drying your hands? Looking at the towels you also see that the sun is shining. Sun was an important factor of success of our holiday. Do we need this picture the draw this conclusion or should I made another picture with the towels?

With this story I didn't want to tell that spending time at details is not useful or unnecessary. It should make you think if it is useful to look at details any time. Is it mandatory to perform unit tests? Of course people might claim that according the Boehm-law, found issues in an early stage is much cheaper to solve. You have to ask your selves every time, is it needed to find issues in those areas? I hope the examples given above made you think a bit about the meaning of details and focusing on details. Of course I could have made other pictures as well about the holiday and also there the question can be asked, is it detailed enough or not. It is this what should be done: keep asking this questions.

Tuesday, August 4, 2009

Magazine: MacroTesting

A new magazine is introduced related to software testing. It is called: Macro Testing.

It is free after subscribing to the site:
After subscription you are able to view the magazine online and also download every article separately. Based on a request mail I assume that the paper version is shipped to the company address.