Monday, February 1, 2010

My First Lesson with James Bach, the testing legend

I never knew legends were so accessible. I am very thankful to James Bach, who wants to spread his knowledge to the world.

I had my first lesson from James on "Friday, January 29, 2010 12:44am to 3:37 am".
It felt so great to have two words with James Bach that the first time I got a response as hi from him, I took the screenshot of skype, even though I knew skype archives your chat.

I want to forward the learnings that I got from him to other proud testers:

Verse 1: 
James asked me to describe a test.

And I was very bad at it. I actually defined the test.
My Definition: A test is to explore a product to find out more about it, specially the issues in it. These issues are problems that might affect the user's experience adversely.
(I personally thought I did great there. But alas, what I did was defining the test)

After knowing that what I did was defining the test, I made one more attempt at describing the test.
And that was a little close to describing the test, but it was mentioning instructions to test.
And then James gave me the pearl of wisdom. Mentioned below "as is" in words of the legend:

[1/29/2010 2:04:20 AM] James Bach: If you were actually doing the test
[1/29/2010 2:04:30 AM] James Bach: and I were a blind man standing next to you
[1/29/2010 2:04:40 AM] James Bach: and you were telling me what you were doing, thinking and seeing
[1/29/2010 2:04:46 AM] James Bach: that's what I want

And I learnt now that when we describe a test. It is something like:
"I want to verify that... So what I do is... and then I see this... therefore I think that's working..."

Verse 2:
Do testers make assumptions?
It is a nice way of legends to teach, they do not give you the answer. They guide you to the answer and let you find it. Thanks James.
I started with the bookish answer that I will not assume but I will ask for the requirements or search for them.
And James guided me to the answer...

[1/29/2010 2:22:14 AM] Santosh Shukla: Testers do make assumptions sometimes as a last resort, but they also communicate/state it
[1/29/2010 2:22:23 AM] James Bach: good answer
[1/29/2010 2:22:30 AM] Santosh Shukla: thanks
[1/29/2010 2:22:30 AM] James Bach: of course we make assumptions
[1/29/2010 2:22:42 AM] James Bach: what we need to do is be aware of the critical assumptions
[1/29/2010 2:22:47 AM] James Bach: and trying to declare those

Verse 3:
Complete list of Expectations from the test.

Can you ever list the complete expectations from the test?  NO. 
What we always mention or list is the partial list of expectations. There are many expectations that go unwritten but those are still our expectations.

(My interpretations:)
Verse 3.1 Never promise for something you can not deliver.
Verse 3.2 Can we as a tester deliver complete test coverage? NO
Verse 3.3 Can a test team certify that the product is 100% bug free? NO

"What we CAN do is state clearly what we can do and to uncover the maximum amount of unpredictability from the product that we can." - yours truly

Verse 4:
"Also...Not..."  heuristic.

When I thought that I was done mentioning the expectation from my test, James pointed me to the Also...Not... heuristic. Using this heuristic one can add many more expectations to the already stated expectation by adding Also...Not... heuristic.

One important thing that I learnt while interacting with James was the importance of communication in the tester's life.
(If you being a tester think you can communicate well, explain "clickable" and reply to this post.)

-Sharing is the essence of learning.-
Thanks to James for allowing me to blog about the chat.
My chat with James Bach is my prized possession and I am open to sharing it with another proud testers. Thanks to James for allowing me to blog about our chat.


  1. thanks for sharing the conversation..looking forward for many such conversations

  2. "Clickable" would probably mean any space on any interface, whereby on clicking the mouse, a request goes out to the back-end...Again, just my view...Please give me your views as well..

    And keep writing!!

  3. This is a nice post, Santosh. I can see that helping you will have a ripple effect to lots of other people.

    -- james

  4. This is indeed a very good question to test the communication of a Tester!

    I hope you cracked it!

    Howerever from my experience perspective, I can define "Clickable" as "any object that is not disabled or hidden".

    I would slightly differ "Devil's" view-point.
    -> Clickable object may or may not sent a request to a backend!

    Let me know your thoughts.

    -Reetu Singh

  5. Clickable is any area on the GUI that can be activated usually by the click of the mouse or even a key on the key board.

    Good to read about your learning experience with James,

    Happy Learning,
    Parimala Shankaraiah

  6. @James Bach,

    Thanks for the comment James. I will definitely forward the learnings to other testers.

    Looking forward to more learnings.

    Thanks again.

  7. @Raghavendra - Sure. That's the prime motive of this blog. Sharing the learnings :)

    @The Devil's Advocate - You almost got it. Yeah as @Reetu rightly pointed out, clicking the object may or may not send a request to the back-end.

    @Reetu - Thanks for the comment. Good Answer. That was a developer kinda answer. :)
    I would like to believe that enable/disable property of an object makes it clickable.

    How about a non-hyperlinked gif which is visible? Is it clickable?

    @Parimala - Thanks for the comment. I am a reader of your blog and enjoy it. Your definition of clickable is good.

    My definition was:
    A clickable object is that object which when clicked (by mouse-click, keypress, finger touch/stylus touch on a touchpad etc.) would undergo state change.

  8. When I said, send a request to the backend, I had meant 'not doing nothing'!! ;) ...So a space on any interface when clicked, if the result is 'no change', then its unclickable!! I am just a non-techie, so my apologies if i tried sounding like one....;)

  9. I don't know in what context you were thinking when you asked, explain "clickable".

    1) When I use my fingers to switch on or off few electric appliances, I hear a noise as click and feel those switches and buttons of electric ware are clickable.

    2) When I use my fingers to use the remote of TV and radio, I feel the buttons of remote are clickable.

    3) When I use my fingers to dial number in number pad of telephone or mobile phone, I feel those are clickable.

    4) When I use cameras, I feel the buttons in them are clickable.

    5) When I want to lock a door by turning the knob and pressing the button it has, it locks when I click the mid part of the lock. I feel this mid part in knob as clickable.

    6) When I use bell in a cycle, I feel the bell's lever is clickable.

    7) When I use the horn and indicator buttons of a motor bike, I feel they are clickable.

    8) When I use printer, fax and photocopy machines, I feel the buttons with them are clickable.

    9) When I stand in front of elevator or inside the elevator, I feel the button it has are clickable.

    10) When I want to draw cash from ATM, I will use the buttons it has. I feel those buttons are clickable.

    11) When I click on the head of the pen I have, the nib comes out. And clicking on the head of the pen again, the nib goes in. I feel the head of pen as clickable.

    12) When I want to lock & unlock the doors, windows and dickey in a car, will use buttons in car. I feel these buttons as clickable.

    13) When I press a button in my shirt, it made a noise that sounds for me as 'click'. I feel the press button as clickable.

    14) When I stretch and twist knuckles in my fingers and toes, it makes a noise that sounds for me as 'click'.

    15) I had a lock that needs no key to lock. It just needed a click to lock. I feel the lock is clickable with the sound it makes when locked.

    16) When I typed these words, the keys in keyboard, mouse buttons and GUI objects on the screen I saw, looked like clickable.

    17) When touched the screen of touch screen equipments and gadgets, I feel the objects seen in screen are clickable for me.

    For all these actions which I felt as clickable, witnessed responses and no response also. Sometime by looking at it, I was able to see how that response came. And in some cases it would had been interesting if found how the response came, if I was able to bare the costs for knowing it.

    From few observation written above and learning, for now I understand clickable as -- something that needs external stimulant action for the response or trigger.

    But, not sure it will:
    a) Response always for clicking it.
    b) Remain clickable all time.

    When I learn something new with clickable, my learning may change.

  10. @Ravi,
    Thanks for detailed response. However your first line summed it all.
    You questioned about the context. That is a good trait of a tester.

    Most of us here assumed that we are talking in context of software.

    To answer your question,
    a) a clickable object would always respond to the click action.
    b) may/may not remain clickable depends on how the object was created to behave. Generally, it remains clickable.

    @The Devil's Advocate:
    "Not doing nothing" is good way of explaining it. Thanks.