January 31, 2013

The Early Bird Catches The Bug

At some point in our lives we’ve all have heard the famous phrase that health and medical experts always try to embed in our minds: prevention is better than cure. We all know it makes perfect sense. It would be far more beneficial to prevent any sort of illness or disease from happening rather than contracting that disease and trying to cure it thereafter. By that time, a virus might have multiplied to an extent that it becomes uncontrollable and then it would be too late.

The same principle can be applied to software testing.

If, for instance, bugs are being identified in the early stages of development, the project would benefit immensely. The more bugs are trashed out in the initial stages, the more fixes are being made, and the lower the effort required to fix these bugs is. Hence, the smaller, simpler modules that make up the larger, complex ones turn out to be much more robust. In fact, the Agile philosophy states that testing should be integrated as early as possible and in parallel with development. Test early and often. We live and die by this maxim.

Once I joined a project which was already a few months into development. A lot of the core functionality for the project had already been developed but not yet tested. I had to keep up with development in some way or another.

Naturally, the rest of the team would not wait for me to catch up as they had their own deadlines to meet. I had to work longer hours to present my own bug reports before the development team forget what they had done a couple of months back. My stress levels went sky high for the first few weeks, making it very difficult for me to focus on requirements and think about different test scenarios.

Apart from having to sustain a high work load, the product itself can suffer considerably. As I mentioned earlier, if the problem is not identified at the root, other modules might be damaged by the same problem in a domino effect. In my case, the process of bug fixing was taking much more time than expected. Certain issues in particular that were being brought up led the developers to trace back work they had done ages ago. When applying fixes to their work there was a high risk that other areas might have been affected as well.  Surgical caution needed to be applied so as not to mess up anything apart from adding unnecessary pressure on the developers.

Like a virus spreading in an organism, software bugs can also infect a whole system. If something crucial is not identified and dealt with in time, the repercussions can be catastrophic.

Just one of these bricks breaks and the whole wall collapses.

Picture a building being constructed brick by brick. If some of the bricks laid out at the foundations are cracked, missing or have some sort of defect, the building could collapse. The more floors and levels are added on a weak foundation, the greater the chance of failure.

The same applies to software; if testing is not being carried out from the beginning, chances are that bugs might go on unnoticed. So once again, test early and test often.

Confessions of a Tester is written by Johnny, a test leader by profession and friend of ReQtest’s. Johnny loves clean code and is suspicious of anything that seems to be completely bug free. Apart from bug tracking at his day job, Johnny plays guitar, watches action and gangster movies and is a great fan of comic books and superheroes. This blog is a chronicle of Johnny’s Software Testing Nightmares.

Share article