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.

No comments:

Post a Comment