Sunday, July 27, 2008

Software testing and Astronomy

I think watching the stars can be compared to software testing. If you don't have any idea were to look at, if you don't have any jargon to use it just seems to be nice beautiful stars. The same is with systems, if you don't know were to look an application is just an application.

To proof or confirm quality of software applications organizations performs software test. To do this on a professional level, they acknowledge the need of software testers. Software testing is a profession and a science. So is studying the stars also: Astronomy.

Though it seems that these 2 sciences are the opposite: according to article on Wikipedia: Astronomy is one of the oldest sciences; software testing might belong to one of the newest sciences.

Imagine you sitting on a chair outside and the sky is clear and you look at the stars. To get a picture how the sky is you first try to get some reference point. I normaly start searching for the Great Bear.

The Great Bear is a pattern I well know and is from my point of view easy to recognize as there are not much stars to blur my vision. From that point I continue my exploration of the sky. As I know there are other patterns of stars I try to find them, though I'm not sure if I link the correct stars. Sometimes I got distracted by other beautiful things in the sky like: falling stars, satelites, planes or those rarely found UFO's.

Unfortunatly I'm not able to continue my exploration till the end as the Universum is too big, my time ends up as sometimes you need some sleep and of clourse from my chair I have only limited view of the Universum.

According to me: Astronomy can be compared to software testing. As there is too much to look at, you never can be complete, time is limited, without good specs and lesser knowledge it is hard to complete your queste though it can still be fun and there are a lots of things which can distract your attention.

To watch the application/system as watching the stars you need:
1. Location were to start: A postition which can be easily identified and which is close to other objects you want to look at;
2. Description/map how that position can be identified: like requirements or a symbol like the Great Bear;
3. Clear notation so no misunderstanding takes place: Some people call it Great Bear, others know the pattern as Big Dipper;
4. Direction were to continue: Continnue left of the Great Bear. In software testing this is part of the strategy;
5. Description of area: what part of the universum are you going to explore. In software testing this can be covered by test objects. Some times the objects are small enough and can be covered in one test case, other times you have multiple test cases;
6. Schedule: how much time and resources are available: Do you watch the sky alone or with others and in which period.
7. Time to start exploring: as watching the universe it mostly make sense to start when it is dark outside not cloudy. Same with software testing: Make sure that you are able to identify your starting point and there are more items to explore.
8. level of detail to watch: you can watch for patterns in the sky, they mostly have names and can be identified based on a map of the stars. Those stars itselve also have names. Are you looking for patterns, single stars or a combination of it?
9. Describe were to look at, make sure you don't get distracted by falling stars, other stars, planes etc. Still it is important that you are able to identify it as a falling star. In software testing it could be a bug in an area you should not focus on. Still it is important to identify that it was not a bug.
10. Be aware you are not able to cover everything, the universum is large, so are applications. Make sure you cover the right things
11. Keep track of what you are doing so you can continue the next night so you don't have to start again
12. If no map is available, perhaps you have other knowledge about the universum. As constellations are picked by humans also, it might be obvious you can combine a number of stars which looks like them. In this case make sure you made it acceptable that there is a risk you picked too much or too less stars. In Testing this can be identified as coverage.
13. geographic position can also help: sitting on a mountain you are closer to the stars, in a space shuttle you are have clearer vision. So is it with testing, looking at code, you have more detailed view of the items then when you look at a complete system.
14. ........

Of course there are more points which are similar to astronomy and software testing. Perhaps you, reader, can come up with more.

I think we have to keep in mind that the science Astronomy is still learning and exploring. We as testers also should no be affraid of learning new things and new approaches.

Monday, July 7, 2008

The power of Three

If you take some time and step aside from your daily activity you might have noticed that there is some kind of structure in the activities you are doing and also in the environment you’re in. If you have enough imagination you might come back every time on the number 3.

In old days of school I learned the words "Trias Politica". Doing some wiki-search learned me that the original thoughts about this come from Charles de Secondat, baron de Montesquieu he described in Montesquieu's tripartite system "division of political power among an executive, a legislature, and a judiciary. He based this model on the British constitutional system, in which he perceived a separation of powers among the monarch, Parliament, and the courts of law."

Of course you might come up with more examples which extend the number 3. When thinking you can come up with examples like these:
a. test manager - test coordinator - tester
b. time - money - quality
c. system under test - test environment - testware
d. requirement - functionality - test script
e. errors - faults - failures
f. development - testing - implementation
g. plan - do - check
h. junior - medior - senior
i. test preparation - test specification - test execution
j. ....

Looking at these items you will see that you might have to deal with it during your job. If you can only figure 2 items you might spend some time to identify the third item. If you come you come up with more items it might trigger you to separate those until you have those items which are in perspective to each other. To get this you might keep in mind which belongs to these: executive, legislature, judiciary.

I think this is important as these items will influence you daily work. They can support your activities or endanger the things you are doing. I think it is important to know who your “allies” are and who your “foes” are. I think it is important to know what you miss or perhaps were you made a "wrong" linkage to one of the 3 items of the "Trias Policita".

This might help you better to understand your work, your role and your activities. Based on this you can improve your selves and the process.

Of course there are more things to say about this topic. Perhaps you think it doesn't work in your situation. I like to hear about it and learn from you fellow testers.