Tuesday, March 6, 2012

Where was this option till now?

Launch Twitter on any browser, login to your account and note the icons displayed next to the Search field. An icon when clicked displays your profile details and other options and 'Compose new Tweet' icon. Now, lets get to the scenario which prompted me to write this post.

I was following a particular conversation on www.twitter.com. A conversation is different from an isolated tweet as you will a tweet in reply to another tweet. Isolated tweets are individual tweets and not typed using the Reply link. You can recognize a conversation by the text 'In reply to SomeUsername' below the tweet.
Once you click on the 'In reply to SomeUsername' link, the entire conversation is displayed.

And if you notice carefully, once you click on the link, you will see an additional icon next to the 'Compose new Tweet' icon. Where was this icon till now?
What will you do if you were the tester? Let me make it very simple - there are only three icons to be tested. The icon to see more details, the 'Compose new Tweet' and the 'Close all open Tweets'. When you launch twitter, you will not see the third icon. Let us relate this behavior to the software we test everyday.

There might be options or functionality which are no so obvious. In fact, they might be enabled based on some action. These options might not be displayed by default. I think this is an interesting situation for a tester. Many times, a tester has to focus on things which are not just obvious but what is hidden behind the obvious.

As a tester, what will you do? I am not interested in answers like 'As testers, we will receive requirement documents which will mention all the functions.' or 'I test based on what the programmer asked me to test.'
When I thought about such scenarios, these questions came to my mind:

  • What are the hidden functions?
  • Are they important functions? Should they be hidden by default?
  • Is the user informed about such functions? Should the user be informed that some options are hidden? I am thinking of contexts where displaying all the options by default is not a good idea. Maybe games where you would like the user to discover options. 
  • Have you tested for all of the hidden functions?
  • How do you know if you have tested for all the hidden functions? Who has the list of all the hidden functions?
  • Why are are some functions hidden? What should be the criteria for hiding a functionality by default?
As a tester, this exercise should be interesting. Look at your software and discover the hidden functions :)
Who knows, you might find a bug that was hiding from day 1...

What other questions come to your mind. Let me know through your comments.

2 comments:

Jasminka said...

Hi,

I don't post on twitter, just read so I am not familiar with all the button/icon options. But very observant of you. Well done. My first logical assumption (how wrong it may be) would be that some actions can trigger certain option that otherwise are not there. If some options are not relevant in all scenarios/situations/circumstances of the current moment then they may not be displayed, but as soon as you do something where another possibility is enabled then the icon/option/button may emerge. But again, twitter actions are not my thing so I wouldn't know what triggers what. Still a very interesting thought from you, a good tester discussion.

Regards,
Jasminka

Jari Laakso said...

Hi Ajay,

Interesting post!

First thing what came to my mind when I saw that functionality was "can I run it when it's not visible". Usually there is a way to trigger the function nevertheless it's not visible. To answer to this question, you need to find out how it's triggered and what all affects on it. This raises up a lot of new questions and test ideas.

Somewhat similar thing is seen for example on Windows when using File Explorer. Right-click on empty space, folder name or file name all open slightly different context menu's. When I saw it the first time, my mind was full of questions.

Have a great week!


Best regards,
Jari