Monday, July 5, 2010

Presented at SoftTec 2010 Testing conference

I got to present at the SoftTec 2010 Testing conference this weekend (on 3rd-July-2010). The conference details are available here .

It was after quite a while that i presented on a public forum and realized that i should be doing it more often.
This conference was different from the other Software Testing conferences (QAI, STeP-In Forum) that i attended in the past. Some of the key things were-
- Test Professional track and Test Leadership tracks were different and the presentations ran parallely.
- The conference was attended by around 700 Software Testing professionals right from Interns to CEOs, the audience consisted of one and all. Infact, this is the largest gathering of Software Test Enthusiasts that i have seen so far.

Coming to the topic i presented, it had to be something i eat, sleep and live (as i had only 2 days to prepare) and it was- Globalization Testing- Getting your Software World Ready .
I have posted the presentation here

I think I was able to complete the presentation just-in-time in the allocated time and credit to audience for creating meaningful conversations by asking some challenging questions.

Some Questions that got asked in Q/A session:
- How many languages have you been involved in testing as a part of Globalization testing ?
- I have heard that Sanskrit is the best language for Software Globalization. Are you aware of any Indian organization who are involved in researching about Sanskrit Localization ?
- What considerations we need to be putting towards Database side when we are talking about multilingual applications ?
- I am working to test application mostly in around 10 Indian languages. I am under pressure to devise Test strategy in such a way that i dont spend too much testing effort. How do i do it ?
- Can you tell something about Automation Strategy to be used for multilingual applications ?
- If i am involved in testing multiple languages, Do i test everything (as i do for Enhlish language) in all the languages ?
- If i am testing say login of the application say Japanese application, one Japanese character may occupy more space than English character- how do i plan for such a test ?
- I am involved in testing an application and sometimes i am required to copy labels so that i can check the meaning using some Online translator. Can this be done ?

I think this covers all the questions that i could recollect. I will be taking answers to some of these questions (some are already explictely covered in my previous posts) in the upcoming blog posts.

Overall, it was a hugely satisfying experience.

Update on 16th-Oct-2010:
TheSmartTechie magazine in their Aug 2010 edition ran an article on this conference. It had some comments for my presentation as well. Read below-






Sunday, June 27, 2010

Can procrastination be a positive trait? Does reading help shape one's mind?

I know the title of this post may seem disjointed but first things first, a story below-
Part 1 of the Story:
"Procrastination is a thief of time"- With this very quote Edward Young, i got introduced to the word Procrastination years back.
Then this quote prompted me to look at the dictionary for the very meaning of this word and it said "To put off doing something, especially out of habitual carelessness or laziness". I also inferred Procrastination on the same lines as Absent mindedness.
While doing my Handwriting Analysis basic course (this course taught me determining different personality traits using in isolation using handwriting), I learnt Procrastination to be associated with word "delay".
More recently, while reading one of the fine books i have read in recent times a calmer you , the author described Procrastination as tendency to keep putting things on the back-burner, till the time they snowball into a crazy overload.
Over the years, i attended various Self-development seminars and all of these made my belief about Procrastination being a negative trait more firm.

End of Part 1

Part 2 of the Story:
It was not until i read two of the books that i quite admire that i started to change my rather established perception about Procrastination. First of the two books is Eat that Frog . It introduced me to the term "Creative Procrastination" and that got me thinking "Wow, can we apply creativity to Procrastination". The principle of Creative procrastination is based on a simple fact that we all know but somehow don’t acknowledge as much. The fact is that one cannot do everything that one has to do. You have to procrastinate on something. Therefore, procrastinate on small tasks. To me, the beauty of this approach is the fact that it encourages us to acknowledge the fact that everyone procrastinates and its only very human to procrastinate. This very acknowledgement releases a lot of stress that we often associate with this word. And secondly, it satisfy this inherent urge to procrastinate it allows us to procrastinate more on posteriorities than priorities.

The concept of "Creative procrastination" sounded all fine and sensible to me as suggested by the book- "Eat that Frog". It was not until i read Secrets of a Buccaneer-Scholar: How Self-Education and the Pursuit of Passion Can Lead to a Lifetime of Success by James Bach , that i could visualize "Creative Procrastination" in action. In this book, the James shares a lots of self-education heuristics that has made him successful. Few such heuristics are- "The Procrastinate and Push Heuristic" and also "Plunge in and Quit Heuristic". James says-

Procrastination occurs when i am committed to a task, I have the opportunity to do it, and yet i do something else that seems less important. I often procrastinate when i need to study, learn, write or synthesize new ideas. I call that creative procrastination.

The Self Learning heuristics mentioned are much based on the idea of creative procrastination.
End of Part 2


My Learnings #1: Procrastination can be a positive trait
Quite obvious inference is that Procrastination is not a bad trait, after all. More important than that- Never be judgmental on Personality traits. One of the lessons that i learned from my advanced course in Handwriting Analysis is that it is not quite right to be judgmental about human personality traits. There is nothing called as a good trait or a bad trait. If you look around the workplace, one of the easiest thing is to be judgmental about the people around you. "That guy is just a Lazy fellow", "My boss doesn’t have listening ability", "He is very stubborn in his approach" and many other such statements or judgments, should i say do rounds in the workplace and more often these are based on first thought or first impression, which is often not so right.

Reading the above stories word Procrastination, would you dismiss it as a negative trait as i used to do ? I guess No. Most of the traits have meaning that are context based and judgments that we derive are without the knowledge of that context.

My Learnings #2: Reading does help shape one’s mind in a big way
One of the more profound learnings that i had in the journey from Part 1 of the story to Part 2 is about the power of reading. Most of our preferences and perceptions gets formed based on what we consume from our environment. Reading is one sure way to feed our brains. My perception about Procrastination as a negative trait got formed largely due to the reading and then the counter perception also got formed due to reading. As is evident in this case, reading resulted in collision of ideas in the brain and it eventually bombarded the incorrect perception and resulted in a more balanced view about procrastination. More i think about it, the more i realize that to be more the better ways to learn i.e. read about contrasting ideas, breed them and let them collide in mind and the end result will be you- a person with balanced opinions and better perspectives about the things around you.

Well, to admit writing this piece has in itself been an exercise in creative procrastination. I started writing a while back but kept holding back till i had all the ideas in place and the ideas were presented close to the way i wanted them to be in. As James Bach inferred- Creative mind knows no deadlines!

Do you still find the title of this post disjointed ? I think No, If you have read till here!

Tuesday, June 8, 2010

Uncovering myths about Globalization testing- Approach to generate Localized test data- II

This post is in continuation of one of my previous posts on the subject of Localized test data generation. To recap the suggested approach, here it is-
- Come up with the appropriate classes of the data as per the structure of the language.
- Once the classes are identified, enture to pick up test data in a way that each class has a representation in the text data.

In the previous post, i gave an example about classes specific to Spanish language. I though to extend this further to include other European languages German and French as below.

French Language Input characters classes:
Capitals:
À,Â,Ä,È,É,Ê,Ë,Î,Ï,Ô,Œ,Ù,Û,Ü,Ÿ (commas are only used as separators)

Lower case:
à,â,ä,è,é,ê,ë,î,ï,ô,œ,ù,û,ü,ÿ

Punctuation
Ç,ç,«,»,€

Special French representations:
HTML entity codes (HTML entity codes are the codes which allow browsers and screen readers to process data as the appropriate language) e.g. for the character á, the HTML entity code is á
HTML entity codes for French language are listed here .

English Lower case characters:
a-z

English Upper case characters:
A-Z

Numeric representations:
1,2,3,4....

Special characters (EN):
~`!@#$%^&*()_+-={}[]|\:;"'<,>.?/

Any Known problematic French characters (not included above):

Some Real French Test data:
The purpose of this class is to simulate some of the real time test data as might be used by customers for some fields. Microsoft Terminology Translations offer a good source to simulate real strings that are used in Microsoft Terminologies.

**********************************************************************************************************

German Language Input characters classes:
Capitals:
Ä,Ö,Ü,ß,€ (commas are only used as separators)

Lower case:
ä,ö,ü

Punctuation
«,»,‹,›,„‚“‘”’–,—

Special German representations:
HTML entity codes (HTML entity codes are the codes which allow browsers and screen readers to process data as the appropriate language) e.g. for the character á, the HTML entity code is á
HTML entity codes for German language are listed here .

English Lower case characters:
a-z

English Upper case characters:
A-Z

Numeric representations:
1,2,3,4....

Special characters (EN):
~`!@#$%^&*()_+-={}[]|\:;"'<,>.?/

Any Known problematic German characters (not included above):

Some Real German Test data:
The purpose of this class is to simulate some of the real time test data as might be used by customers for some fields. Microsoft Terminology Translations offer a good source to simulate real strings that are used in Microsoft Terminologies.

Watch out this space further for Test data classes for Japanese, Chinese, Korean and other complex languages.

Published- An article in Testing Experience Magazine

Sunday, May 23, 2010

How did you respond to other's work today ?

Scenario# 1:
A test engineer working to test an application seemingly works hard to find an all important bug that is potentially a show stopper. He later takes care of all the possible details to log the defect. This defect goes into the series of confrontations with the Development team and after much of back and forth, the development team agrees to fix the defect. This makes the test engineer happy but he does not get to hear any words about his effort from his superior or for that matter none of his colleagues respond back on good skills that he displayed.

Sounds a familiar situation! It might be. I think most of us have gone through such an event or may be would have gone through it so many times that we have stopped caring that someone would respond.

Scenario# 2:
Reciting the above story again and this time say the end response is changed. The superior of the test engineer looses his temper on him when the confrontation with the Development team was happening without understanding the bigger picture of what he was trying to achieve. This definitely is an unreasonable response but not a unique one. Most of the people face the situation when they get reprimanded prematurely. I have faced it . You must have faced it too.

The question here is not how often you have faced outcomes in Scenario# 1 and 2 in your work life or how you responded when faced with this situation. But i think the bigger question seemingly is what are the prime factors that lead to such situations ? The prime factors not pertaining to the individual at the receiving end but largely why such situations arise.

Primarily, Why does an individual seek a response to any work done by him or her ?
Note that i have chosen the word "response" instead of "feedback" here. The prime reason for that is because the feedback can be positive or negative but the response to a particular situation may vary depending upon the context.

Any individual may seek a response to his or her work for myraid of reasons. One of the greatest reasons is Self esteem needs. If an individual feels he has done a good work,depending upon a kind of person he/she is- may seek approval from others to feel good himself. Self esteem needs are the most basic of the human needs and if it is not met, the individual will tend to be discouraged in a longer run. Every employee in true sense seeks that "feel good" factor from the job he is doing. It is one of the intangible benefits that an organization can provide in addition to all the incentives etc.
Other reason can be seeking the ways to improve his or her efforts. By giving right response, an Individual can enhance the work performance manifold.
One way a response to work can help is showing what is the "right" way to do a task in a given context.

Does the response needs to be given only by his superior ?
The answer to this question may be tricky as it largely depends upon the Organization or team culture as setup by the Group head. Going by the traditional model, the feedback of a certain task is given by one's superior only. But the avenues of an employee to improve does not end at the Superior's feedback given the fact that Superior may be working under several external forces when undertaking a feedback session. The employees truly looking to improve upon their work skills do not solely rely on feedback from superior and seek the improvement ideas from all possible quarters in a professional manner. I strongly beleive that for a success of team, followership is more important than leadership. One of the key responsibilities of a follower is to seek feedback and also give feedback. The practice of giving feedback may vary depending upon the organizational culture. Please note that the word "Follower" is generally looked down upon by certain section of employees. In my world, a follower is the most important element of a team and plays a crucial role to make the leader, the team and the organization successful.

Ken Blanchard's "response model":
I think it is apt to discuss the "response model" suggested by Ken Blanchard in his book- the little book of coaching

There are 4 ways in which a coach can respond when the team member does some work-
1. No response:
It means no acknowledgement what-so-ever of the work done.
2. Negative response:
It means that the coach is always on the look out for a mistake and blasts off, if it happens (how-so-ever minor).
3. Redirection response:
It means that the coach helps the employee understand the correct way and helps redirect the energies of the employee towards the goals when a mistake or failure happens.
4. Positive response:
It means that the coach makes an efforts to find the positive things and bestows a genuine appreciation for the good job done.

The responses# 1 and 2 above are quite common in today’s work place and infact these responses are easy in a way and for most people it do not require any effort at all. It is very easy for the Coaches to come up with these responses being in their comfort zones. In my experience, the no response is sometimes more dangerous than a negative response as it instills the doubt in an employee’s minds as to whether his work is worthwhile to the organization afterall.

Most coaches struggle to give responses# 3 and 4. Giving an heart-felt praise or an honest redirection requires guts and courage to leave that typical comfort zone- a skill that doesnt come naturally to many. But the fact of the matter is that a Redirection response or a Positive response goes a long way in ensuring that intent of response is internalized properly.

How often do you choose Redirection or Positive response in your coaching ?

Wednesday, May 12, 2010

Uncovering myths about Globalization testing- Approach to generate Localized test data

Myth 23: It is possibly the right strategy to randomly pick the test data specific to the localized language you are testing

While performing Internationalization testing, a tester largely deals with testing the product on the languages not known to him. Imagine a tester from India testing a product on Spanish Operating system. While it is largely possible to do the Internationalization testing without knowing the language
but there are certain traps related to this ignorance of the underlying language that a tester should be aware of. One of such trap is usage of test data.

Very often the lack of knowledge of language prompts the tester to just use a "few" input characters of the language under test while ignoring the rest. This is obviously a dangerous situation as it leads to some holes in the test coverage. The below example illustrates what i was mentioning here-

E.g. considering that a tester is testing Spanish langage, he is most likely to include Spanish specific input characters such as- á,é,í,ó,ú,ñ,ü and may be more investigative ones will use there above list in CAPS, or in combination with English characters, numbers etc. But the basic question that most of testers resist to ask is whether my test data is covering all the possible Input characters for the language under test ?
May be one reason this question is not asked is because of lack of complete knowledge of the language under test. Some may argue the validity of this question with an argument- Is it really necessary to test all the possible Input characters that a langauge offers ? This is a fair questionconsidering say while testing English language- if a tester uses "a" as a test data or if he uses "z" as a test data, wouldnt the result be the same all the time ?
May be Yes.
But when we are considering the test data generation of Localized characters, there are some more crucial points to be considered. This is what i intend to cover in the upcoming sections with a idea on how the test data of "foreign" languages can be better classified and used while testing.


How do i know which Input characters should be tested for a particular language ?
I have generally found this website quite good and informative. This has separate web pages for different languages and the tester can easily see which Input characters define each language. More on this in upcoming examples.

Is there a reasonable way to ensure that the localized test data gets appropriately covered ?
This website would not only allow you to know the characters used in a particular language but also the appropriate ways of classifying the same.

In my experience, dividing the Input characters of a particular language in to appropriate classes is always a better approach. Let me try and explain using an example.

Consider Spanish language for example-

Webpage listing all the chatacter inputs:
http://tlt.its.psu.edu/suggestions/international/bylanguage/spanish.htm

E.g. the below section represent Input character classes for Spanish language characters in a boarder sense. And while coming up with the test data for a particular field say- Password, depending on the rules and the length accepted one or more characters from each of these classes can be used as a test data.

Spanish Language Input characters classes:
Capitals:
Á, É, Í, Ó,Ú,Ñ,Ü (commas are only used as separators)

Lower case:
á,é,í,ó,ú,ñ,ü

Punctuation
¿,¡,º,ª,«,»,€:

Special Spanish representations:
HTML entity codes (HTML entity codes are the codes which allow browsers and screen readers to process data as the appropriate language) e.g. for the character á, the HTML entity code is á
The reason to include these codes as a separate class is because if these codes are used separately as the Test data in an input fields, the application might interpret this as a single letter. This possiblity is espacially true for web based applications.

English Lower case characters:
a-z

English Upper case characters:
A-Z

Numeric representations:
1,2,3,4....

Special characters (EN):
~`!@#$%^&*()_+-={}[]|\:;"'<,>.?/

Any Known problematic Spanish characters (not included above):

The reason to include English Input characters in Spanish test data is that users generally use English along side with Spanish characters with some commonality being there in characters usage.
Further in our example- say is password is accepted to be 20 or less character length, some of the test data can be (notice that test data has one or more characters from each identified class).

Less than 20 characters
Áñº«gz24@

=20 characters
Üó€»sH224&ÜÍ¿¡

Greater than 20 characters
Ó᪫»tyKL7845`!@º

Far Greater than 20 characters
(If there are no limits on the UI)

0 characters
(blank)

Important point to note that each test data above includes atleast one character from the Input data classes identified for Spanish language above. That is the key as this approach helps ensure that all the classes of data is utilized appropriately and no Input character is actually left to chance.

Some questions related to this that i would be working to address in upcoming posts-
- The strategy to divide the Input characters into classes seems good for the languages which has limited set of characters like European lanaguages. Can this approach be used for Asian languages like which Japanese, Chinese, Korean etc. which deals with multiple writing scripts as well as thousands of characters ?
- In larger context, what could be the test straregy totest Unicode feature ? Unicode being one of the key Globalization features that is built in the product and should be tested comprehensively from the point of view of Globalization testing.

For a complete list of Globalization testing myths uncovered in the past, please visit here .

Thursday, May 6, 2010

Did you eat that frog today ?

Recently during a workshop on Exploratory testing Pradeep gave an exercise to the participants to test an application. After around 15 minutes of testing, different participants came up with different types and numbers of defects. The question that got asked next was obvious- Why do different testers find different types, numbers of bugs given the same amount of time ?
Interesting question, isn’t it ? What got demonstrated in 15 minutes is the story of every organization involving testing teams i.e. some testers find important bugs faster than the others. There can be several reasons one can think of for such a phenomenon but i feel at the core it has something to do with the ability of a tester to prioritize and execute the most relevant and important test at a given time. The skill of a tester including the testing skills, technical skills, product knowledge, soft skills etc. all help the testers to build this all important ability.
Generally, in work life this concept is of utmost importance i.e. one's ability to select the most important task at each moment and then executing it to perfection will have the greatest impact on one's ability to deliver on results. And thinking on an even larger frame, this ability is the basis of managing time better.
So, what stops a person from selecting and executing a person from doing the most important task for a moment. Again, a common thought process can lead to many responses but largely it has something to do with inherent habit of human beings to procrastinate or delay the uncomfortable tasks, how-so-ever important they may be to any given context.
Consider some situations-
- A person who is more of an introvert will often delay going to a large gatherings, even though it may be important and required.
- Coming into office, one might often delay doing the tasks involving confrontations.
- While testing some application, general tendency is to delay working of the areas where one has less knowledge.
- If one has to choose between two tasks of more or less equal importance, the general tendency is it choose one that sounds easy.
There can be many such examples in our day-to-day life where we procrastinate. I once read somewhere that Procrastination is a Thief of time. Quite true it is!

I recently completed reading a book called - Eat that Frog by Brian Tracy. To be honest, i picked it up from a book store because i just needed something to read but when i reached the end, i found it to be one of the more profound practical book on the subject of Time Management. So, this blog is dedicated to my learnings from this book.

Does this title of this blog sounds strange ?
It might and if someone thinks about it literally, it might sound disgusting also. This is based on what Mark Twain once said- "If the first thing you do each morning is to eat a live frog, you can go through the day with satisfaction of knowing that that is probably the worst thing that is going to happen to you all day long." So "Frog" here is a metaphor for the task you find ugly but it needs to be done.
The idea of managing time in a better way is to create time for yourself in a day so that one can get more done in less time. We often hear proponents of Time management say that we all have 24 hours, yet some get more work done and some get lesser done. This illustration is quite true, without doubt.

Rules in Frog eating:
Now that we know what a frog means, Yes, it is that ugly task that you hate to do i.e. given a choice in normal situations, you will never choose to do it. But at the same time, it will be most critical to your success in a given endeavor.

The first rule in Frog eating states something like-
If you have to eat two frogs, eat the ugly one first.

In other words, if you have two important and not-so-pleasant tasks to do, always choose the unpleasant of the two first. I think we as a human beings forms certain preferences as we move ahead in the life and these preferences always act as the filters to our thoughts. E.g. if a person has to eat 2 medicines to treat an ailment, one tastes sour and the other sweet, if a person has a preference for sweet he will tend to stay away from the sour medicine as much as possible. But the fact of the matter is that to treat an ailment, he might be required to eat both in right proportions.
Another situation- a creative person working to test an application, will invariably prefer to do an Exploratory test rather than a time consuming and repetitive task of verifying a single functionality for a long time. Suppose, the same tester is in a situation when the development team needs an urgent information on a bug, which requires him to run a same test 100 times to gather necessary data, what will this person do ? That’s the essence of the first rule of frog eating. Do the difficult task first, it will set the tone for the rest of the day.
The outcome of each day is based on the choices we make. Suppose if a person chooses to do easy tasks in his most productive hours of the day, it will mean that he has left the monstrous tasks towards the time when his mind is wavering, one can imagine what the outcome will be.

The second rule in frog eating is-
If you have to eat a live frog at all, it doesn’t pay to sit and look at it for very long.

Generally the way people show the dislike towards a certain task is by keeping it their list and dont do anything on it. Follow-up on tasks is a very common phenomenon at the work place. And the situation of following-up arises when one delays the task. The irony in this situation is that even after the delay, you tend to do the task because it was required. Knowing this, the better sense would demand - why delay in the first place!
Keeping an unpleasant task till the end of the day or even beyond makes one feel stressed and it is one of the reasons of people suffering from low self esteem, which then affects many other aspects of work and life in general.

So what are your waiting for ? Pick up yourself and do that unpleasent task thats sitting on your mind and blocking you from thinking clearly. There is nothing as exhasuting as an unpleasant, uncompleted task.
Try starting your day by going through this short video and acting upon what is being said.

Will be sharing more learnings in upcoming posts. Do share your thoughts around this ?