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

Wednesday, August 20, 2008

Happy testing and Sad Testing

I don't know from where I heard "Happy Testing", the first time and fear to think if it echoed within me. I also don't know how I caught those words to sign all my e-mails to testers I communicate, writing "Happy Testing" at the end of the e-mail. I noticed that a lot of other testers to whom I communicated also started doing that in their e-mail communication to me and in their blog posts. I didn't know what "Happy Testing" meant when I started using it long back but I think this post explains what I mean by Happy Testing.

For the moment, forget about people ( that includes me ) asking you to do good testing, better testing, great testing, pleasing customers, pleasing managers, and getting great hike. Think about doing happy testing.

As a tester what makes me happy is when I find 'a' bug. What makes me more happy is when I find more than a bug. What makes me the happiest is when I find more and more bugs in every product I test.

I come across a lot of Sad testers and observe a pattern of the bugs they find. Most Sad testers that I come across are the ones who follow test scripts or cases to find bugs. You might observe that those Sad testers say "These test cases found those bugs". I am sure if test cases have life, they would be happy set of organisms because a lot of Sad testers owe credit to the test case for whatever bugs they ( humans ) find.

Its not that those Sad testers are always unhappy about the bugs they find, its that they are happy and not happy enough to recognize how they can be more happy.

If finding a bug doesn't make you happy, how sad a tester you are!

Don't ask me the secret of being a "Happy Tester". I am sure a lot of Sad testers won't believe my reply, "Rapid Software Testing, Exploratory Testing and Context Driven Testing that provides me freedom to think, experiment and find a lot of bugs".

In every Skilled Exploratory Testing corporate workshop I do, I challenge testers on testing their product for 90 minutes and find a lot of bugs within that short span. One of the recent experience was in SAS, Pune, where testers started clapping after the 90th minute witnessing the Happy Testing I did. It felt like a Hero to receive clapping from testers for demonstrating Rapid Software Testing.

What I heard from Rajesh K , one of the managers who nominated his team and attended the workshop in SAS over an e-mail was "The bug count has certainly gone up". Happy Testing Rajesh, Vikram, Manoj Nair and their teams.

Jerry Weinberg revamped his website recently and a sentence in his revamped website made me think what Jerry was trying to say and here is the sentence for you "Dedicated to Helping Smart People be Happy". It made me wonder if smart people can be unhappy. I then thought about all those talented testers in India ( and probably other countries, too ) who have been forced to write and execute test cases and follow best practices that might have worked for someone else.
That reminds me to say, I get happy when I read Jerry Weinberg's books because reading his work makes smart and I made myself a lot happier when I bought Jerry's books for about 300 US dollars during my trip to Canada.

Speaking of all that, let me ask a question to myself: Am I never unhappy?

Oh yes, whenever I come across people who are unhappy and they don't want to listen to stuff that can make them realize they are smart and can be happy enough, too.

Am I talking as though I am Mr Perfect?

Oh well, I forgot to share with you that an important lesson I learned is that - Humans are fallible and so are their ideas. Everything is a heuristic and it is a choice of heuristics in a suitable context that makes a person smart. If you think Perfect Software and Software Testing is possible, read Jerry Weinberg's Perfect Software and other Illusions about Testing.

Unfortunately, I want so see those sad testers I come across as happy as me. Unfortunately, they aren't happy that I am claiming to be happy by doing things that they think is impractical or hard.

Fortunately there are some sad testers who are smart and want to be more happy. I live to help them. Oh! Did I forget to tell you that I get happy when I help testers find more bugs.


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

24 comments:

Shrini Kulkarni said...

I am with you Pradeep ...

Reading stuff from Jerry, James, Cem, Michael Bolton really makes me happy and it is like drinking an energy drink ... I am not sure that is because that makes me smart ...

I thinking the from Jerry again ... the quote reads .. "One way for smart people to be happy is express themselves - talk, communicate, write, speak ...". On the day when I wrote a blog post, recieved lots of comments/questions... I feel very happy.

See again connection between communication (reading or writing good stuff), smart people and "happyness".

Pradeep Soundararajan said...

@Shrini,

On the day when I wrote a blog post, recieved lots of comments/questions... I feel very happy.

I would be happy if I write a post and don't have comments on it as long as it has influenced people to do better testing.

As I said in your 100th post, what makes me happy is when I am of help to someone to do better testing and learning from the comments than about 100 comments praising my writing and thought process.

Anonymous said...

Hi Pradeep,
Nice post! But I would like to bring something to your notice. I have come across many sad testers who don't seem to enjoy their work cuz of repetitive work. (I was one of them once)

For eg, in my previous company we had only 1 single application on which I myself have worked for 2 years. When I first started with my job I was happy as I was new to Testing but as time passed, I started getting irritated by the repetitive work. Also the bugs which we found were a copy of old ones. Only useless promises were made by management saying we have many upcoming projects. But till the date I was there no new project was introduced.

Finally, I moved on & now here in the last 3 months I have on more than 3 projects. We have many different CR's coming & each time I get to learn something new. I find out minor as well as critical bugs. Today I can proudly say that - Im a happy tester.

Can you please elaborate what should be done to overcome such sadness in testing?

Pradeep Soundararajan said...

@Roshni,

I have come across many sad testers who don't seem to enjoy their work cuz of repetitive work. (I was one of them once)

The work is not repetitive, they did the work that way by running scripts and test cases over an over again.

For eg, in my previous company we had only 1 single application on which I myself have worked for 2 years. When I first started with my job I was happy as I was new to Testing but as time passed, I started getting irritated by the repetitive work. Also the bugs which we found were a copy of old ones. Only useless promises were made by management saying we have many upcoming projects. But till the date I was there no new project was introduced.

The management did a good job to keep your hopes alive to avoid facing a situation of attrition.

I suspect what many people were finding are symptoms of the problems and not the problem itself.

For instance if I have a malaria, the symptoms could be fever, cold, cough and others. If I report my problem as a fever and cold and the doctor attempts to fix fever and cold, the malaria is not gone yet.

Jerry Weinberg in his books articulates this very beautifully to say "No testing is better than poor testing".

However, I suspect another problem - Bias. Most testers face a problem of having been biased to the same product for a long time.

Here is an important lesson: To manage such a bias you can test hundreds and thousands of products that are available online. For instance, does any one stop you to test Microsoft Word?

You don't need your management to give a new project for you to test.

A lot of open source projects are waiting to hire testers and you could be a part of it that switches your mind off the product you are testing at your organizations and helps you see the product with a fresh perspective.

If you haven't learnt things that helps you do a the same task in a way that engages your mind - you have no other option other than being a sad tester.

As I wrote earlier "Show me a bad tester and I shall show you a lack of curiosity in that person"

If a tester is less curious, he/she studies less engaging stuff and hence is sad at the end.

Anonymous said...

Thanks Pradeep!!
Its completely true.

I agree with wat you said.
Such people dun want to work hard but yae they'll expect that others should respect them for their laziness.

Sharath Byregowda said...

Pradeep,

I loved the post, its simple, and straight to the point. It's great to see how you have linked one of the most important human emotions (in terms of living a good life) to testing.

All HR's, companies, managers, stakeholders, individuals who want to keep their employees, teams, customers, and yourself happy - here is a simple message for free.

It might even make your life happier, which in turn might keep people around you happy.

-Sharath.B

Pradeep Soundararajan said...

@Sharath,

It might even make your life happier, which in turn might keep people around you happy.

Oh no! It makes sad testers more sad to see that there are happy testers :)

Being serious: Happy people create software that makes people happy.

Jerry Weinberg said, "All problems are people problems" in the workshop I attended. I was wondering if there are technical problems that are not people problems and then he helped me think how the technical problem came up because of people working around it.

Keshav Ram Narla said...

What an excellent post. It's also very true.

You can count me in on the Sad testers. Tell me what I can learn in 30mts about Testing to be a bit more happier (At least thats a start).

Context:- I have been testing a Thick Client desktop applications and use ad-hoc testing most of the time.

Pradeep Soundararajan said...

@Keshav Ram Narla,

You can count me in on the Sad testers. Tell me what I can learn in 30mts about Testing to be a bit more happier (At least thats a start).

You may want to learn one simple thing in the next 10 minutes and practice it for the next 10 minutes and try to learn something new about after having the first two sessions in the next 10 minutes.

Does finding bugs make you happy?

If it does, how about trying to test with the help of more Heuristics and Oracles ( refer to www.satisfice.com/rst.pdf ) for a specific feature in your product for about 45 minutes.

Your mission is clear: Go through Rapid Software Testing. Take a feature in the product you test. Have a print out of the heuristics and oracles in front of you pasted in your cubicle and spend the next 45 minutes in applying those heuristics and oracles at work.

Exploratory testing starts with a mission and ad-hoc testing doesn't need a mission in hand.

Come back and share your experience or blog about it for the benefit of the community.

Context:- I have been testing a Thick Client desktop applications and use ad-hoc testing most of the time.

Have you questioned: Why is it called thick?

How thick is your application?

Have you tried using Perl Clip to feed millions of values to fields in your application?

What problems matter to your customer?

What claims does your management an d customer make about the product?

What is the frustrating thing ( emotion ) about the product in your opinion?

What registries change when you open, append, close some information or application?

What are the dependencies of the application over Operating System?

What if Microsoft released a patch that automatically reboots your system while your application was sending some information to a database?

What are some things that you observed and thought "its fine" that you think somewhere someone in this world might say "bug"?

Have you asked people outside your project to provide feedback to you after allowing them to use the product?

What problems does a competitor product have? Are there similar problems here?

Sharath Byregowda said...

@pradeep

I was wondering if there are technical problems that are not people problems and then he helped me think how the technical problem came up because of people working around it.

- please help me understand this, with couple of examples. Even I feel there are technical and people problems.

ps:How about we have it on test republic?

-Sharath.B

Pradeep Soundararajan said...

@Sharath,

please help me understand this, with couple of examples. Even I feel there are technical and people problems.

Here is a technical problem that appear technical in nature:

Unable to reproduce a bug

Are all bugs that appear non reproducible non reproducible?

I once faced a situation where a tester faced this situation and came to me for help. I pointed the tester to James Bach's blog post on dealing with intermittent problems and asked the tester to read it carefully and helped him work on each of those points mentioned by James Bach.

Result is: He did reproduce it by deriving help of the article.

Now: Was it a technical problem or a problem with a tester who did not educate himself?

Wouldn't it have continued to look like a technical problem had I not read James Bach's blog?


ps:How about we have it on test republic?

Go ahead.

Ajay Balamurugadas said...

Happy Testing:

Good article Pradeep.
It's high time SAD TESTERS realised that testing can be a happy process.

What makes me happy?
> If I find a bug that's hard to fix, I'm happy.
> If the bug scenario involved unconventional/lateral/critical thinking, I'm happy.
> If the bug would have troubled my customer and I found it before releasing the prodcut with the bug, I'm happy.
> Finally, I'm happy when I interact with thinking testers.


Definitely, Rapid Software Testing techniques have halped me realize the happiness in software testing.
www.satisfice.com/rst.pdf is a good starting point for any SAD TESTER to become a HAPPY TESTER.

-Ajay
www.enjoytesting.blogspot.com

Pradeep Soundararajan said...

@Ajay,

Definitely, Rapid Software Testing techniques have halped me realize the happiness in software testing.
www.satisfice.com/rst.pdf is a good starting point for any SAD TESTER to become a HAPPY TESTER.


Rapid Software Testing makes Sad testers who want to be happy, happy.

Rapid Software Testing also makes happy testers, more happy.

Pradeep Soundararajan said...

Forgot to mention: Rapid Software Testing is not a process, it is a mindset and skill set of a tester.

Shrini Kulkarni said...

@Pradeep

>>>I would be happy if I write a post and don't have comments on it as long as it has influenced people to do better testing.

That is a fair statement .. but How do I know I have influenced some ones' thinking ? One of the several ways to know this is "comments". That is why mentioned about comments.

Getting no comments on my post is terrible thing for me ... I consider that as a failure of my post ... I could not connect with my readers .. I was just writing for myself.

Coming back to my 100th post .... I now feel that most of the time I write for myself ... something that appeals me or frustrates me -encourages me to write.

Deviating bit from the topic ...

Off late my commenting policy has been to not to allow any simple plain appreciation comments unless the commenter has some new perspective to share. Once in a while I do accept "appeciation" from people like James, Cem knowing very well that their comment is prestigious on my blog and they typically do not post comments like "this is a great post...."

Coming back to writing stuff that influences testers/people to think and test better ... I think I am not yet there ... as my focus of wrting is mostly to write my own thoughts and issues... Ocasionally they might influence others too .. but that would be a side effect of my wrinting ... nothing more than that ...

@Roshini ---

As Pradeep articulated, if you feel bored about your testing ... you must have switched off your "curiosity" module of your brain ...

Lack of curiosity = Boredom in testing= Sad testing

Shrini

Shrini

Pradeep Soundararajan said...

@Shrini,

Getting no comments on my post is terrible thing for me ... I consider that as a failure of my post ... I could not connect with my readers .. I was just writing for myself.

You are thinking that the blog lives as long as you but I want to make you conscious of the fact that the writing we are doing today will echo beyond us.

75 years from now, that generation of testers might like one of your idea so much that they'd post a 1000000 comments.

So, if you consider that you should get comments the moment you publish a post or within a set time frame, you aren't futuristic about what you write.


Off late my commenting policy has been to not to allow any simple plain appreciation comments unless the commenter has some new perspective to share. Once in a while I do accept "appeciation" from people like James, Cem knowing very well that their comment is prestigious on my blog and they typically do not post comments like "this is a great post...."


A tester who appreciates your post might not be James Bach but he'd like to be respected for the time he has taken and so you might want to approve them. Its your blog so the choice is finally yours.


Coming back to writing stuff that influences testers/people to think and test better ... I think I am not yet there ... as my focus of wrting is mostly to write my own thoughts and issues... Ocasionally they might influence others too .. but that would be a side effect of my wrinting ... nothing more than that ...


Your writing is influential and that's why I know of people who read your blog very regularly. If it wasn't why would James, Cem, Michael, Alan .. spend time on your blog?

Anonymous said...

Its true that testing the same application for may be 2+ yrs can be boaring sometimes.....but there are ways wherein a tester can over come this by diverting his attention:
- Explore the application more, learn on how/what the application does (taking into consideration the vastness of the application under test)
- Try to perform different kinds of testing (like for eg. a tester might be performing functional testing, now probably he can look at installation testing or performance testing)
- As a tester try to bring out innovations in how you perform you’re testing

To conclude...testing is not boaring it’s fascinating....

Rgds,
Raj

Anonymous said...

@ Shrini,

As Pradeep articulated, if you feel bored about your testing ... you must have switched off your "curiosity" module of your brain ...

Lack of curiosity = Boredom in testing= Sad testing


Yes you are right the "curiosity" module of my brain was switched off but Im back on the track & Im happy for that.

I have myself come across many such testers who are still not willing to learn or rather are not curious to test. I just wanted to get those people back on track & hence asked Pradeep for help cuz frankly I was unable to pull them outa their laziness.

Thanks for the time you spent on taking a look on my comment.

Happy Testing!

Anonymous said...

Hi Pradeep,

Might be you would have heard Happy Testing term from me. I was using term in every mail i send to my co testers and friends.

Seeing this My France counter partners started using this term Happy testing.

I have presented a paper called " Happy Testing" in devloper conference in France for our office.

I got excited to see the same term

Happy Testing
Suresh

Pradeep Soundararajan said...

@Suresh,

I am not sure if I caught it from your e-mails to me because I might have seen it well before our e-mail conversations.

This link : http://www3.fuzedbulb.com/fuzedblog/blog_tgd_05.html appears to be posted in 2003 and has "happy testing" in it but I didn't look at this link either because I found this link through google search when I was looking for any source.

If people had already used it before us, my question is: Who said it first and what were their thought process when they said it?

I could have presented several workshops on Exploratory Testing but that doesn't mean I coined it, its Cem Kaner who did that.

However, what do you mean by Happy Testing?

Anonymous said...

Keep it up Pradeep, your blog is thought-provoking, which is the reaction you should be giving to people, instead of preaching like some.

Anyway, I don't entirely agree with you on this one. I agree like you said that motivation is critical and as previous case studies have found this gives rise to better bugs being found. Where I don't agree however is your comment that testing based upon test scripts/specs leads to sadness and so be avoided...

Test scripts play have a hugely valuable part to play as often they are created with coverage in mind and targeted towards specific risks to be mitigated. They will also be written by those who have an understanding of the area being tested which may of resulted in many years of experience in a given field. For this reason it would be wrong to ignore them and run down the exploratory route, as a large part of what is really important will be missed.

You could argue that some things may get missed out because of this strict fashion of testing (I'm thinking heuristics here). But surely if this is the case then the test plans / specs / scripts are not good enough in the first place!

However, like you say creativity of testing is important as it will find many issues that structured testing will not.

I like to think that a combination of the two is key, where a script is used as a platform by where a cleaver tester can then base further approaches and angles of attack. This means bases are covered, motivates testers to think in different ways and also find those interesting hard to find issues!

Pradeep Soundararajan said...

@Richard,

Where I don't agree however is your comment that testing based upon test scripts/specs leads to sadness and so be avoided...

Ok, lets discuss on this one.

Test scripts play have a hugely valuable part to play as often they are created with coverage in mind and targeted towards specific risks to be mitigated.

Yes but the way the scripts are written are as horrible as "Open the application. Look for the Menu at the left top corner. Click on it . The Expected Result is another problem that defocus a tester to all other things happening.

For instance, if someone pays me to watch a shooting star and gives me information like: There will be a shooting star tonight at 11: 34 PM near the Orion star constellation. Watch it.

My eyes and telescope would be fixed to Orion star constellation to watch the shooting star and record information about it.

As a tester I might want to see if there are more than one shooting star in the sky around that time and if I could record most of them.

They will also be written by those who have an understanding of the area being tested which may of resulted in many years of experience in a given field. For this reason it would be wrong to ignore them and run down the exploratory route, as a large part of what is really important will be missed.

What the most experienced testers might want to offer is wisdom to the younger generation and not path that they can follow. If you are coaching someone on software testing, would you want to offer them a list of FAQ's that they could refer to or teach them skills to solve problems that they can apply to any problem they face.

Has checklist replaced test cases?

Not at least in Indian sub continent to an extent that people can say. Checklists offer information about coverage and could be written by experienced testers of factors considered to be important and not want junior testers to miss them out. Check list could act as guide word heuristics.

You could argue that some things may get missed out because of this strict fashion of testing (I'm thinking heuristics here). But surely if this is the case then the test plans / specs / scripts are not good enough in the first place!

How have people learn to (mis)use test cases and scripts?

It takes out the responsibility of test team if they get their test cases approved for coverage.

India gets a lot of outsourced testing as you might know. In India as businessmen make money based on head count their customers ask for accountability. For businessmen who are least bothered about better testing as long as they are able to make money want to show accountability and test cases have proven to be a best practice they strictly follow.

However, like you say creativity of testing is important as it will find many issues that structured testing will not.

Are software testers respected?
Are they viewed as intelligent people on projects?

If they are viewed so, why are testers not paid good enough?

In India you would discover hundreds of organization that claim to teach software testing and certify them.

I dont understand how such a creative craft can be taught in a couple of days and people can be certified.

For them, test case based approach fits very well because there is no high funda to teach. Teach them a template and ask them to fill in an idea to test with steps, precondition and expected result with a pass fail column. Thousands of testers passing out of such places wouldn't want or like to know that there are approaches to think and test because it puts them in uncomfortable zones and questions the value of the money they spent to buy the certificate - which they fear to know.

I like to think that a combination of the two is key, where a script is used as a platform by where a cleaver tester can then base further approaches and angles of attack. This means bases are covered, motivates testers to think in different ways and also find those interesting hard to find issues!

Every scripted test when executed is to some degree exploratory and hence the mix is already there but no one wants to spend time figuring out what mixture works for them.

Some scripted testers who argue say that mixing exploratory and scripted is a good approach and when I ask them: Do you mix it? They reply, "But they didn't ask us to do that way"

If they do what "they" say, why should they be paid more?

I am surprised that there are professions that has been for hundreds of years and yet there are no standard approaches to solve the problems there and testing a very nascent field already has certifications and standards.

Also to share with you my experience: I interact with people who run test cases for a living. They are sad people not just in their job but in life, too.

Its important to note that most exploratory testers today start their career in scripted testing. I am lucky to see the first generation of testers who have started their career as exploratory testers in India.

Its a message to the future that the standards are going to be broken.

Richard, please dont take me wrong that I am discarding an idea that might have helped many projects in the past. My concern is, its past and lets move on to something better.

In Jerry's latest book, you might read about how Jerry tested those early days programs. In those days: If the code compiles - it works.

Are we in past or are we in present that was future, just yesterday, where we could have prepared ourselves for today?

M.V.Manoj said...

Thanks Pradeep for wishing us and our team @ SAS - "Happy Testing".

You are truly a HERO. Your passion and dedication for Testing and your contribution to Testing Community is terrific.

Being mentioned in your blog is really an Honour and Big Encouragement for me.

Pradeep Soundararajan said...

@Manoj,

A Hero or Zero depends on how you practice things that you learned from the workshop.

Well, I don't know if being mentioned in my blog is that big an honor but I must say if you feel happy about it, move on.

Demonstrate!