"Some birds aren't meant to be caged, their feathers are just too bright"- Morgan Freeman, Shawshank Redemption. This blog is from one such bird who couldn't be caged by organizations who mandate scripted software testing. Pradeep Soundararajan welcomes you to this blog and wishes you a good time here and even otherwise.

Tuesday, August 28, 2007

A Tester's Personal Bug Diary & Notes

I was wondering if there is a way that I could spill some of my secrets of finding a lot of bugs in anything I test to other testers who read my blog. I think, I finally found a way in which, I also could tell, how some experts with whom I interact are fantastic bug hunters.

It's not a big deal and it is simple enough for you to follow, if you intend to be wonderful bug hunter.

I got this idea after I did testing for a new application that a company developed and claimed that is tested enough gave it to me to check for some bugs that they might have missed.

It was a very important session both for me and for the company. Another interesting thing for me is that the company had sent their developers on some work to my office and I had a chance to make them sit with me while I was testing. Whenever I found a bug, I said a story. Here is one such: "I have not come across a user who would want to hover the mouse all around his monitor to spot that button, which is an important action that he would want to do after entering so much data. Do you know of anyone who would like to do that?" ...

18 important bugs in 32 minutes of testing and I met the mission that I set for myself - Find important problems, quickly. I said to myself "Wow Pradeep" and then added to it, "How could I do it?"

Rapid Testing taught me to observe patterns, carefully and decode information from that can be of great help and yes it did come handy while I observed the pattern of my tests and bugs that I found. I must admit that 95% of the bugs I found in that session are from ideas that I had already developed testing other applications over the past and by registering the pattern in my brain.

And here is an important question I asked to myself: "Pradeep, can you do this wonderful job all time?"

Here is the answer: No! Not all time because it depends on a lot of different factors, out of which some I can control and some I can't.

The pattern and behavior of our own brain is something that I feel is tough to understand. It responds to the queries we put based on the situation in which it is at that phase. If I am upset over something and I put a query to it, it doesn't retrieve immediately or it might have a performance issue at that context but the wonderful brain needs something to rejuvenate.

What can that be?

"Hey Pradeep, you said you found a way to help testers become fantastic bug hunters and now you try answering something else?"

A tester's brain needs questions and ideas and to rejuvenate, motivate, push, think... it needs to look at your own work. No, my idea isn't to carry a video of all testing you do but a database, for sure.

What kind of a database could it be?

Presenting to you, A Tester's Personal Bug Diary & Notes ( right click, save and open )

I pull my ideas to find a lot of bugs from my database that currently resides on my brain. I am excited about the one that I created and I would be using it and someday, I can just filter the results based on the application I test and find many important problems in a few minutes. I am sure my clients would be willing to pay a lot of money as they see cost v/s value.

Off topic: I added a Copyright section to my blog that says: I, Pradeep Soundararajan, own the copyrights of all my writing in this blog. If you want to reproduce a part or any of my posts anywhere on the web provide a link to the blog or a specific post or if you want to reproduce it as a hard copy, please send an e-mail to pradeep.srajan@gmail.com .

Plagiarism (stealing of posts and not owing credits or claiming to be authors) of any of the content or ideas obtained from this blog would be reported to Cyber Crime Department and my tester friends network is wide enough that ones who plagiarize have lesser chance of not landing
in jail.

-- Pradeep Soundararajan - http://testertested.blogspot.com - +91-98451-76817 - pradeep.srajan@gmail.com

"Pradeep's first language is not English--his first language appears to be testing." -- Michael Bolton

Thursday, August 23, 2007

A good tester clears traps. Who are you?

There is no standard definition of a "good tester" to my knowledge but I am sure there are ways to say if I am doing a good testing. I self certify as a "good tester" and I *think* I am respected because my standards are higher and growing!

Years back, I fell into a lot of testing traps and I fall into fewer testing traps today. The traps that I fall in decides how bad my testing is. It certainly takes time to recover from the traps and hence I lose time which otherwise could have spent adding value to the project.

Customers aren't happy to pay for the time we spend to recover from the traps we fell into. There are times where we ourselves set traps (and jump into it) and there are also times where others or situations sets a trap. Whatever is the source of the trap, we fall into it and the biggest and dangerous of all traps is this: To not realize that we have fallen into a trap or to be reluctant of having fallen in a trap.

Here is an exercise that I worked on, which I think, helps in demonstrating the art of clearing traps in testing. I would call it : 100 questions in 20 minutes - The Art of clearing traps in testing [ PDF file : 104 kilobytes ]

Wishing you a good learning experience!

Do you think I had a specification or requirement document when I took up the exercise?

-- Pradeep Soundararajan - http://testertested.blogspot.com - +91-98451-76817 - pradeep.srajan@gmail.com

"Pradeep's first language is not English--his first language appears to be testing." -- Michael Bolton

Friday, August 17, 2007

Apology to my dearmost readers

I apologize to all my dear readers who shocked me with their comments when I announced that I wont be writing further in this blog because (some) Indian testers were plagiarizing (claiming themselves as authors and not owing credits to the author [ me] ) my posts and articles.

Each comment that I received played an important role in reconsidering my decision. Kindly excuse me for that. I am ashamed of my behavior and I understand that things are beyond my intuition because this is not my blog anymore but your blog and your blog will always be active as long as I am alive and I shall be alive for a long time because...

James Bach said, "You can't be killed, your destiny is to help testers"


-- Pradeep Soundararajan

Wednesday, August 08, 2007

How does Testing look from the eyes of Tester Tested?

Michael Bolton, gave me a writing exercise a month back ( to rewrite an article that I wrote without changing the meaning but changing the examples ) when I showed him a piece of my work that was published by Mahantesh Ashok Pattan, a fundoo test professional from Microsoft. Mahantesh currently heads a testing excellence team in Microsoft's Hyderabad campus. Mahantesh honored me when he asked if I could write an article for his upcoming software testing website. So here goes my exercise result ...

How does Testing look from the eyes of Tester Tested?
Version 2.0

Testing - from my eyes looks different, each day. Everyday, I ensure that I learn something new, observe something more carefully, listen to something more carefully, think deep on a topic that I choose to think, ask questions, read what others write about testing, teach testing to someone, learn a skill from someone, test, self critique my own testing, use Wikipedia/Google, practice the skills that I have developed yesterday, day before yesterday and what you might call as “past” and think about the future.

That doesn’t mean I am a workaholic! How can that be?

3 years back, I went to meet a friend in Jayanagar 4th block, Bangalore. While we we were having a walk the talk session, I noticed 2 child rag pickers running towards a food packet that was lying in a dust bin. A dog was running from the opposite direction, trying to grab the food packet before the 2 rag pickers could get it. The dog lost battle and the 2 rag pickers put their hands into the food packet. I was shocked witnessing this scene (without knowing that a bigger shock was waiting for me)

Today I can say, "The two rag pickers taught me a wonderful lesson that I can apply to testing, to better my testing"

Here is what happened: While the two rag pickers put their hands on the food packet, I shouted, "Drop that, I shall get you good food in a hotel" and their body language suggested to me that they would come with me to the hotel.

I started walking towards a hotel nearby to get them good hot food. Minutes before we reached the hotel, I turned back to see if the 2 guys are following and I noticed that one guy still held the food that he could hold picked from the food packet while the dog had a thankful look at me as the guys had dropped the food packet.

I turned to him and said, "Hey, I told I would get you good food but why aren't you throwing that junk food?"

He replied, "Well, what if the hotel is closed? what if you change your mind? what if you played a prank on us? I still have something to eat as compared to the other guy who doesn't have anything."

Poverty might have made him say that but I was shocked by his thinking capabilities. I am sure he has not had any formal education and everything that he learned is through his experiences in life and is also having the same challenge that we face, "survival of the fittest".

When this incident happened, I must admit that I didn't think of a testing lesson that I could learn from it but an year later when I sat relaxed in my chair after a good heavy meal and I thought about the rag picker incident, something that is related to testing struck me.

We testers lose control of things many times that might have been of great help to do a better testing. For instance, I have worked with testers who waited for the requirement documents to arrive although the product ( in some shape ) was in hand.

The boy who had a little food in his hand still had control of the situation and thought of possible situations in which he might have lost everything ( the food packet and the good hot food that I promised ) had he not done that act. Taking control of the situations ( no matter how hard it is ) is a skill that testers need to conciously practice.

An oracle ( not the database ) is a principle or mechanism in which we identify problems. If you learn and start using oracles consciously, I guess you might be in a position to take control of a situation which demands you to test without specifications or with less or poorly documented specifications.

Case 1: I hand over you my mobile phone and ask you to send an SMS and you see the application crashing for that operation; would you call it a bug/issue? (Although you don’t know what the requirement document for the mobile phone that I possess say)

Case 2: I hand over my mobile phone to you and ask you to open each application and exit it. In all applications you use the Right Soft Key to exit whereas one application demands you to exit using the Left Soft Key. Would you have something to say or ask?

In Case 1 and 2, we are using “oracles” of consistency and heuristics (fallible method of solving a problem) to find or discuss about an issue. Doesn’t that mean having diversified set of oracles, heuristics, and test design techniques can fetch great value for the testing you do?

We have a control over the software, platforms, our thoughts, ideas, questions we can ask, skills that we can put to practice or use when such a demanding situation arises, knowledge that we can bring in, use different heuristics and oracles and try reaching closer to the solution than to stay far away by saying, “Where is the spec, I can’t test without it”. You might want to make a note or mention a risk that a specific document that wasn’t available to you could have helped you go more close to what others might call as “great testing”.

Thats how I learned an important lesson from a rag picker!

Now, you could observe that I was actually supposed to have fun while being with my friend and not think about testing. I did have fun and at the same time I was conscious to see if I have missed an important learning that helped me better my testing. I usually don’t miss the fun nor the learning and hence I hardly get tired.

Here is another story, which I shall connect to the above one, in an interesting way.

A tester reporting to me introduced me to her husband by saying, “This is Pradeep, a passionate tester.” I love to be introduced that way since I am aware that I am one such.

Her husband immediately shot a question: “My friends who are into testing say that bringing testing to their life has caused some serious damages to their relationships, how has it been with you?”

Read my reply to that question, as careful as possible: “Thanks for asking me this question. I am probably one of the most passionate testers and I am sure that those who really know, what testing is, wouldn’t mess up his/her life with it. It appears to me that your friends who claim to know testing, don’t know that because had they known, they wouldn’t have got it into their personal lives”

I have enjoyed some great relationships with people. If you claim to be a good tester, it means testing has taught you not to get testing into relationships although testing happens between relationships and lives in a sub conscious level.

“Testing is questioning a product in order to evaluate it” – James Bach

Now the time for connecting two stories: The first story says, “There is always a thread about testing that I run in my mind while or after having fun or watching TV or chatting with friends” and the second story says, “If you really know what testing means, you wouldn’t bring it into your personal life”.

Connecting both of them I want to mean, I try to look for opportunities to learn from things that are happening around that I can apply for my testing activity for which I am paid and *not* to use testing as an approach to build/spoil relationships or systems that others are wanting to use after my usage. For instance, after withdrawing cash from an ATM, I do not intend to perform some quick tests, because it might stop the system and someone in emergency might have to go looking for another ATM.

You have been seeing testing from my eyes, time for you to see it from your own eyes, and I hope you see it in a better way than mine, teach me something and help me to see something different from your eyes. E-mail me at pradeep.srajan@gmail.com


If you have liked this article, you might want to read a different version of the same and here is the link. If you haven't liked this article, maybe you want to read it again :)

Pradeep Soundararajan - http://testertested.blogspot.com - +91-98451-76817 - pradeep.srajan@gmail.com

"Pradeep's first language is not English--his first language appears to be testing." -- Michael Bolton

Thursday, August 02, 2007

The story of a monk who sold bugs!

In January 2006, I wrote an interesting post in my blog that became one of the favorite e-mail forward among testers in India. To my disappointment, when I got the forward e-mail from a couple of people, I could see different names as authors in it and I never got the credit. I bet no one can make the kind of creative grammatical mistakes that I do and its always easy to spot my writing. Also as Michael Bolton pointed out in software-testing list, "Pradeep writes from heart".

Fearing those idiots who did not owe me credits I didn't want to write such stories that could make another interesting forward with a claim that they are the authors. I am no coward and most important of all, I don't want my blog readers miss such stories that I have in mind. So here is a story that I think that has gone weeks of thinking:

The story of a monk who sold bugs written by Pradeep Soundararajan [Idiots and fools can change it to their name if wanting to forward the story]

Once upon a time, not so long ago, a monk set out looking for a job in India that could help him earn enough to feed his family. Monk knocked the door of a few software companies and by God's grace, a company did consider him for an opening in testing that they had.

The monk was new to the software industry and had calculated his monthly salary by dividing the CTC ( or cost to company per annum ) by 12 and felt happy about it but when he received his first pay check, he did come to know that maths in software industry, especially when it comes to salary is different. It was not possible to run his family with the monthly pay check he received and hence had to find a way to earn more.

Looking out for another job means, taking time off the work, which also implies that he earns lesser for that month and might end up not getting an offer. So what is the way to work in the same company and yet earn more?

In conversation with other testers in the company during lunch, the monk heard a couple of testers lament about the development teams not fixing the bugs found by them. One tester said, "I bet a 100 rupees on each of these bugs" and other testers too started making similar statements. The monk who was listening to this got an idea and asked all these testers, "did you say 100 rupees to convince developers to fix a bug?" and then testers replied, "Oh yes!"

The monk went back to the monastry in search of his Guru to seek help to win the bet that was placed on each bug. The Guru had left for a world tour but had left a note to all the monks who came in search of him and the note said, "Your problems will be solved even if I am not here to help you and the one who can help you this time is yourself". After reading this the monk didn't get disappointed but thanked his Guru for leaving such a wonderful note.

The monk boarded a bus to head back to office and at the bus he handed over a 10 rupee note to purchase a ticket. The conductor said, "Sorry, I cant give you the ticket, the low battery condition in this ticket generator will make the ticket get stuck during the print out and its a very painful job to remove the paper out and fix the roll in the position and hence we are losing money and business because of this" and the monk said, "Thank you! I got the answer for a question that was bothering me".

The monk, on reaching office called for a meet with other testers and asked them to bring their bug report print outs. Everyone gave their bunch of reports and the monk started his homework.

He picked a bug that was logged with a low battery operation of an embedded product where the developers had commented "Users are not supposed to use the product in low battery". The monk went to the developer and narrated the incident that happened in bus and also added that, "I guess the government is planning to sue the company that provided that machine. As ours is a huge company where different products are developed, are you sure its not our company thats going to be sued?"

That question to a developer was enough for the monk to make his first 100 rupees. As days passed, the monk narrated a lot of real time stories to developers who had offered reluctance to fixing a lot of bugs assigned to them and the monk made a lot of money. As the stories from the monk became popular among the developers in the company, developers loved listening to monk' stories and the monk had a very high credibility among all teams.

The testers conducted a meet and discussed about the monk who made a lot of money through them and decided to cancel their bets thereafter and some testers said, "Ah! I can say better stories, what big deal? Let me convince the developers hereafter and I am not going to pay that already rich monk anymore"

The monk had not only caused a revolution within himself, he had also created an evolution, the way other testers wanted to work.

The monk decided to go to a new place looking for more and different kind of problems. He made a lot of money solving such problems and eventually became one of the richest tester of the world!

Lessons to learn from the story of a monk who sold bugs:
  • Everyone needs something convincing to take up a task, be it fixing a bug or executing scripts.
  • Developers need some real time scenarios, facts, customer information and information about customers knowledge, models in which the customer uses a product in a packaged form - story - to get convinced to fix bugs.
  • One who constantly thinks of solving a problem, will find the solution anywhere.
  • The most reliable person for help, is yourself.
  • Testers need to develop and practice a skill of story telling to get better at selling bugs.
  • Testing is not an activity of improving quality, its an activity of finding information and it is the product/development teams who fix those issues for improving the quality. In case you still want to think that testing is an activity of improving the quality, you might want to become a best bug seller to continue thinking of it.
  • Testing is not necessarily a computer science subject and its life science, social science, ... all science and all non science, too.
  • There is a traditional way of making money and as a tester if you take the traditional way, you make less with it.
  • Some bugs are born with self explanatory story but some aren't and testers need to build them.
  • More your sales figure ( selling bugs, I mean) higher is your credibility and as testers if you don't have credibility, you might not be able to boost your sales figures further.
  • Pradeep Soundararajan will keep writing such stories without fearing the people who try putting their name as authors and exposing themselves as idiots, fool.

-- Pradeep Soundararajan - http://testertested.blogspot.com - +91-98451-76817 - pradeep.srajan@gmail.com

"Pradeep's first language is not English--his first language appears to be testing." -- Michael Bolton