Saturday, November 7, 2009

Does your testing catch Cockroaches ?

The year 2009 saw one of the potentially worst recessions in the history often (at the earlier stages) getting compared with Great Depression era post World war-II. Luckily for the current generation, the impact of current recession hasnt been as strong as Great depression but for sure this time has been one involving stupendous learning for the world economies. While most of the organizations and individuals remain cautious in their economic outlook, there has been a far reaching impetus laid on creativity, innovation to come up with cost effective and efficient ways of doing things. This period has also given birth to many interesting theories pointing to the cause of current situation to many similar topics. One such theory is Cockroach Theory.


What Does Cockroach Theory Mean?
A market theory that suggests that when a company reveals bad news to the public, there may be many more related negative events that have yet to be revealed. The term comes from the common belief that seeing one cockroach is usually evidence that there are many more that remain hidden.

Investopedia explains Cockroach Theory
For example, in February 2007, subprime lender New Century Financial Corporation faced liquidity concerns as losses arising from bad loans to defaulting subprime borrowers started to emerge. This company was the first of many other subprime lenders that faced financial problems, contributing to the subprime mortgage meltdown.
In other words, the fact that one subprime lender (one cockroach) faced financial problems indicated that many other similar businesses were likely to face the same issues.


Source for above text in Italics: http://www.investopedia.com/terms/c/cockroach-theory.asp

After reading the above information, it made me think- Is there any similarity this theory has with Software testing ?
Can the negative events referred to in above description be equated to bugs ? Negative events are also referred to as cockroaches i.e. even if you manage to slay one cockroach in your house, be assured there are quite a few hiding in the vicinity. Does this sound like a similar situation for us testers ? Even if you find one good bug, there are always more hiding in the closet.
This is especially true whenever the changes are introduced in the Software product be it as huge a change as an architectural change or as small a change as a minor UI bug fix. Each change introduces cockroaches in the Software code and it is left up to the skill of a Software tester to find it as soon as possible. I have normally seen the tendency of developers to come and defend any change done saying only a minimal testing is enough. Testers should be wary about such statements and plan their testing only after a thorough analysis of the introduced change. For example, Every bug fix introduces a change in Software product. More often, the tendency of testers is to only execute the steps mentioned in the bug report to verify the bug fix. While this may be good to make sure that the mentioned behavior in the bug report is fixed but this approach in no way ensures that the “change” introduced by the bug fix is tested properly. This “change” often gives birth to new cockroaches which because of lack of good planning to test “change” gets found quite late.

Often during the project, testers tend to give up or relax after a major bug is found. When you are feeling like relaxing next time, just think of the Cockroach theory!

I would like to hear your experiences around cockroaches in Software testing. Did you come across any ?

Note:
Inspiration of this post comes from this article by Tathagat Verma

No comments: