"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, July 24, 2006

Every software tester should become a good developer of test ideas

This post is re-written and published on June 23, 2009 and the old post is left at the end.

The idea of "developer" seems to be misunderstood by many and I wasn't an excuse till a few years ago. You must have heard of Real Estate Developers. What are they doing? Are they writing programs on buildings? Well, the idea of a developer is someone who performs activities in building something or bringing something from an idea to a working or physically available form.

So, testers are developers as well, who develop test ideas and why shouldn't we call them as developers as well. I know this might look contradicting to all that you have learned but my idea is to help you understand that we do some tasks that falls under the category of "development" as well. Developers do some tasks that falls under the category of testing.


The value of thinking testers as developers of test ideas

Developing test ideas is an essential skill for a tester that the whole world of software testing might agree with me. Now that we realize it is an essential skill, what are we doing to it? Nothing, actually.

However, we may start focusing on developing it by practicing skills like questioning with combination of vertical thinking, lateral thinking, logical thinking and more.

Let's take an example:




That's a familiar thing to you. A Gmail login section. Now, there are tons of possible tests we can perform on it but given a short span of time, how can we develop some good test ideas?

I am taking this challenge and giving myself just 10 minutes and let's see what I can do with it?
Every test is a question we ask to the product - James Bach
  • What's the minimum and maximum value these fields can take?
  • How do I know that? Why should I believe what the developer says?
  • I use perlclip to identify the max values and identify: I input 100000 characters from Perlclip and I find that it does take so many characters but it so happened that IE7 appears to hang after taking so many values on the username field. I had to close the window and IE crashed. We found a cool bug right away!
  • Why would a username and password field be given so much width and why there doesn't appear a max value to it? ( that's an important question: How many testers would ask that question? )
  • Why is it placed on the right pane of the window?
  • What usability does the right one indicate?
  • Yahoo Mail provides it on the left and Google on right and that indicates to me an inconsistency for Yahoo users moving to Gmail because their eyes and brain are tuned to finding the login section on the left.
  • When I look at the source code of the Gmail login page, it appears to show me a maximum size as 18 however, we identified it appears to take more. Maybe in a different browser or a different version, 18 stays on. I urge you to look at the source.
  • The text indicates: Sign in to you Gmail with Google account. That text is confusing me: I never created a Google account but I created a Gmail account. Could there be more users like me who are confused about what it is asking us to do?
  • What about the alignment of Stay signed in? Why is it aligned such way? Why isn't there a full stop after the word "in". Is that grammatically fine?
  • Why is the "I cannot access my account" in a smaller font size as compared to other text within that specific box?
  • Why should it be so small? What is the purpose?
  • Ah! The text box size is 18 but not the number of characters that it can take. So how many ever characters you type as input in the username or password field, you can only see 18 characters.
  • The background is light blue and the "I cannot access my account" link is dark blue. I am not sure if the color combo goes well with many color blind users who might not be able to see that as a link or might be unable spot it as a link to some other page.
  • Is there a test report for this already published on the net?
  • I use TestersDesk to generate test inputs to that and following are my test inputs and create test inputs of Greek Characters, Indian language characters, password tool generator, Name generator and right away I have thousands of tests that I can hire testers to run and find many different kinds of bugs with it.
  • Username, Person Name Generator of Testers Desk helped me with:
  • Person Names
    DORNBOS, EZEKIEL
    EBRAHIMI, ISAIAH
    FOGGIE, FERDINAND
    FRANCISQUE, SHERMAN
    GUN, DOMINGO
    HENNESSEE, FABIAN
    HOKAMA, BRAD
    HONAN, WALTER
    KULIS, NORMAND
    MALLIE, MAJOR
    MELISH, TRISTAN
    MYERS, ALFRED
    NABORS, BRYAN
    NEIHOFF, HAL
    OBI, MARQUIS
    PETET, EMMITT
    RAMBERG, RICKIE
    ROWLISON, LANE
    SENFF, MITCHELL
    SHACKLEFORD, DINO
    SKORUPA, MITCHEL
    SKREEN, WESTON
    STANBERY, JOSPEH
    VEAL, CLAYTON
    WALT, GRANVILLE
  • Could I have thought about those names? Not at all.

Now, that's 10 minutes over. In fact to be more precise, I took 10 minutes and 47 seconds to do that. So, I think I developed ideas on the fly and I used my skills that I talked about to come out with tests. That's valuable given the 10 minute constraint.

Tools: You migt have seen how me being aware of tools like Perlclip and TestersDesk helped me in coming out with tests that many other testers could not have come out with. These tools might not be as popular as your ( not mine ) QTP but they are more valuable than your QTP. However, I believe, "A fool with a tool is still a fool" -- Marshal McLuhan


Traditional Test Design techniques suck: Traditional boundary value analysis isn't any analysis. It is arithmetic of adding one and subtracting one from a given number but an ability to explore is something that a tester should be looking for no matter if boundary values are given or not.

Practice: I bet that more I practice the skills that I mentioned the better test ideas I might be able to come out with. So, you might want to ask me after an year what more valuable tests can I come out with in the same constraint of 10 minutes.

Look at how quickly I came out with test ideas and compare to my previous post which had only few good ideas. So, me and you play a role as a developer and tester. We just aren't conscious about it all this while, maybe.

I pray God you dont practice all these things since the more you dont practice and the more I practice, I have lesser competition. :-)



Following is my old post
( which obviously is poor in English compared to the above yet some good ideas may lie there as well )


"Pradeep, have you gone crazy? It is you who said in your previous posts that testers should develop passion towards testing and it is not good always for all testers to think of jumping into development".

I still remain the same, just that I did want you to read this entire post to make you understand why a tester should become a good developer.

_ Every tester should become a good developer _

Do you belong to the category of thinking that development means coding?

Testers do development, how many of you are aware of it?
Yes, as testers, you and me have done development.

"Pradeep, do you mean test automation?"
No but yes, inclusive of that.

Well, let me break the ice, it is late, I am aware.

Testers should become good developer of test ideas !

Ah, now I am sure you would have got a better reason for going through this post.

One of the testers who is in touch with me posed me a question on chat, I am sure you would be interested to go through the whole discussion:

Anonymous: Hi Pradeep
Anonymous: How u doing?
prad_intel S: Hi
prad_intel S: I am doing great
prad_intel S: wats up
Anonymous: Nice to hear this
Anonymous: are you busy now?
Anonymous: I have a doubt
prad_intel S: tell me
Anonymous: write 10 test cases for the triangle which takes input values as length of side of the triangle from a data file & displays the message whether triangle is scalene, isosceles or equilateral triangle.
Anonymous: Data file i didnt get it..
prad_intel S: what for is this?
Anonymous: This is a Question which was asked in Adobe Interview
Anonymous: I just saw this Question in Geek Interviews
prad_intel S: well could you not think of it ? ( I would want everyone of you to think before you pose a question to me or someone else whom you would want to ask a question,sometimes, you yourself could have an answer and may end up making others feel great for answering your questions)
Anonymous: Yes
Anonymous: But i just want suggestion from ur side
prad_intel S: ok
prad_intel S: let me start off with it
Anonymous: Ok
prad_intel S: my understanding : there is a program which takes the values from a file for the 3 sides of the triangles and throws out a message of what type of triangle is it
Anonymous: ok
Anonymous: Yes right
Anonymous: So input will be taken from the file itself
prad_intel S: my understanding 2 - all three sides value will be taken by the file and the value is taken either sequential or random
Anonymous: ok
prad_intel S: the above was an assumption and not understanding
Anonymous: yes
prad_intel S: test cases could be ...
prad_intel S: 1) Input values 5, 5.0 and 5.00 to check for equilateral triangle
Anonymous: ok
prad_intel S: 2) (5, 5, 5),(5,3,2) and ( 5,5,4) to check whether the message shown maps to the type of triangle
Anonymous: ok
prad_intel S: 3) 0 0 and 0 - to check for error conditions
Anonymous: ok
prad_intel S: 4) 10000 , 1 and 1 - which cannot make a triangle ( am i right)
Anonymous: ok
Anonymous: yes
Anonymous: Perfect Test Cases
Anonymous: Good Suggestion
prad_intel S: 5) a mix of positive and negative values/fractions
Anonymous: Yes
Anonymous: Thanks for giving suggestion Pradeep
prad_intel S: 6) values as co ordinates like - 2,3 and 5,4 and 6,8
Anonymous: ok
prad_intel S: 7) values in words like - nine , six and four
Anonymous: ok
prad_intel S: 8) the file is a program that depends on some other file for its output value
Anonymous: ok
prad_intel S: 9) numbers in ASCII/UNICODE ...
Anonymous: oh nice
Anonymous: this i was not aware off
prad_intel S: 10) Last but not least, the program trying to open locked files
Anonymous: yes
prad_intel S: Extra cases
Anonymous: perfect
prad_intel S: 11) Reading from different file formats
prad_intel S: 12) Reading values from charts( example - excel charts)
Anonymous: ok
prad_intel S: I can probably think of 100 cases on this,all useful ones, of course.
Anonymous: Hahaha !


_ end of _ Every tester should become a good developer _

"The birth of a test case should be the death of a bug" -- Pradeep Soundararajan


UPDATE: There was an original name instead of "Anonymous" till Sep7 2006 and the person sent me an offline shouting at me as its insulting him/her, since he/she searched his/her name in google and this post topped the search result. I am puzzled to as what made someone think a learning experience as an insulting one and hence have changed his/her name to "Anonymous". Long live such attitudes.

5 comments:

Tarik Sheth said...

A Prodigius Article which is truelly Inspiring andDirect us to Think Innovative and Out Of the Box...
Thanks Pradeep

Anonymous said...

thanks for this wonderful blog.Your blog has made me better tester.

Anonymous said...

Its really nice to know that what are useful and useless test cases and the documents ...
one thing is sure if u r in Quality Assurance, one needs to work with lot more dedication and passion.

- Manu

viru said...

good job and I am impressed about this whole blog. you are a great tester.

kumar said...

Great.

Your blog is good
I got inspiration from you.

You are the real software tester on the Planet