Showing posts with label creative ideas. Show all posts
Showing posts with label creative ideas. Show all posts

Friday, June 06, 2008

Letter to myself

Dear Pradeep,

Greetings!

I have been with you all this while and shall continue to be with you. I am enjoying each moment you enjoy as a tester and also each moment that you don't enjoy as a tester. I am sorry for enjoying those moments which you think you haven't been enjoying. I am sure you'd be interested to know why and how I have been enjoying those moments that you haven't been.

First, let me list the thing that you haven't been enjoying:

  • Whenever and wherever you write about test automation, a handful of readers tend to think that you reject the idea of test automation and they write harsh e-mails to you.
  • Whenever and wherever you write about certification, the certified tester community attacks you over e-mails/phone calls that you and I are spoiling the craft.
  • Whenever and wherever you write about programming skill for testers, another handful readers think that you are suggesting testers not to learn programming.
  • Whenever and wherever you write about tools, most testers think you are referring to test automation tool.
  • Whenever and wherever you write about yourself or your experience, a set of people think you lack humility.
  • Whenever and wherever you write about exploratory testing as a skilled activity, a set of people think "no tester would do be able to do that".
  • Whenever and wherever you write about ideas to solve a problem than giving a one line answer, a set of people think you don't know how to solve it and is faking what you know.
  • Whenever and wherever you are writing about testing being an excellent thinking job, a few people think you are trying to paint a picture that does not exist.
  • Whenever and wherever you - do bad testing, fail in testing course like BBST, you feel intimidated by more skilled people than you, you feel bad about not having learned or practiced those things that helps you become a better tester, you fail to give enough respect to expert testers time, etc...
In this context, I'd like to remind you of a learning you had from Michael Bolton: There are some things under your control and there are other things that are not under your control. Taking advantage of things under your control, as a tester, is essential to clear traps and it might also lead to gaining more control. To take advantage of things under your control, you first should realize what are the things you control.

I also remember that you had made a note in your Moleskine of Saurav Ganguly's television interview where he was asked: How were you able to make a great comeback to the world cup cricket squad after being axed for poor performance? His answer: I didn't worry about things that are not under my control ( media critique, jokes on bad batting performance, e-mail forwards about my performance, people gossiping about it ) but focussed on things that are under my control ( Practice, skill enhancement, consistent batting record in Ranji trophy)

Similarly, you don't have a control over the thoughts of people thinking whatever they think after reading whatever you have written. You have a control over what you write and you have a control over the way you write it.

Your testing has been influenced by a lot of experts but not all have similar influence. They haven't seen great testing to appreciate the things you are sharing and I doubt if all those who witness it would be influenced by it because it's hard work and high skill demanding.
  • Not all testers want to do great testing
  • Not all testers know they are doing bad testing.
  • Not all testers want to know they are doing bad testing.
  • Not all testers want to know more about testing.
  • Not all testers know what skills to gain and practice.
  • Not all testers agree to be context driven.

Here are three questions ( like the Monty Python and the Holy grail bridge of death piece you enjoy )

1.Whom are you serving through your writing?

I am sure your ongoing struggle is in understanding that. Let me help you with what I think about whom you are serving - You are serving those testers who look for better thought process and those who enjoy the better thought process and those who think you have a better thought process.

2. Who asked you to serve them?

I asked you to do that!

3. Why haven't you been enjoying some moments that I have been?

You want all testers to do great testing although you know its not possible. Some people question your idea of "great testing" because they already have an idea of "great testing" and it conflicts with the idea you have. You are able to demonstrate that their idea of "great testing" lacks critical thought as your idea of "great testing".

By the way, your idea of "great testing", is not yours but of those people who have influenced you. You have just subscribe to those ideas and are contributing to it in different forms. I have occasionally witnessed you doing bad testing and I am sure I would see that in future, too. Do not forget that you are a human and your ideas are fallible. I know bad testing and bad thought process irritates you, even if you are the one who is doing it.

I would love to see you doing things that are under your control - learning, reading, writing, bettering your skills, helping those testers who enjoy the thought process that you enjoy, speaking, coaching and mentoring.

Your power to influence testers is limited. Limited to the ones who don't want to limit themselves. So do unlimited things under limited time that you and I will be here in this world.

I will be with you forever, enjoying everything you do from great things to not so great things. Anything you do is great to me.

I will write to you whenever I feel a need for it. This letter is personal, just between you and me.

"Here is a way to test if your mission on earth is complete - if you are alive, it isn't" -- Richard Bach

Yours truly,

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

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --

Sunday, March 30, 2008

Graphology, Music, Chess, Cooking, Drawing and becoming a better tester

I am observing that every passionate learning tester have tried doing things that are not testing and try to bring in some learnings to testing from doing them, to test better. For instance, Michael Bolton has tried cooking and theater and has benefited by it in testing, you could read his interview in which he mentions that. Michael Hunter (a.k.a The Braidy Tester) has recently blogged about Drawing and how it has been helping him to test and think about testing. Jonathon Kohl's Exploratory Testing-Music of Investigation is no exception. Bach brothers ( James Bach and Jon Bach) are active in Chess.com and you could read how playing Chess helps to test better by reading Jon Bach's post.

CAST 08 has its theme "Beyond the Boundaries: Interdisciplinary Approaches to Software Testing". Interdisciplinary approaches drawn from diversified branches of learning or practice, such that insights can be drawn upon and synthesized to influence a particular craft.

Anuj Magazine, an experienced tester from India has been working for quite sometime on Graphology and Software Testing.

I wanted aid his research and agreed to share my handwriting because his research is to identify the traits in successful testers. You can read the analysis of my handwriting by clicking on this link. I hope you'd enjoy reading the analysis and might be of help to Anuj if he approaches you.

I am sure there a lot of untold stories of what else other than testing has helped them to test better. I hope a lot of other testers come out with those stories that might benefit the community.

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

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --

Wednesday, February 20, 2008

The Bangalore Roti Curry! Now comes with free* testing lessons

Yesterday, I presented a guest lecture on "Questioning Specification and Requirements as a skilled tester" at Edista Testing's newly launched, really unique career program, which I think, can be titled as "Keep learning software testing and we'll keep supporting you to do that" as they intend to keep track of the progress of one's testing career, knowledge and skills even after the completion of the program or after the placement.

One hour after the guest lecture, I hit the treadmill at a gym nearby my home. I love pace walking over the treadmill. Once I get my rhythm , I start thinking about something that doesn't make me focus on how tired I get or how long I have been on a treadmill. Yesterday's treadmill thoughts were about questioning specification, requirement, process, policies, rules, guidelines, best practices...

The common thing about the above list is, "Someone says it, others follow it". Topic I chose to think on the treadmill was interesting enough to help me burn a lot more. I guess for people like me, thinking about following a requirement/rules/policies/process/best practices without questioning burns more calories than running heavy on a treadmill for 30 minutes.

After the workout, I dropped in at a nearby popular and reputed food joint for dinner at Bannerghatta Road, Bangalore.

I bought a token for 1 plate of Roti and curry ( Indian bread ) Cost: 16 rupees. After I got the token in hand, I realized it would not be sufficient and asked if I could get an extra Roti. I had to pay 10 rupees to buy an extra Roti token.

While eating one of the two Rotis, I realized that the curry isn't sufficient for the next Roti and I asked for more curry, I was asked to pay 10 rupees more for extra curry that is of same quantity provided to me the first time.

So here is the interesting thing:

One plate Roti and curry is: 16 rupees : [ 1 Roti + 1 set Curry ]
If I buy an extra Roti and Extra curry: that's 10 + 10 = 20 rupees
Total: 36 rupees
[ 2 * 1 Roti + 2 * 1 set Curry ]

If I buy two plate Roti and curry: 16 * 2 = 32 rupees [ 2 * 1 Roti + 2 * 1 set Curry ]

I went to the hotel supervisor and said, "I have never come across any hotel other than yours which has two different prices for the same quantity and item served if purchased in a different order. Is that intended?" and then explained to him the sequence in which I bought Roti and Curry. You might not believe this: He nor the other staff knew that they had been charging customers different rate for the same quantity they buy an item based on the order in which they buy things.

This certainly surprised their staff and I could witness an argument over the issue among other staff members. There was excitement over the issue and I enjoyed the argument between them.

Supervisor of the hotel then assured me that they would fix this issue after consulting the hotel manager and thanked me with a smile for bringing this up.

I was happy. As a tester, I questioned things and provided them information about their service with evidence. I handled it politely and helped them understand how illogical it would sound to people and how their credibility is at stake if they continue to do so.

If I hadn't questioned at the logic, or their menu, or their process, or their specification, I wouldn't have helped them understand something was seriously wrong - because they seem to be concerned to not do anything wrong as it could affect their reputation. They are into this business for at least 5 years and they hadn't realized what rule they set could conflict with their own menu rates.

When customers say "We want A,B, C, D, E, F", they are less aware that A could conflict with E unless we ( testers ) help them understand and that's our job. If we (great testers) don't question requirement/specification/process/rule/guideline/best practices, and the customer by himself finds B conflicts with D at a later stage, he might think of us as fools and maybe get our butts fired.

"If testers aren't questioning, they aren't testing. If testers aren't testing then they aren't testers anymore".

In the Roti Curry story above, I think there is another lesson hiding. As a customer of the hotel, I realized I wanted more, only when I got some bit of it - which means I didn't know how much I needed to buy till I saw some sample. If someone were to have collected my requirement/need, I would have stated something and changed it because I am not sure what I want.

There are a lot of customers who are not sure what they want and if we ( great testers ) are to follow a document that was prepared so early in the project before the customer could see something, we would never be doing what we should be doing. Testing is *not* satisfying a customer but providing information to help the management or customer take informed decisions. The information we provide could be bugs, assessment of risks, questions we have, answers we found...

Little does the hotel know that testing lessons are for free when people buy Roti and Curry.

Laugh (if you want): Research Doctors at National Health Research Institute are recommending to take a minute of every day, especially for those in software testing, to laugh out loud at those testers who don't question the specification/requirements/test scripts/test cases/process/best practices.

It is found through their research that the health condition and testing has had a significant improvement by doing so. Researchers also encourage laughing at yourself, if you are one among the testers who don't question.

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

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --

Monday, February 11, 2008

Educating customers on testing

Everyone has heard about testing and unfortunately everyone has heard about it from different sources that say different and contradicting things.

  • One of the customer I worked for thought - testing is about delivering bug free product - which, in my opinion and many other experts with whom I interact is an impractical idea about testing.
  • Another customer I worked for thought - testing is about delivering quality - which, again, is a bad idea.
  • Another customer thought - testing is about executing test cases and based on the test case pass/fail ratio decide to release - even if the test cases isn't helping testers catch bugs.
  • Another customer thought - testing is a job of repeating tests to compare build quality and take a decision to release a specific build to his/her customer.
  • Another customer thought - testing is meeting specification.
  • Another customer thought - testing is satisfying the customer.
Working with multiple customers is a huge challenge for test managers or testers like me and you. I have so far been repeating the word "customer" and whom do you think I am referring to?

I am referring to the manager we report to and the manager we report to is also our first customer. When testers quit their job and join another one, they never ask their customer (manager) what he/she thinks about testing. That's why some people feel they were performing good in their previous company or they are able to perform better in their recent organization - reason being - their idea of testing matched with that of their manager's idea.

If our idea of testing doesn't match with that of your customer's ( manager ), you and I seem to face a lot of trouble in meeting our customer's expectation and are unable to satisfy them.

Everyone, including you and me might be thinking that the idea we have towards testing is the right one. I have been realizing and teaching that there isn't THE RIGHT WAY to do something. Rapid Software Testing taught me cost v/s value and I took it very serious and I am practicing it.

All customers, irrespective of what definition they have towards testing look for cost v/s value. I am striving to deliver a fabulous value to my customers and I am facing a challenge since I realize what value means to me is different from what value means to my customer (manager).

That's why I was looking as a bad tester (despite finding a lot of bugs) to some of my managers in the past. They think the value they wanted to get out of me is - to execute thousands of scripts or test cases.

Unfortunately I wanted to add more value to the testing efforts which wasn't liked and was fired for attempting to do that. They weren't wrong - they just cleared a trap that they dug in when they hired me.

I learned - what I think as value might be a threat to someone else's idea of value and I value this learning I had about value.

Once I (and my team) found a lot of bugs, so much that there weren't as many bugs that the test case document had helped the team catch in the past. The questions from our customer started to focus on why we had a bad test case document and *not* "Why can't we do more of what you guys did?"

A definition, customer has towards "value" doesn't appear to change despite showing enough evidence. Its hard to continue working for such a customer but there is another dimension to think - money.

Some of those who attend my Exercises for a testers mind - A Rapid Software Testing Approach workshop say, "Well, this is great. I am excited to do testing this way but I suspect the problem is - I don't think my manager would be interested on any of these things I do"

I have had different replies to the above:
  • Stop thinking that your manager would not be interested. That's the first step.
  • Convince your manager to take this workshop.
  • Educate your manager on this.
  • Just do it and make your manager ask, "How are you doing these things?"
Here is a list that I suggest you to use, if you realize facing similar challenges: (I practice the same, too)
  • Educating your customer, starts with you.
  • Stop thinking that your first customer wouldn't be willing to see more value.
  • Provide evidence for him/her and ask her to critique the evidence you provide.
  • Request for a discussion about - What you think of value v/s What your first customer thinks of value.
  • If it fails the first time, provide repeated evidence and suddenly do things the way your first customer wants to do - see if your first customer comes back asking why suddenly things appear not so good.
  • If you have been successful educating your first customer, then motivate your first customer to educate his/her first customer.
BTW, what do you plan to educate your first customer on?

Here is a list of heuristics about educating your first customers:

  • Educate yourself before you educate your first customer.
  • Testing is questioning a product in order to evaluate it AND testers provide quality related information to stakeholders/management to help them take better informed decisions -- James Bach & Cem Kaner
  • 100 test cases might not help a tester catch 1000 bugs and if you want more bugs, exploratory testing ( with a mission/charter) is an important approach to be incorporated. Adding another 1000 test cases is not a solution.
  • Specification document is just one or the oracle that helps a tester find bugs. End users or your customers never use specification oracle to spot bugs and hence going beyond specification can help in finding more bugs.
  • Session Based Test Management is a way where Exploratory Testing can be tracked and managed more efficiently.
  • Spending less time on documentation that's going to end up wasteful is a nice way to get more time executing tests to find more bugs.
  • "If you are too bothered about repeatability of tests - then it is good to have a document of test ideas and *not* test cases that tends to have more ambiguity."
  • "Diversification of approaches and techniques helps testers find more and different bugs that otherwise might be caught by a customer."
  • Software testing books are not the *only* books that helps tester find bugs and hence the library should stock a lot of books on thinking, ideas, pattern, philosophy, psychology, humans, communication...
  • We didn't appear to find a bug because of one or all of these:
      • We did not have the skill.
      • Someone did not let us know when they put it.
      • A stakeholder asked us not to report it although we found it.
      • We didn't intend to find that.
      • We thought it is OK to not to find that, if it existed.
      • We were finding other important bugs thinking opportunity cost.
      • We didn't have the right oracle.
  • { You might want to try a lot more, provided some of the above works for you. Sometimes I am aware that I am going to fall into a trap but that's a way I choose to avoid bigger traps }
There might be a trap you may fall into. Some of your first customer's might not deserve/ might be reluctant / be egoistic - to such an education, sense it out smartly and stop educating him/her to get more time to educate yourself. An indication that you fell into a trap is when your first customer fires you.

+ A heuristic is a fallible method of solving a problem
++ An oracle is a principle or mechanism by which we (humans) identify problems.

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

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --


Monday, February 04, 2008

Schools of testing, Test experts, and Blood bath - Why do they exist?

In Test Republic, Jayapradeep Joithis posted a topic and discussion under the name "Shun the experts ... Long live the experts" and I replied to it with my thoughts. In this post, I publish, for the first time about Schools of testing and my ideas. In this post, I publish the same because I love to have it on my blog for some of you to comment or question me or Jayapradeep or share your thoughts about it. This is not my personal attack on Jayapradeep Joithis nor I know what school of thought he belongs to.

I have decided consciously to not conclude on things but keep learning about them - Schools of testing is just one of them. As days are passing the list of not to conclude is growing and the learning about them is growing as well. I am happy.

You could either keep track of the above given link or read the following ( a little edited version of the same ).

Here it goes:

First, before you read further, you must know and note that I am *NOT* a testing expert but I interact a lot with some of them, NOT because I love their association that helps me build my credibility or reputation BUT I enjoy the learning I have from them during every interaction.

Jayapradeep wrote "Software testing has become a Ba##$d science . Put the testing experts in a room and u see them going for each others throats in a jiffy."

Put politicians together in a room, you might notice the same.
Put a husband and wife in a room, you might notice the same
Put sales experts together in a room you might notice the same.
Put marketing experts in a room you might notice the same.
Put cricketing experts in a room you might notice the same.

OR

Watch programs like NDTV "We the people" where topics and experts vary from a lot of things happening in and around world are discussed and you *will* notice the same.

Why do you think it is a common behavior among experts?

That's nature! I am happy that you seem to be questioning the nature and I'd be happy if you are doing that for learning - more about the nature and yourself.

JJ wrote "Experts have all the rights to have differences of opinion(after all "when compromises continue REVOLUTION stops) but i always hope it could be done in a more dignified manner and with humility."

At least in Context Driven Community ( to which I associated myself without anyone influencing me to do that ), I have seen people respect each other a lot and have hot discussions. They appreciate each other and agree to disagree, at times. Sometimes one member doesn't want to agree to the other and I think that's perfectly okay because as you said, they have a right to do so.

I think within every school or community - there might be a lot of fight and betterment of ideas or learning as a resultant - that's good.

In my opinion humility is one of the toughest thing for someone to learn and practice. At least for me, I admit openly that I don't know how to express my humility although I think I have plenty of them. It might happen so that I might never be able to learn to communicate my humility. I DONT want to be humble to those who are spoiling the craft and that's when my inability to express my humility is of great help.

We always fight, you always fight - that's nature. You fought your way among several candidates during an interview to get a job. Fighting is our nature. The mightiest, smartest, timely, blessed, and the luckiest ( if it exists ) wins. All of us win at some and lose at the other. When we lose, others might be winning. Sometimes, we lose and win at the same instant.

JJ wrote, "I am no expert nor have insights into what goes on in their minds but what i have seen is that the same experts who speak about creativity , freedom of expression et.c. behave in the most vile manner when their beliefs are questioned."

If you are not the Prime Minister of India, you might not be pleased when he/she announces a war against a neighboring country. You never know why the person took such a decision or does so during a situation. If you want to know that - the only way I can think of is - for you to become a Prime Minister.

There are some test experts who have dedicated their life to better the craft and the rest to make money as testing is offering a huge opportunity to make money.

Betterment of craft means - disproving and taking off those so called experts who are making money and spoiling the craft.

Not that some experts don't bother about money but they wouldn't bother about money sacrificing the betterment of the craft. Money moves everyone and everything that is under "business" clause.

JJ wrote, "Some have become so confrontationist to any opposing views that their tone changes to a jingoistic one, not remembering at many times that there is a fine line between 'proving your point' and megalomania . There is a literally a a blood bath on every forum,group , blog , conference where these experts interact.

They are just being themselves and you and I need not worry about that as long as they offer insightful ideas helping us become better in the craft ( if we want to become )

JJ wrote, "People who oppose semantics and terminology's saying they make u narrow minded go on to propagate their own definitions and terminology's."

Here is a definition of testing that I heard: Testing is a process of making a product bug free!

Really?

By finding bugs - you are not making the product bug free. It is only when ALL bugs can be found and ALL bugs can be fixed without introducing ANY new bugs you might be getting close to it. It is a foolish statement lurking among many testers.

Here is another definition of testing: Testing is questioning a product in order to evaluate it -- James Bach

That's insightful and helps most of us do better as it seems to be insightful that we need to question and provide information to the management take informed decisions. That's all. Achievable and insightful, isn't it?

It is insightful because testers who have subscribed to this definition have done a lot better testing than the ones with the previous definition and are also open to scrutiny about their work. Tell me a test that you did, which is not a question that you asked to the product or environment you tested!

Terminologies and definitions should help people think and not stop them or spoil their thought process or leads them to infinity or impractical ideas.

JJ wrote, "they try to split the community into schools of thought(read the very interesting article by Bret on schools of testing : http://www.pnsqc.org/files/FourSchoolsofSoftwareTesting.pdf ).

Were you ever forced to join one of them?
As long as it doesn't spoil any of your learning or betterment opportunities, do not worry about them.

JJ wrote, "In this game of one upmanship they manage to confuse the bystanders and force them to align themselves to their school of thought. At many times we see its the commercial interests being propagated camouflaged as knowledge sharing.

You can't be confused about something unless you hear or know it. If you came to know about it, it is BECAUSE you were curious to know that. Your CURIOSITY lead to YOUR confusion and NOT they confused you. You could be clear before you read anything that - I am not going to be biased or worry about anything I read or draw conclusions on it the moment I finish reading an article. I am going to experiment and learn from it.

JJ wrote, "As a bystander and a student of testing this has become repulsive."

A true student of testing looks at anything relevant or irrelevant as a learning opportunity.

JJ wrote, "Shouldn't the EXPERTS(respected and self professed) be trying to confluence their ideas?
Do we need to split up into schools of thought?
Do we need to fight over the semantics?


Did anyone, till date, when you approached them, ask you: What school of testing are you from? or Were you deprived of anything because you belonged to one school and not the other?

JJ wrote, "If we look back into history a classical example might come from the schools of thought of the Indian Philosophy, where the schools( Sankhya, Yoga ,Nyaya , Vaisheshika ,Purva Mimamsa, Vedanta) having divergent views still existed besides each other in harmony. They seen as complementary and supplementary to each other and was not an either or not situation. We had the austerism of Mahavira and crass materialism of charvaka having healthy dialogue with each other and co-existing."

I think there exists nothing called a healthy dialogue but I think there exists and existed people who know to make the conversation healthy and there exists people who understand what other person means by healthy.

What do you mean by co-exist?

We co-exist with aliens ( who might be in Mars ) in the same galaxy. We breathe oxygen and they might be breathing nitrogen. I think I made a correct statement because that's my understanding of "co-exist". You might think I made an incorrect statement because it conflicts with your definition of "co-exist".

The four schools of testing do co-exist and I know of many people who are friends with people of other school of thought.

JJ wrote, "Long live the EXPERTS........."

Yes, Let those people, who are experts (or not) and work for betterment of the craft ( with money as secondary interest ) live long or even if they live short let them contribute as much as possible for the craft.

I have seen Context Driven Testing school or community members spoiling the craft for those who want to make money (sacrificing the betterment of the craft) through the ideas that CDT members think of it as a bad idea and a hinder to the betterment of the craft. I think its good to spoil the craft for such people because I too want to see the craft get better and money is secondary. Secondary means - it exists!

The fight is for the ownership of the craft.

Once again, fight is not a bad thing. We all came to existence fighting against one million sperms!

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

"The test doesn't find the bug. A human finds the bug, and the test plays a role in helping the human find it." --

Friday, November 02, 2007

E go U go I go of U and I


I have no control over your thought process to restrict you to not read the title as Ego You Go and I go of testers.

Here is what I think about my ego:

  • I am egoistic but not at contexts and situations where the ego could kill the possibility of me doing a good testing.
  • I am not egoistic because I am so curious that I don't care from whom I learn something that can help me do a good testing.

Which of the above two statements could be true in your case, too?

The passion to become good at the craft we are living in makes us better person, too, and the evidence is from my incomplete research on ego and testers.

In my experience, so far, I have had an opportunity to work with testers from various backgrounds (education, culture, native place, language, the way they were brought up ...) , experience ( in terms of number of years , non testing field experience ), skills ( whatever they think their skills are, whatever I think their skills are), knowledge (domain, craft specific ), interests ( curious to explore testing or curious to explore something else), passion (testing or money or both [ certification - if you like it] ) ... and infer that one of the most common thing amidst this diversity is ego.

People (who think they don't have ego) think those who have ego are the ones who are bad professionals. I ( who is sure that I have ego ) think it is not that bad for people to be egoistic as long as they achieve the mission they have in hand without spoiling opportunities to succeed in future missions with the same team.

I think I have not anything different and I am happy to have identified it.

I am going to discuss 3 cases ( the most common and uncommon ones, in my opinion ) that can help me ( or not help you) to understand what I inferred from what I witnessed, experienced, heard and saw.

Case 1: From Lead to Seed

A senior tester (by designation) got promoted to a Test Lead and thought he'd be no longer expected to execute tests. He is moved to a new product based on a requirement of a Test Lead and finds himself in tough situations where people who report to him aren't respecting his views. What he fails to identify is the need to build credibility by executing tests and understanding the product.

The ego of being a test lead and yet not respected by people who report to him ends up in clashes about ideas to proceed with testing. The manager identifies that it would be a good idea for him to learn the product, execute tests for a while, understand the testing complexity and challenges and then play a role of a Test Lead ( as per what he thinks ) ends up in he taking up test execution. During the process of test execution, the ego is still alive and he is hesitant to ask questions that he thinks his team members would laugh at and finally ends up in not knowing the product well and failing to execute tests in a manner that someone thought it as a right way.

On the other side, the team members who report to him do have an ego that built up during the process of knowing that their team lead knows little about what they are doing.

So the Lead and the team members never get a chance to respect each other. Not to forget is a point that there are similar ego issues between the team members.

I guess that leads to bad testing!

Case 2: Buddy testing and then Bloody testing

A company enjoyed having 2 senior testers (senior by designation and lets call them Shyam and Jagan) who were passionate about testing and their work competed against each other's work output and was a healthy competition, of course. Shyam and Jagan worked on the same product but for different customers. Both of them were known to be good at meeting the mission in hand and the important point to note is: both were thick good friends for over 3 years.

Unfortunately, one fine day Shyam's work is applauded by the management. This act of appreciation hit Jagan hard enough to start building up an ego with Shyam. Poor Shyam, not being aware of this ego that Jagan is building cracks jokes ( as both used to ) on Jagan's work and this hits him more hard.

Shyam who cared for his friend Jagan was left disappointed when he did come to know about the multi storied ego that was building. Shyam eventually found it tough to continue working as he too started building his own version of ego. The ego got translated into an unhealthy competition that ended Jagan to look out for a job where he feels safe to work without such unhealthy competition. Shyam and Jagan still thought alike as they used to and both ended up looking for a job without each other's knowledge.

Both quit the company and moved to different ones more or less at the same time without realizing. Here comes the crux of the story: Shyam and Jagan never felt happy with their work thereafter despite working away from each other because what motivated them to succeed in the past was the healthy competition.

I guess that lead to bad testing - for Shyam, Jagan and to the company they earlier worked together.


All it takes is one second...

It takes just one second to feel egoistic and not do something that you too are aware should be done but that one second might result in making you and others around you as bad testers.

It takes one second for those who stole my posts to admit they stole but makes them feel better forever that I appreciated them.

It takes one second to feel egoistic ....
Case 3: From Manager to Damager

Wait a second, let me write the Case 3 a little later because, I got a mail from a team member who thinks he is too smart because he was appreciated for finding a lot of bugs and is a better tester than me. He is challenging my decision. How can he do that when he is reporting to me? I am going to fire him right away and shall update this post later.


-- 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

Some good testers don't blog and so I think the testing community is unfortunate that they have limited opportunities to learn from them. Some bad testers steal others post and so I think the testing community is unfortunate to fear the fact of why some good testers don't blog. Willingness to learn is a skill that a tester *must* possess in my opinion - which also helps in having a lack of ego. I guess that's how good testing begins.

Monday, September 10, 2007

Mother Nature - A teacher of all good testers

When I started to test, I wasn't aware that I entered a fantastic field that demands me to look at other professions to do a good job as a tester. A little later I realized that people in a specific profession have lots to learn from other professions to perform better at what they are doing.

Everyone, in my opinion does that but the question is: How many do it consciously?

Don't worry, you aren't left behind and here is your opportunity to unlock what you could learn from other professions. Here is an example of how Michael Bolton and Ben Simo talked about "How doctors think and the learning of a tester from that thought process" . During Michael's previous visit to India, we did talk about how his experience of cooking and theater that helped him in his testing and I was very glad to hear those stories.

I intend to pull out my notes of how people in different professions think that can help testers in their testing activity:


Doctors


I had mentioned this earlier and I would like to re-iterate. Doctors ask a lot of questions as a part of treating you. When a patient says "I am having a back pain", I have observed doctors asking questions about the hand and legs and they carefully observe emotions of the patient when they try to press the back, different places in leg and hands.

Software and human body are very complex systems. The "back pain" might be a symptom of a bigger problem and hence doctors ask questions about other parts of the body. So, as a tester if I encounter a bug, I get to think that this bug might be a symptom of another big bug that is hiding and ask questions that help me figure out the big bug.

When a patient says, "stomach ache", I have observed doctors prescribe blood tests and various other tests to take an informed decision. The management needs as good information as possible to take better informed decisions and testers need to supply the information. By prescribing blood and other tests, the doctors are looking for coverage and so, we testers need to look for coverage than to find xxxxxx number of functionality bugs (unless that is the mission).

When a patient is in a critical state and needs to be operated, there are diversified set of doctors who are in the operation theater. For instance, an Anesthesia Specialist, General Surgeon, Neuro Surgeon, Heart Specialist... and NOT all General Surgeons or all Neuro Surgeons do the job. That is a fantastic example of diversity and value addition to the operation's success. A testing team needs to be diversified. Not all testers who know to run tools like QTP, WR, LR ( toolsmith's I mean ) can add value to the project and successfully achieve the mission. Look at my FAQ's for more information on diversity of testing teams and its benefits.


The Indian cobbler ( I don't know of any other country cobblers)


An expensive shoe that we purchase might have been manufactured by a top company with state of the art machines but when it is torn or needs a fix for the sole, we do not go the manufacturing unit but to a cobbler nearby.

The Indian cobbler is a pretty simple guy. He uses the tools that are not state of the art but yet does a fantastic job whenever I or my friends have gone to him to get a problem fixed. He doesn't intend to use a tool because other cobblers think it is state of the art because it doesn't suit his context. Many companies buy tools from vendors who market it as state of the art, and later discover that it isn't suiting their context well but force the testers to use the tool to see some value of the money spent on it and lose the value that could have actually been delivered (if the tools were not put to use).

There are some cobblers who move on road and they dont carry tools that are hard to carry or need electricity to operate and yet complete the mission assigned to them. They do a manual activity and harness the potential in the tools that they carry to maximum extent. No testing is completely manual and no testing is completely automated. Those who think they are testing something completely manual are as much wrong as those who think their testing is completely automated. Those testers who know to carry the tools that suit their context are smarter and will add great value as compared to those testers who carry tools with them because someone said "That's the future".


Police ( What movies has shown me)


Catching criminals is as interesting and challenging as catching bugs. Police look for clues during investigation of a crime, to nab or zero down on criminals. They do not just look at obvious places but non obvious places, too. For instance an investigator looks at a dustbin while investigating a murder, finds a cigar in the dustbin and draws inferences about the criminal. Testers usually do not look at clues that surround a crash or hang and miss the actual criminal that many a times is caught by the end user. Log files is one such clue that has helped me nab several other criminals.

Police personnel ask the same question in multiple ways to the same person at different situations and look for consistency with the answer. Anything inconsistent helps them to get fishy and are one step closer to catching the criminal. If a test passes that doesn't mean it really is a "pass". The same test might fail when executed in a different time frame, different input, different tester executing it, different PC, different network, different hardware... If you observe carefully policemen are using consistency oracles to find the culprit.

I am thrilled that I am looking and learning from many other professions, too and I am glad that I am a software tester who is gifted to see the beauty of testing. I must thank God for his blessings. Not all testers are gifted but they can become one such when they start learning from all possible situations, people, things, objects, happening...

-- -- -- -- -- -- --

When you set your mission to become a wonderful tester, the nature will take care of your learning and all you need to do it to keep all your senses wide open. Mother Nature is the best teacher and you wont realize that by reading this sentence unless you experience it.

James Bach, today's leading test expert and testing legend, whose work has affected the entire testing community, is a strong example of someone who forced Mother Nature to teach him by becoming a self drop out of school during 8th grade ( or Standard ). His relationship and thought process is a gift that Mother Nature bestowed on me when I cried to Mother Nature seeking help for learning to test better.

So, set your mission and cry aloud, SHE will help you. SHE would test your passion under turbulent situations but once you pass HER test, you will get more tests and will start learning and enjoying the experience.


Reminder: Registration for the 500 rupees half day testing mania, is still open, so book your seats to experience such wonderful stuff. For details look at the left hand links section of this blog or simply link click maadi.

Tuesday, July 24, 2007

Let the context drive and yet you be the chauffer

_ marketing starts _

My next public workshop on testing skills is this weekend ( 28th July 2007 ) and I am getting excited. Many testers who got in touch with me over the past are saying, "I will surely attend the next one" and they said this last time, too. I have been asking a question to myself, "Who would attend this workshop then?"

That's funny and I enjoy asking such questions to myself. In case, you are not the one who says, "next workshop", here are the details!

_ marketing ends _

Some testers have liked my blog so much that they have certain expectations from my blog and when I talk about myself in my blog, they get so irritated and ask me over chat, "I come here to read and learn something about testing that can help me do better testing, I don't want to read about you and what you did and all your marketing stuff".

You don't get to see a live cricket match or a Formula 1 race without you being forced to watch the advertisements in between. Anything that you want to keep watching is a business opportunity to someone and they place advertisements and that's marketing for them. When I write about myself, its important for you as my reader to understand that it's one of the way I look for self inspiration whenever I am down. If you want to read something fabulous in this blog, I hope you allow me to read something that I want to read to get inspired and write a post that appears to be fabulous to you.

OK, this post isn't a debate about the above topic but I am sure, I did a mistake in setting the wrong context for what I want to say under the topic "Let the context drive and yet you be the chauffer"

Believe me, I wanted to set a wrong context and that was intentional. Yesterday night, a tester/cum test manager Rahul Mirakhur, the Apple Macintosh Geek you can bet on, had a status "context matters..." and the idea of this post came alive. So here is a context...

When a police man is informed over radio about an accident that took place and he rushes to the scene and he discovers two cars damaged and appears to be a head to head collision. What would your first question be to the people who are fighting with each other if you were the policeman?

All the policemen I have seen try collecting information about the context and try to make a judgment or take an action based on the context information he has.

What if you were one among the two, fighting against an idiot who rammed his car head to head and you discover that he doesn't posses a license to drive the car, yet the policeman arrests you without asking any questions?

Would you not be terribly disappointed?

If you would be then I think you value context a lot.

Now time for you to answer my question: Why does many testers, leads and manager not think about the context information they need to collect ( more than what they think they have collected ) to take a better decision, especially when they have been going wrong. ( If they don't recognize that they have been going wrong, is a bigger problem, of course)

The policeman who arrested you, followed a best practice that states: A guy in an accident scene who is shouting on top of mouth is the culprit! Are you OK with such best practices?

As rupee is gaining Indian business leaders are planning to make all of us work 9 hours a day for 6 days and no more Saturday off. I thought growing economy means things would be more smooth :) [ Refer to this article ]

Why cant we fight back saying, "Hey we will do our work in a more skilled fashion and that's what would result in cost v/s value to our customers in North America and Europe and it's a win-win situation"

Ha ha! I am sure we can never say that because Best Practices drive us. A person who has worked with company X for a long time and implemented a process or style of doing things is hired by Company Y and he tries the same in Company Y but fails. Why?

There are good practices in Context but there aren't best practices!

Ramit Manohar, one of my favorite thinkers on testing from India reports to Vipul Kocher, the President of Indian Testing Board and the Co-Founder of Pure Testing. If I were to practice humility, it has to be looking at Vipul Kocher.


Ramit, during our meet, started saying about a question he often asks in interviews that he claims to challenge testers. I interrupted him and said, "Ok, let's assume that you are interviewing me and why not I try taking up the challenge?"

So, here is the question he asked me: You are riding a bicycle. A pedal comes out. What would you do?

This isn't a testing question! [ that was how most of the testers whom he interviewed reacted because they didn't think of collecting context information about why someone is asking such a question in an interview supposed to hire a tester and ended the conversation there]

You might want to know how a context driven thinker and a skilled tester: clears traps, solves problems, gains situational awareness, learns new things, asks questions, makes a suggestion, proposes solutions, a lot more ...

Here it goes...


What aspect of my thinking would you want to see by making me answer this question?
Flow of idea, lateral thinking, situational awareness, collecting context information ...

Whom are you referring to when you say, "you"?
It's you Pradeep!

Why would I be riding a bicycle when I have a bike and a car?
You are in a race

What do you mean by a race?
Something like Tour De France

Where am I riding a bicycle?
On the busy streets of Bangalore

What do you mean by a bicycle and bicycle pedal? ( I asked him to look out of the window from the coffee shop and showed him what bicycle means to him and the pedal that I am aware of as one was parked outside)
Yeah! That's similar to the one that I have in mind

What speed am I traveling in and are there brakes that appear to work when applied?
Ha ha! How fast can you travel in busy streets of Bangalore? ( I accept, being in Bangalore, that was a stupid question :P ) The brakes are working fine.

Is someone chasing me?
There are people trying to overtake you to win the race.

Does this mean, I am leading the race?
No

Is there something important I missed asking or might add value to me taking a decision?
Yes, there is a bicycle repair shop nearby!

How important is winning the race to me?
You should say that!

Can I assume that I am not bothered to win the race?
There is a huge prize money for the winner.

I dont want to lose that. However, what is it for a person not finishing the race?
He will be shot!

Wait a minute... Are you interviewing me when I stopped the bicycle after the pedal came out? [ the smartest question, in my opinion]
Ah! No

How far is the finish line from the place where the pedal came off?
Not too far!


Is the pedal made of Gold or has a value bigger than the prize money?
Ha ha! I don't think so.

Let me stop it here (although I think you should meet me sometime and listen to the entire conversation between me and Ramit which might excite you, too)

I shall de-brief what might have happened if context related information was not collected, taking the above exercise.

  • I might have been shot, if I had not known that the person finishing last in the race would be shot.
  • I might have tried too hard to win the race for the prize money whose value is lesser than the pedal that came out.
  • A "bicycle" might be a brand name of a car where there was a nasty pedal fitting that restricted the performance of the car. Had I assumed it to be the bicycle I know, I would have not cleared the trap that Ramit *might* have set.
  • Had I not asked an important question, "Is there something that I missed to ask?", I would not have found that there was a bicycle shop nearby that might help me in taking better decisions.
  • Had I not discovered the speed at which I am traveling and the brakes not working, I might have taken a different decision, all together.
Ramit was so excited and enthused about the conversation we had that he keeps mentioning about me in all the corporate training he does. I am grateful to him, not because he mentions my name everywhere but for giving me an opportunity to practice my skills.

Every question might lead to an answer or to another question, and every answer or question that raises from a question, would lead to asking a potential question that discovers more information about the context.

Why would you want to go to a doctor who never asks any questions nor collects any context information to a patient and starts operating the moment patient says, "head ache"?

If you want the doctors who treat you to be context driven but you are hesitant to be context driven as a tester, you better try not feeling guilty about it!


-- 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

Monday, July 16, 2007

Why is testing monotonous? The unspoken truth!

My previous post ( Becoming a developer, who is less disturbed by a tester [ in 3 pages ] ) gave me a little surprise when a tester came back saying, "Hey you are helping developers, doesn't that make testers job difficult?"

Another surprise today: 2 testers who were online, pinged me to say that they were doing a monotonous job. When I questioned them I was excited with the work that they had in their hand.

Take a look at one of the conversation:

tester_a: upgrade testing is awfully boring. Any views on this?
pradeep: upgrade testing, what do you mean by that?
tester_a: testing upgrade of a product from older to latest version
pradeep: wow! It's exciting.
tester_a: what would make it exciting?
pradeep: Thinking of what kind of update issues, the product or users might face.
tester_a: there are no issues. it either works or doesn’t. its not scenario specific either and with around 45 platforms to support and 6 methods of upgrade ...its monotonously boring
pradeep: ok, let me give you a list of tests that I might want to test, if I am asked to find important problems quickly.

*What bores a tester always interests the user*.

tester_a: ahan!

pradeep:

1. What if the product while it's getting updated, is hooked off the network?
2. What if an update file is corrupted?
3. What if an update file is infected with virus?
4. What if an update file for a specific platform is fed to another platform?
5. What if your reboot the computers while it's updated?
6. What if the server is reset while a client is updating?
7. What if an application on a client interrupts the update?
8. What if an upgrade fails? What more problems could be hidden with it?
9. What if an auto update and a manual update is attempted in parallel?
10. What if software is attempted to uninstall when an update to it is happening?
11. What if more than one method of upgrade is initiated from the same client with different instances of the application?
12. What if there is an upgrade of the platform happening while the product update occurs?
13. What if the resources required for the upgrade platform are squeezed?
14. What if the update file has wrong information in it?
15. What if the file date is changed to a date than the current version yet it has the latest update?

....

Now, doesn't that sound creative work?

tester_a: doing it on 45 platforms with 7 different ways = 45*7 might not be interesting!!!

a single platform ? Yes sounds "WOW" :)

pradeep: well, let me explain, How I would strategize...

Perform tests on one platform, first. Note the important problems. Look for similar problems on other 2 platforms. If they are serious problems - report and disqualify the build/release/update/whatever?

I would also negotiate with my manager for another resource or two who could help in getting this done effectively by saying, "I fear that any tester to my knowledge might find it tough to do all of that"

If you have been given time, its better you do it with passion.

*The company never thinks it is doing a monotonous job of paying you salary , every month!*

tester_a: lol that was a good reason :) thanks buddy ! You are great help at time like this :)
pradeep: Here is something that you might want to think: Soldiers are asked to work very hard even when there is no war. If they think it's monotonous and quit the job, we die at enemy's hands. There is a soldier guarding you somewhere, far away, and you better not call anything monotonous.
tester_a: hmmm
pradeep: Isn't that true?
tester_a: it’s a debatable topic
pradeep: ok, I suggest you debate with yourself on that.

_ End of chat excerpt _

Why is testing monotonous? The unspoken truth!
  1. It's made so by testers who *might* not be able to think or be creative.
  2. It's made so by testers who *might* be lazy to run those tests.
  3. It's made so by testers who *might* have not learned something that they could apply to the work that they do, to see a different result.
  4. It's made so by testers who *might* lack passion to test.
  5. It's made so by testers who *might* want to jump to development and needed a reason that others could accept.
  6. It's made so by testers who *might* not want to try any new test other than the script that they have been given.
  7. It's made so by testers who *might* want a reason to jump to another job.
  8. It's made so by testers who *might* lack motivation to test.
  9. It's made so by people who *might* be claiming themselves as testers but aren't.
  10. It's made so by testers who *might* not have skills to find bugs.
  11. It's made so by testers who *might* claim to know testing after knowing definitions and terminologies without knowing how to apply or practice them?
  12. It's made so by testers who are promoted as a test lead and *might* be happy thinking, "hurrah, no more test execution" and go completely wrong with their career in testing for thinking that.
  13. It's made so by test managers who *might* not want to allocate more resource for a huge task and yet get it done with a few testers sacrificing the quality and value.
  14. It's made so by testers who *might* want to do exploratory testing but are stuck in scripted approach.
  15. It's made so by testers who *might* be doing tasks with same mistakes.
  16. It's made so by testers who seek guidance from a person who claims to be a tester and who doesn't know much about it and yet offers great advice to his junior to learn tools like QTP, Winrunner, Load Runner, Silk... to get out of monotonous work. ( Actually, running tools for a life time and being a toolsmith and yet claiming to be a tester, is monotonous)
  17. It's not testing that is monotonous, it's testers thinking that is monotonous.
  18. It's made by testers who monotonously say "testing is monotonous"!
Those who question, don't experience monotony. Those who question, experience testing.
If you experience monotony, you aren't questioning. If you aren't questioning, you aren't testing.

Simple!

( A couple of days left before the registration *might* close for an exciting workshop on testing skills. Look for the announcement in the left top corner and register before I start saying, "Sorry" )

-- Pradeep Soundararajan - pradeep.srajan@gmail.com - +91-98451-76817

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

Saturday, May 12, 2007

Developers Developed by Tester Tested

I was testing a product last year in a capacity where the development team was just a floor away from me. Initially, I found so many crashes during the first few releases and there were crashes that I could find even after a couple of months and that's bad ( may not be too).

I take the credit of making those developers to do a better unit testing. I did not do that just by finding bugs but did a few things that I'd like to list for you:

1. Festivals and realizations:

One day, I went to the developers with a print out of heuristics and test data that I have been using to find crashes that made them sit and fix bugs, during festival season. It's painful to sit in office and work when the whole nation is celebrating. This psychologically affects them and in my opinion, developers need our help to enjoy festivals and weekends.

So by giving them my customized cheat sheet, I made them aware of those tests that have made them work during festivals. I did not say anything more than that during that meet. Some changes are set to happen by it self, all it needs is a trigger and I provided it.

Outcome:

1.a. Developers used my cheat sheet for unit testing.

1.b. I forced myself to think of more test ideas to find more important problems, quickly.

1.c. It became easy for me to ask the developers, "please send me your unit test results".

1.d. One of them told, "I am using this sheet because I want to enjoy my holidays and not that I want to do unit testing". Whatever is the reason, I am happy that they are doing!

1.e. The unit test results they produce, gave me new ideas.

2. Two to tango:

I frequently consulted other teams during "critical moments" ( as they call ) that they faced. I once had to pair with a developer for a testing activity.

It was a little gimmick that I played with him that got him thinking of doing unit testing better than before. All I did is to say, "Hey, you better close your eyes and don't see what I am doing. I would do some little tricks that testers usually do to find some important problems. If you are careful and observant, testers like me might not be able to find bugs in your code".

Outcome:

2.a. Had I continued without that gimmick, he might not have opened himself for a careful observation of the kind of tests that I did as any other developer to my knowledge doesn't carefully observe a tester at work.

2.b. He unit tested and then said to me one day, "Pradeep, you shouldn't have showed me the tricks. Now my testers are facing a tough time to look for those crashes that they usually find in my code". I just had a smile in my face. I was convinced that he didn't understand what was running in my mind but that's fine with me.

2.c. Maybe the testers of his team might have come out with more test ideas than to look for the same crash that they are accustomed to. Well, I admit I don't know about that but it's my guess.

3. Patterns and structure of crimes:

Sherlock Holmes, as many of you might know still lives in Bakers Street providing inspiration to testers like
( not a great tester ) me , Robert Sabourin (great tester) and many other great testers, observes patterns and structure of people whom he suspect to be criminals and tracks down the criminal based on the pattern and structure of crime.

I observe a pattern and structure through the bugs that arise from a developer's code. It has helped to build my intuition and hence when I get a release with changes made by a specific developer, I look for those patterns and structure, which has been handy sometimes to find important problems, rapidly.

I felt it's a good idea to inform the developer, my observation about the pattern and structure of the bugs that arises of his code and did it in a polite way ( developers aren't criminals, remember).

Outcome:

3.a. He said, "Thank you! I now know where to work on and develop my development skills."

3.b. Our relationship got stronger.

3.c. I am convinced that good testers can help developers to develop their development skills.
(For those developers looking at this post, I hope you got a reason why you should lend your hand when we want to shake hand with you, for your own benefit. We love shaking hands with anyone who could help us better our testing and you are important to us)

Meta cognition helps me develop my testing skills and testing activity and I am happy that it helped others too.


-- Pradeep Soundararajan - pradeep.srajan@gmail.com - +91-98451-76817

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