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

Monday, January 26, 2009

Learning to test better by teaching testing

Make a list of some of the teaching staff that considered bad at school or college. You might be able to notice a pattern - most of them were not willing to learn while they were teaching. Here are some of my stories and attempts that I made during my experience as a coach in software testing.


Story 1


I was teaching at Datamatics 2 weeks before. When it was time to officially end the workshop, a participant asked me, "What did you learn in these 2 days of workshop?". I was so happy to have got that question. I thanked her for the question and listed some of the learning I had in those 2 days. 


I also mentioned to them that I make a note of the learning I have in one or the other way. I also mentioned that my blog acts as my note taking tool at times. As you might have seen my Progress Report, the list of events and experiences that I had in every year is well documented.

The question, "What did you learn by teaching me?" is a powerful question to ask someone who is claiming to teach you because if the person has nothing then you know you might not want to sit in that class anymore or being in that class is a waste of your time. 


In some places I have an answer, "I learned that you can't be taught at least by me" and thankfully those people don't ask me that question. Learning and teaching needs an open mind. I think I must have a close mind to say, "Not everyone have an open mind".

I have learned some great deal of stuff about how to test better by teaching testers how to test. I understand that my brain is not capable of asking all the questions that I'd love to ask myself and hence I need other brains to ask me those questions. Where do I find those brains if I am stuck in one place and I keep interacting with just the same team for over years?

An year and a half back Ben Simo mentioned to me the idea of "Apply inputs that force all the error messages to occur" from James Whittaker's book while we were discussing about error messages. I liked the idea and it then got included in my armory of heuristics to test a product and helps me in model the product in more ways than what I have been doing.

Recently when I was teaching the Hands on Testing Training for Freshers for Edista Testing, Muhammed Kothari, pointed out a tool to me that helped in displaying all error messages programmed in most Windows applications. At every workshop, I ask the participants to challenge me in demonstrating the kind of testing I talk about. At Datamatics the challenge was to demonstrate testing on Microsoft Freecell game. On using the Process Explorer tool, I demonstrated how I could learn how many error messages the product is programmed with and designed my tests to all those error messages ( in other words, all printable strings from the program ). That's one way of demonstrating coverage.



Some curious testers were excited about it and came up and said, "I'd like to use the tool. It helps me find out areas that I might have been missing while testing the product" -- which is cool. [ some? well, one. :-) ]






That's just one of the many ways in which Process Explorer can be of great help to a tester. Note that Process Explorer is a tool. A tool that a tester can use to augment his testing effort and do a better testing. Tools are not just QTP, Winrunner, Loadrunner, Silk, Cotton, Wool etc...

Story 2


Lunch tables are a great learning ground. At Datamatics, I was joined by a group of testers at the lunch table. I ordered for a Dal Kichdi that some other people had ordered too. As I ordered late, others had started off with what they were served. When I got my Dal Kichdi and rowed the spoon over it for grabbing the first bite, I saw a hair (hopefully human one) in it and then found more. I picked a hair and showed it to testers and asked, "Did we order for this?" (meaning, no one order for bugs to be served with the software they buy) and then the brilliant Saurabh Sahoo, Test Lead at Datamatics asked, "Do you know why you found the hair while we didn't?", and the curious me said, "Can you explain, please?" for which he said, "You were looking at the plate while we were so much engrossed in the discussion and were watching each other's face".

That's a nice observation. It helped me explain to the people over table - that's what happens when you run scripts or test cases that have an expected result, "You are too much focused looking at the expected result that makes you blind to see other things happening in the environment. Having multiple oracles in your mind helps you see more than just the expected result and hence you'd be able to spot more problems than what you have been doing". 


I also added to it and said, "I wish we could say to our customers, why are you looking at the screen?" when they say they found a bug with our software.

I think that at least made Saurabh Sahoo convince that its worth spending time to learn things that I was trying to teach (and learn) and he spend an additional two and half hours after the workshop with me and he is determined to do a much better job.
I learned a great deal answering the questions he asked me on clearing traps.

Answering questions like that definitely helps me in negotiating with management and clients.


Story 3

I was teaching at a Fortune 100 organization in Pune a couple of months ago. Within just 20 minutes of starting my workshop, the Test Lead announces to the whole class "This is class is a waste of time. Lets go back to work".


  • How do you deal with such a situation? 
  • How do you teach someone who doesn't want to learn from you?
  • How do you put them in a receptive mode? 
  • How do you know what to speak to them? 
  • How do you know if its worth speaking to them anymore? 
  • How do you know if they are more right than you?

What if you are in front of your customer and your customer wants to walk out of a meeting because they didn't like your idea? You might not be able to afford to lose all customers especially if recession is around.

I made an announcement, "All of you have the freedom to walk out of the class but I'd be happy if you answer a question: Have you ever walked out of a movie just because the titles of the movie suck?
 

If your answer is No, why would you want to do it here?"

Plus

I did something that I learned from the book Turning Numbers Into Knowledge that again cites Bruce Lee's master. 

I took a tea cup and poured water into it and kept pouring despite the cup overflowing and quoted Bruxe Lee's master, "Either your cup is too small or it is already full of opinions".

The result: I am teaching in the same organization again next month. The legs that rose up to walk out sat back and enjoyed the ride. Some even wrote to their management to have the class for other testers in their group.

Story 4

A common problem that most testers talk about - is being caught for missing a bug when a customer finds it. A tester in one of the previous workshop said, "It is my responsibility if I miss a bug and hence I have to be more careful with the tests I do". I was reminded of what Michael Bolton said, "I am a character in the story of how a bug got missed". It indicates that, we testers are a part of the entire story and we do not play the hero role in a bug that missed our hands.

That tester was adamant that testers should be made completely responsible for it and not anyone else because it was their fault and they shouldn't have missed it. I tried asking him, "How about making the person who put the bug into the product more responsible for it than you?" and yet that didn't help.

I made a pretty bold move, "I am going to slap you now. Would you blame yourself for standing in a place where I was swinging my hands or blame me for doing something I shoudn't have done?"

That tester remained adamant but other testers got the message that a tester is a character in the story of how a bug got missed and not the hero in the same story. Later that night when I was self retrospecting, I realized that I should have used a non violent example to explain it. Teaching testing to experienced testers helps in correcting your communication and thinking aspects.

Some important points to consider

  • It is easy to teach dull minds that don't oppose and appear to nod for every idea that you share with them. Teaching bright minds are tough and demanding. They teach you a lot about how to test better and what more I want than that.
  • Most people who teach testing in India at several training centers haven't done testing at all or haven't done enough testing. So, those who have remained a hands on tester and teaches testing gains a competitive edge.
  • If you have that competitive edge then there is good money as well.
  • Helps in meeting a lot of different kinds of testers and understanding different contexts, problems and different solutions to problems. It helps in avoiding traps much better and faster and translates to better testing.
  • It is a challenge to get to know more about ourselves, get tested , refine communication, thinking, learning, teaching and testing skills.
  • Make a list of some of the great testers you know ( in my case Jerry, Cem, Ben, James, Michael, Scott, Kohl, Elizabeth, Vipul ... ), you'd find that they teach extensively. Oh, you have been doing that as well but probably you have been teaching yourself all this time. Think about why do they do that?
  •  
  •  Go, at least teach yourselves. 
  •  
  • Teaching, teaches the teacher about teaching
If you are a tester and is interested to join a small test group that specailzes in coaching, consulting, and testing services, write to me. You'd work with some of the upcoming very good minds who care and live for benefitting the software testing community. Write to me: pradeep.srajan@gmail.com

18 comments:

Philk said...

Just have to applaud someone who can carry on learning whilst teaching, really good article

I dont do any teaching but I have found that participating in the forums has been a great way to test myself and learn more

Pradeep Soundararajan said...

@Philk,

I dont do any teaching but I have found that participating in the forums has been a great way to test myself and learn more

Oh you do, to yourself.
Oh you do, not consciously, when you participate in the forums and ask questions and provide answers.

You may have driven someone to a point that they wouldn't have driven themselves.

If given a chance you probably would do it consciously as well.

Jaswinder said...

Hi Pradeep,
What inspired me more about you in the training was,even though,things were getting tough you did not give up & continued with composure.

I was also wondering what must Pradeep feel about us all :))

Regarding the Freecell Testing I was too amazed that in one hour so many things, could be observed.It gave me an insight to my testing , my understanding of testing.
Kudos,Cheers,

Pradeep Soundararajan said...

@Jaswinder,

What inspired me more about you in the training was,even though,things were getting tough you did not give up & continued with composure. I was also wondering what must Pradeep feel about us all :))

As you see in this post, I thank you people for offering me a challenge that I learned valuable things and I hope you learned valuable things as well.

Regarding the Freecell Testing I was too amazed that in one hour so many things, could be observed.It gave me an insight to my testing , my understanding of testing.

I am sure you are not the kind of the tester who wants to stop yourself from being amazed and you'd amaze your team mates in doing a better testing than what you witnessed.

Looking forward to hear that.

Also, could you tell me the girl's name who asked me the question, "What did you learn in these 2 days?"

Jaswinder said...

Yes Pradeep I sure would :)))

"The woods are lovely, dark and deep,
But I have promises to keep,
And miles to go before I sleep,
And miles to go before I sleep".......This is my favorite poem & I say this to myself relating to Testing.......

The girls' name ....I guess it was Smita Parab the girl sitting on the First bench.....on your right..am I correct???????

PSK said...

Truly inspirational.

The reality today is

01. Software Testing needs it war heroes in India
02. More than a few in testing (who I am sure will not be visiting this blog) are here for the wrong reasons (did not get develop job etc) and still do not like testing. They have never even read on book/blog on testing.
03. These people spread the wrong word on software testing career and might be the reason (apart from various other testing career related myths) not many bright minds from the universities are interested in testing career.
04. Testing education in the university is, at best, 3 hours and some definitions.
05. In the open market, institutes teach testing in 16 hours and teach all the tools under the sun. And the faculty who teaches, more often that not, would have either completed a testing course a few months back or doing teaching as a stop gap arrangement before he gets a job as developer.
06. Professionals consider teaching as doing something "outside" the indutry.

We need change. We need more professionals (like yourself) to step forward and be counted. I am sure I will see that day. The questions is will that be today?

Sigge said...

Really inspiring reading, all of the above cases. And of course in my opinion, teaching something requires the more deeper knowledge in the subject, so not only learning from the participants, but also through formulating the teaching material, you dig deeper and gain more knowledge in it.

I am really a novice tester, but one of my first tasks here was actually to create some teaching materials. It made me realize alot of things. And with even the slightest practical testing it created enormous value in my learning curve. I have a long way to go, but trying to learn from the wisest helps me on the way.

By the way, we met at the Ordev conference, talked with you and James for a short while if you remember.

Regards, Sigge

Shrini Kulkarni said...

>>> what Michael Bolton said, "I am a character in the story of how a bug got missed". It indicates that, we testers are a part of the entire story and we do not play the hero role in a bug that missed our hands.

I think topic of "holding testers responsible for missed bugs" - requires a separate post in itself.

In todays world, where there are lots of misconceptions about testing - this is one all the managers and clients firmly believe in. If a tester is PAID for testing and finding bugs (that is not correct !!!!) - then obviously in their view - tester should be held responsible for missed bug.

So, Managers and clients impose that on testers -- Testers accept it (some happily and some desperately as there is no choice for them).

The problem lies in communicating what testing can do ... under what constraints Tester work, why complete testing is not possible, Why bugs can go missing instead of genuine attempt by testers and finally testers provide services of evaluating software which is beyond simple count or occurrence of bugs.

What worked for you? what did not?
what has been your own experience of missing bugs?

Shrini

Pradeep Soundararajan said...

@Siggie,

By the way, we met at the Ordev conference, talked with you and James for a short while if you remember.

I do remember having a conversation with someone who had just entered the testing space plus was probably forced to take a certification. Was that you?

I am really a novice tester, but one of my first tasks here was actually to create some teaching materials. It made me realize alot of things. And with even the slightest practical testing it created enormous value in my learning curve. I have a long way to go, but trying to learn from the wisest helps me on the way.


One of the ways you and me will benefit is by continuing to create material to teach ourselves and others as well :)

Pradeep Soundararajan said...

We need change. We need more professionals (like yourself) to step forward and be counted. I am sure I will see that day. The questions is will that be today?

Yeah, we need change. I am hopeful that by changing myself I have possibly been able to influence other people. I have got two e-mails from testers who are interested to take this up, better themselves as testers and also contribute to the community.

It all must have started yesterday but maybe it has to gain more momentum.

Sigge said...

@Pradeep

Yes, thats me=)

Rahul Verma said...

Hi Pradeep,

Nice Post.

The example of the cup and pouring water is used to discuss "buffer overflows" in various texts and presentations.

I liked its analogy with a mind full of opinions as most of us fall in that category. If this generalization is pinching, to confess, many a times I have myself acted like a full cup and later when I realized the same, it was either too embarassing or a little late. Everything doesn't come with a rewind button, one can just think of acting better next time.

I sat through your presentation at TEST2008 and one thing which I thought was (as we differ in many opinions), what you were going to discuss might be totally different from what I think, but I should first listen to you and then bring out healthy discussions, if required. It helped. I couldn't have enjoyed the "dice exercise" better!

At times, I am amazed by the correlations you establish between what we do in our day to day life and things around us, with software testing. It's a good way to teach. I'm not sure about the basis of some strange feedbacks which you have received for your sessions, but I feel that teaching through practical exercises and analogies is as best as it can get!

Regards,
Rahul Verma

Pradeep Soundararajan said...

@Rahul,


I sat through your presentation at TEST2008 and one thing which I thought was (as we differ in many opinions), what you were going to discuss might be totally different from what I think, but I should first listen to you and then bring out healthy discussions, if required. It helped. I couldn't have enjoyed the "dice exercise" better!


Fantastic!

At times, I am amazed by the correlations you establish between what we do in our day to day life and things around us, with software testing. It's a good way to teach. I'm not sure about the basis of some strange feedbacks which you have received for your sessions, but I feel that teaching through practical exercises and analogies is as best as it can get!

I shall send you some information soon on the hands on testing results I helped Edista to produce and you'd be more convinced than ever about training freshers more practical and the value it adds.

Anonymous said...

I learned a lot during last year, from you, from other pages and books, from my work and my daily experience.

And I started write some my new ideas into my notebook. Ideas that I like to share with other testers.

The last one is:
I do not ensure quality, I assess quality.
I look for informations through questioning software and process them.
Then I refine, evaluate and provide these informations to others.

This is just one of many things I learned from you and my last year experience.
Anicka
(Anna Borovcova)

Pradeep Soundararajan said...

@Anna Borovcova,

Thanks for sharing your learning and I hope to see your notes if you plan to publish them in a blog or so.

This is just one of many things I learned from you and my last year experience.

Cool and I'd like to say I am just passing on the good information I learn plus sharing some of the learning and experienced I have.

So the credit goes to all those people from whom I benefited as well.

VenOre said...

very much impressed by this article.
I have a great desire to teach what I learned.

very good article

Grass is said...

Just another small tip which might go well with your process explorer tool, something which I have used, if you do not have process explorer or any other tool you can still see the possible error messages from a Win16/Win32 application . Go to cmd and use the age old Edit command to open the exe file and start from the end of the file and you'll see all the strings there. Typically in a stand alone exe file, the string table happens to be at the very end of the exe, however if its linked exe, chances are that the strings are in a dll, same approach works, also if you happen to have VC6 on your system, it can do the same work, but it can also show other resources, e.g. bitmaps etc which are present in the exe or dll.

Pradeep Soundararajan said...

@ Grass is,

Thanks for the information. I shall definitely try your ideas and I think it is important to know what to do when some resources we want are not available.