Tuesday, January 19, 2010

Be careful playing around while testing

As from the beginning, I'm not afraid of applications. I believe this is an attitude which can be healthy and useful when you are working in the software testing business. Over the years I learned that this type of behaviour can help to learn new applications very fast as recently applications are building on common wishes.

I'm not telling that every application is the same. Often there is some basic logic in systems. For example looking at the menu bar, almost every application has a menu which starts with the item: "File" (of course depending on the language.

When I start learning an application I check if the environment I'm want to explore is not a production environment. I also check if I can do some harm it can be restored. One of the things I look for is a person who owns the environment and is that person available.

If I'm sure I can do controlled harm I continue. Based on this attitude I increased my vision about applications, technology and so on. I also learned I have a lot to learn which make things excited. I investigate and played around and continue learning.
And if I do some harm, some people are happy as I was able to help them find some potential bugs. For me, I was happy that there was a person available to restore the system.

Over the years I also noticed that this behaviour most be used carefully. Lately I'm playing with virtual machines, vmware, IP addresses routing of web-servers etc using some open source tools. I found the owner of the system as that was very easy since I was the owner. this time I was not only investigating how the applications were working, I was also busy arrange the systems to make it work.

After a short while I managed to run two websites on different virtual machines approachable from the local network as well the public network. Until this moment I played just a bit around. As I noticed I made it work I continue installing all kinds of modules. Until I made the system crash. as it was getting late I re-installed the VM's and somehow I made some mistakes in my router. Changed some other config files and "renewed" restrictions. I ended up with only 1 machine working approachable from the public net. and both systems approachable from the local net, even using IP-addresses and correct ports.

Until now I am not able to make the second site approachable from the web. Somehow this is frustrating, only how long will it bother me. I learned quite a few things:
1. Investigate the systems under test as it were your own systems;
2. Make sure the owner is able to maintain (I wasn't for the newer technology);
3. Stop investigating when it is getting late, even if you are trained to remember the steps you have taken, it might be obvious that the basic actions are remembered and details forgotten at a certain point;
4. If you cannot find out how it works, start finding other resources where you can obtain information;
5. Continue to focus on other areas instead of that one who stopped you;
6. Be aware when you are changing technology / level of IT you are able to restore to a certain point or rebuild within limited time;
7. Check every time of the goal you are aiming at is worth the possible damage you can cause;
8. Ask yourselves what you have learned from the system and also about yourself;
9. The next day, think about the situation and ask if you should continue or stop.
10. And for fun: if you reached lesson 10, wonder if there are more lessons.

Sure there are more things I might have learned, Certainly I didn't wrote them all down. Of course I could have chosen for another approach. at this moment I learned more from the mistakes I made then from the manuals which were available. I managed to get known of the system within a short time instead of learning how to read a manual and perform the steps written there. The last one is often seems as testing, learning how to read the "test cases" and perform the written steps.

In both cases be careful, with playing around and with reading those manuals.


  1. I like your emphasis on learning. I think testing is all about learning!

  2. Thanks Lisa,
    It is because of people like you who trigger me to continue learning and find lessons in the things I do. They might be right, they might be wrong; at least it keeps me moving. That is the same I promote in project and towards colleagues: keep moving by listening and learning and avoid performing tricks.

  3. I think the concept of using virtual machines for testing is a fantastic one. The ability to just switch the system back to where it was 10 minutes ago gives the tester the confidence to go far further with their testing. When you're not testing in a virtual environment, even if it is a test system, software testers can be cautious about testing too hard because they know there might be hours of work just getting the system back into a usable state. Virtual environments resolve this brilliantly.

    In terms of remembering the steps you have taken, using video capture tools can be quite useful. These record all the steps you take as you use the application. When things go wrong you can just replay the steps in video format (and so can the developers). Saves a lot of time over trying to recreate issues in order to confirm the steps taken. Both virtual machines and video screen capture tools are software testing tools that every tester should be familiar with in my opinion.

    William Echlin

  4. Your post reminded me of my high-voltage, hardware testing days where we had to be aware of safety hazards and follow safety procedures. Maybe we need the equivalent for software testing so we don't wipe out databases, inadvertently shutdown systems, etc

  5. Hello Johnnm,
    perhaps in some organizations safety procedures might work. I suggest first to start with awareness and attitude. If these are on teh right place, procedures if needed have also a chance to succeed.