Monday, October 15, 2007

Is "Creative pause" a possible solution to minimize "Inattentional blindness" ?

Imagine a tester is working to test a last minute hot-fix of a product (which was found just before it was going to be released to a millions of consumers). He goes through the steps required to "test" that hot-fix and declares it to be fixed. A different group of testers working in a different location (and in the same project) tests the hot-fix on the same build and they found that though the bug was fixed but it resulted in some different behavior that is potentially critical from end-user's perspective.
Though there can be many reasons why the first tester missed the bug but one of the most likely reasons can be "Inattentional Blindness" (Referred to as "IB" in remainder for this post)
I was going through Black box testing presentations and videos by Cem Kaner and James Bach can came across this behavior which can have a tremendous impact on tester's effectiveness. The above situation that i have cited is not an hypothetical one but something that i have seen happening in my experience very often. And such a situation, when it occurs during the highly-critical release phase, often brings out the inadequacies of testing and there-by giving the chance for management to question the credibility of Testing group. In my experience, in the crunch situations (like the one mentioned above) where the focus is only on a certain aspect of product (hot fix in above case) and for a very limited duration- is when a tester is most likely to fall in the trap of IB. Ironically, these are the situations when usually there is a lot at stake and mistakes are the last things anyone would expect.
As an example that I can cite- I was involved in managing a team testing one such hot fix. People involved in testing demonstrated a great deal of commitment and ownership to test and release the hot-fix successfully by testing overnight and on weekends. Later on it occurred that-though the hot-fix resolved the intended issue but the testers missed to pay attention to cosmetic (but important) issue and released the fix with one of the buttons reading- "Clock here" instead of "Click here". Needless to say, such defects make the product (how-so-ever feature-rich, bug-free it may be) look unprofessional and root cause in this case was IB (probably one reason can be because the testers were involved in testing tirelessly without much of breaks in between).

All this leads to a question-
- Is there a solution to avoid "Inattentional Blindness" in Software testing ?

IB appears to be a phenomenon that is quite prevalent/common in human beings. Probably, that’s the reason for many common mistakes that a human does. Philosophically speaking, Going by the precept- "To err is human", i don't think it is entirely possible to get away from IB (i just wish i had enough data points to prove this- it’s something that i intend to explore), though we can try to form the ways to minimize the same.
The foremost way to minimize the occurrence of IB is to create awareness in the testing group about IB and its extreme effects. It is important for the testers to know about the reasons why bugs get missed in the testing cycles (IB being one of the potential reasons of the missed bugs). Being aware and conscious about the fact can help testers be more alert.
In one of my previous post i talked about the concept of Creative Pause. This is something that i feel can go a long way to help testers minimize the occurrence. Indulging in Creative Pauses are more like refreshers to testing activity. It helps recharge the cluttered minds and can help a long way in holding the attention spans of the testers, thereby making them less prone to traps of IB.
From my experience, practicing Creative Pauses requires a lot of discipline but if done in a right way can improve effectiveness (and Creativity) many fold.

Any more ideas...

Keep testing creatively!

Blog Action Day


Today(15th-Oct-2007) is a Blog Action day . Blogging has become quite an revoultion all around the world and over a period of time it has become one of the most powerful communication medium. The purpose of Blog Action day is to bond all the blog users (owners and readers) towards a common cause. This time, the cause is "Environment".
Through this channel i would also like to bring about the awareness of one of the Environmental issues- the usage of paper.

I would like to cite some facts- (courtesy-

* It takes 17 pulpwood market-sized trees to make a ton of paper, or one tree makes about 11,500 pages of 8.5 x 11 20-pound paper.
* Each one million pages of paper not printed saves 85 pulp trees.
* That ton of paper, when disposed of, takes up nearly 8 cubic feet of public landfill space.
* To produce one trillion pages of paper takes 8.5 million acres of trees, representing an area larger than the country of Belgium or the state of Maryland.
* It takes 390 gallons of oil to produce a ton of paper.
* In prehistoric times, 60% of the earth's surface was covered by forests - today that amount has been reduced by 30% and is still shrinking.
* That public landfill is approximately 36% waste paper products.

* Each person in an office on average uses 2.5 pounds of paper each week.
* The average office worker generates between 120 - 150 pounds of recoverable white office paper a year.

Aren’t these figures Startling ?
Aren’t we responsible for reduction of natural resources ?
Aren’t we responsible for turning green cities to concrete jungles ?
Doesn’t this act as a wake-up call for us to do something about it ?

Even though most of us always have an excuse that- "We don’t have time and we are too busy", I feel there is a lot that we can do even not being directly involved. Consider this-
1. If your office uses Paper cups for Water/Coffee etc. Refrain from using the same. Have your Coffee mug instead. How long does it take to follow this practice ? Probably, only the time/money involved i purchasing a Coffee mug.
2. If you still want to use Paper cups- Do not only use them but consider re-using them (atleast for Water- not coffee).
3. Do not print unnecessary papers. One of the best email signature quotes that i have seen is-
Please don't print this e-mail unless you really need to.

Think GREEN !!

4. Even if you have to print, try going for double-sided printing or multiple pages in a single sheet (provided you can read, of course).
5. Consider using personal cloth napkins rather Paper towel and tissues.

These are only a very small way to contribute but of done on a consistent basis by everyone, it will sure make a enormous difference.
Lets start a revolution...Together!

“ Every person is the right person to act.
Every moment is the right moment to begin.”

Jonathan Schell, author, Fate of the Earth

Friday, October 12, 2007

Soft Skills that Make a Tester- Redefined

In the Year 2003, I had written an article on the topic- "Soft Skills that Make a Tester" ( as a part of Original section on Stickyminds website. In this article, I had attempted to list down the Soft skills of the testers that differentiate and helps the testers be successful in their jobs (in addition to Technical skills, of course!). Considering India Software testing scenario, I feel that early part of this decade was the time when there was a lot of emphasis on Technical skills and every other tester wanted to learn Automation and about how to do testing, test designing etc.(Its prevalent even now to some extent). In my experience, I came across quite a few people who left their organizations just because they didn’t get opportunity to work on Automation! Such was the extreme focus on Technical skills that Testers used to believe that "If you are not involved in programming, then you are not being productive".
Contrary to this belief, I think Soft skills are extremely important for the people in Software testing and this is something that is often found to be neglected by the upcoming testers. In order to become an all-round tester with great skills, Soft skills have to be given their due importance. There are many situations that we come across on the day-to-day work life as a testers in which one person perform better than the others just on the basis of Soft skills- be it winning an argument with developer on the basis of his/her communication or finding handling multiple tasks effectively because if superior organizational abilities etc.
In the mentioned article, I had tried to put focus of some of the important soft skills namely-
- Discipline and Perseverance
- Reading Skills
- Negative Thinking
- Communication and Interpersonal Skills
- Time Management and Effort Prioritization
- Attitude
Most of the testing practitioners will argue that this list of Soft skills isn’t complete. Even I agree with this and have to admit that I had to leave out some of the important skills in order to meet the word-limit requirement of the article.
I believe there is a lot of change that has happened in the way Software testing is conducted in many organizations since last 4-5 years or so. The terms like Security Testing, Stress Testing, to an extent Performance testing, White box testing, Code inspections by testing groups etc. which used to be in testing theory earlier, has gradually become a part of testing schedule and plans. I have seen this change in many organizations- i.e. the drift in focus from Only Functional Testing, Automation to different streams of testing as described earlier. There were multiple factors governing this change mainly- Expectations of customers, Post production bugs (and the noise generated by these!) and motivation to deliver ”complete" software to the market. This change has been a good one for the Software Testing fraternity and has opened up a myriad of growth paths- both horizontal and vertical, both Technical and Management paths for the testers. This has created the jobs for new Technical skills in the market and has enhanced the role of Software Testing in overall scheme of things.
This changed focus has also brought about the changes in the way Soft skills are perceived. Earlier, in my article I had classified Soft skills generically for Software testing profession. Now, with the shift happening in Software testing profession- every unique kind of testing requires certain specific Soft skills.
For example Security Testing requires a lot different mindset as compared to Functional Testing. A Security tester will need to have an attacker's mindset, always thinking of finding the ways to expose Security holes in Software. Also, the bug find rate for the Security tester may not be as high as that of a functional tester, so a Security Tester will have to show more perseverance and patience in dealing with testing. On the contrary, a Functional tester also needs to do negative testing but it is generally not as extreme as is required of a Security Tester.
The case of White box tester is even more unique. The tester in this case has to strike an effective balance between being a developer and a tester and he/she is often required to switch the roles with ease.
If you are new to any type of testing or any new work for that matter, it always makes the job easier (and thereby, increasing the chances of success) if one tries to approach the job by learning about the associated soft skills first. In my experience, I have found it easier to get into new role and learning new skills by first working to master the soft skills required and learning the technical skills along-side.
Watch out this blog space for more on the variety of skills sometime soon!

Keep testing passionately!

Tuesday, October 9, 2007

Software Testing "paused" Creatively

"Being creative may just be a matter of setting aside the time needed to take a step back and allow yourself to ask yourself if there is a better way of doing something. Edward de Bono calls this a 'Creative Pause'. He suggests that this should be a short break of maybe only 30 seconds, but that this should be a habitual part of thinking. This needs self-discipline, as it is easy to forget."

Edward de bono has brought out an amazing concept in the above lines. The concept of "Creative Pause". In my experience in working in the field of Software testing, i have found "Creativity" and "Innovation" as something everyone feels as necessary to grow but at the same time have found people to be clueless as to how to be Creative and Innovative. May be in a feedback session- If tester is indicated to be creative and Innovative in carrying out day-to-day tasks , he/she is often seen wondering-
"What do you want me to do ?"
"What is it that i am not doing right now that you want me to do ?"
"Am i not performing to the Manager's expectations ?"

I was reading one of the books by Edward de bono's (For those who don’t know, Edward de bono is widely known as "Father of Creativity") and he so rightly mentions that- "Creative thinking is skill. Its not a matter of individual talent.
Being a skill, Creative thinking is something that can be developed and acquired by practicing the right things, the right way of thinking.
In one of the my previous posts , i have mentioned that- "Creativity is an essence of Software Testing." Probably, a trait that this profession can gain the most from.

The concept of "Creative Pause" is something that can be applied in a variety of situations in Software Testing. This concept gives an indication to a tester on how he/she can go about on the path of creativity.

Considering the situations-
- A tester performing Exploratory testing for a few hours often gets into a situations when all the ideas and enthusiasm starts drying up. It is at this stage, a brief Creative Pause can do wonders. The Creative Pause can open up some of the ideas that a tester never thought about before and he/she ends up with an unimaginable high value bug.
- A tester in a situation when he/she is struck with so-called monotonous chores, a creative pause can give an immense value to find better ways of doing things that are considered to be bane for Software testing profession.
- I have found Creative Pause mostly working in a situations when one is attempting any problem solving be it solving test coverage related issues, test execution issues, people/management related issues etc., taking a Creative pause and assessing the situation gives immense value and proactively gives chance to rectify any errors.

The intent of this post is to introduce this amazing concept to software testing. Keep watching this blog-post on more of "Creative Pause" Experiences.

Always remember, as Edward mentions- "There is no point being different for the sake of being different. Creative idea must have a value.

Keep testing creatively!

Friday, October 5, 2007

Globalization testing- The High business impact testing

Wikipedia defines Globalization as follows-
Globalization (or Globalisation) refers to increasing global connectivity, integration and interdependence in the economic, social, technological, cultural, political, and ecological spheres.

With most businesses across the world following Globalization trend, the world has rapidly become a well-connected place (thanks to the advent of Internet and other communication technologies). Any news that happens in any extreme corner of the world gets known to everyone in seconds. This is very different from how world used to operate in may be 10-15 years earlier.
The business model for almost all the successful Software products and services have had its basis in Globalization i.e. the products are developed and delivered for International markets. One of the huge advantages in case of Software business is its mode of distribution through Internet. This makes the products accessibility in the different countries far superior as compared to physical products. With more and more Software products going global, the Globalization testing has assumed a mammoth importance. It has been in the Project Life cycle of all the top notch product organizations.
Consider this- Windows XP is available for 90 plus locales all across the globe. This proves the kind of geographies, market , millions of customers and the immense business impact that is dealt with when Globalization testing is done.
Keep watching this blog space for more on Globalization testing experiences…

Thursday, October 4, 2007

Do you love Software Testing ?

If you want happiness for an hour...take a nap
If you want happiness for an day...Go for a picnic
If you want happiness for an week...Go on vacation
If you want happiness for a month...Get married :-)
If you want happiness for a year...Inherit wealth
If you want happiness for a lifetime...LEARN TO LOVE WHAT YOU DO.

(Quotes referred from the book- "Management Thoughts for the Family" by Pramod Batra and Vijay Batra)

The above excerpt talks so rightly about true happiness/success lesson out of life. This is something thats applicable for any kind of work that exists in this world. Software testing is no different. Consider the situations-
- A tester is struck with a bug that is not reproducible at all the instances. In order to reproduce the bug he goes through the whole series of steps again and again. A passionate tester in this situation will persevere to find a better alternative and a non-passionate tester is most likely to crib his job.
- As part of a daily routine, a tester has been asked to collect data about test cases executed, bugs logged, etc. A passionate tester will consider this as an integral part of his job and will strive to understand the context and provide as much information as possible to assist with decision making. A non-passionate tester will barely provide the asked information and as usual blame the world for making him do a silly job.
- After discovering a defect, a tester is supposed to write steps to recreate the defect. A Passionate tester will write the steps in such a way to sell his defect and strive to be perfect at Bug advocacy. A non-passionate tester will take this as just another routine job and is most likely to make more mistakes in reporting the defects. (i don’t mean to say that Passionate testers don’t do any mistakes)
- A tester is asked to take handle multiple things. Mostly in the projects when different phases of project life cycle overlaps (e.g. Test case creation overlaps with actual testing of the project), a tester is required to do multiple things at once i.e. test case creation, testing the software, documenting results etc. all at the same time. Passionate testers see this as an opportunity to excel and demonstrate desire for responsibility by effectively managing time and efforts.
- Tester A comes into work and constantly gives suggestions to improve the status quo. Tester B comes into work and just do what he/she is asked to do. No prizes for guessing which tester loves his/her work more than the other.
- A tester gets promoted to a Test leader. Considering that he/she would have ideally tested for past 5-6 or more or less years,he/she starts showing no inclination towards hands-on considering hands-on testing is supposed to be done by Engineers and not leads! Such a situation is very much prevalent in Software testing fraternity. A passionate tester would never lay his hands off testing. He/She will be always on the look out of extra-ordinary, unknown bugs no matter what designation he/she holds.

Such situations and many many other situations clearly demarcate a passionate tester with a non-passionate one i.e. the one who loves his/her job vs. the one who doesn’t.
Passionate testers always have something unique to offer and that may be in terms of their thought process, the way they carry the day-to-day work, their outputs, efficiency, the way they give suggestions and improve things around them tirelessly. Passionate testers are never satisfied with what they achieve and always strive to find unimaginable bugs of high value and priority.
There is only one way out- Love your job or find something that you love doing and happiness/success will be all yours.
Keep testing passionately!