Software Testing - Is it underrated?

by 2:47 PM 0 comments
It goes by many names, Quality Assurance, Quality Engineering, Software Testing or in short Testing. It is a process of executing code with the intention of finding errors or what we call Software Bugs! Bugs, which if found in timely manner, can save significant time and trouble to the end user and helps maintain credibility of the software company. It does not take a software engineer to understand how important testing is!

One day I was explaining different roles of a software engineer to my mother. I explained her about programming, user interface, developer and tester. Her immediate question was, So testing is something which must be done by seniors and highly experienced people? I was speechless! But it makes sense, right? You are essentially evaluating the work done by others. Which requires you to thoroughly understand the product and technology. And only with years of experience, can you foresee the errors which developers usually make in coding.

Unfortunately, wrong! This is not the way work is done in the industry. And I had no explanation for why it is this way.

The short history of computer and programming is already filled with disastrous results caused by small mistakes in programming which could have easily been avoided.

Launch of Mariner 1 - Source
The famous Mariner 1 dangerously changed direction towards North Atlantic Shipping Lanes shortly after launch and had to be destroyed since faulty application of the guidance commands made steering impossible.
Reason? A mathematical formula which was hand-transcribed in the code was missing an overbar. This caused normal variations in the velocity to be treated as serious and incorrect corrections were made by the software which caused Mariner 1 to steer towards Earth. (read more)

Another, and rather more disastrous situation was narrowly avoided by Stanislav Petrov, Retired Lieutenant Colonel of Soviet Air Defense Forces, which otherwise could have led to World War 3, and possibly destruction of Earth. In 1983, An early warning system detected 5 missiles launched towards Soviet Union by United States. Petrov dismissed it as false alarm as he was sure if USA ever attacked, it would launch much more than 5 missiles.
It was later discovered that a software bug picked up solar reflection on high altitude clouds as missile attacks. ( details )

These are just two of the many examples of software bugs causing irrecoverable damage to property and human lives. 

Many of these problems could have been avoided by testing the software thoroughly before putting into use. An error in a mathematical formula can be caught in a single run of a software test. Then why don't we do this?

Most of the companies I have worked for or have heard about does not consider testing as important as development. Pay grade and hiring bar is usually much lower in Testing/ QA profiles than in development profiles.

Even if companies give equal importance to testers and software testing they usually end up shipping faulty software. A common reason is the lack of time. Product development is usually time constrained by customer demands, staying ahead of competitors and resource constraints. To meet with these demands, tight deadlines are set giving less time for development and even less time for testing. 

Choose ANY TWO!  - source

Its a well known fact that a software can be delivered with any two of the three qualities GOOD, FAST and CHEAP (read more). Less time for development means faulty product, overshot development deadlines and almost no time for testing. To top it off, many companies do not give importance to testing and does not hire adequate no of Software Testers and the product takes a massive hit on quality.

What can be done here? The competitive market will always remain the same. Time will always be the most expensive resource. Focus will always be on delivering the product early development will remain of prime importance.

But all this does not mean that quality has to take a hit. It certainly does not mean that testing is not as important as development. It means that we have to do our best in the limited time and resources given to us.

With this in mind, we are building an ONLINE COMMUNITY FOR TESTERS where you can learn, discuss and solve test challenges online, participate in online codeathons, and get job offers.

Log on today, and be a part of fastest growing community of testers and developers. Meet great minds, get help, enhance your coding skills and get amazing job offers, all at


Learn coding online and showcase your talent. Solve interesting programming puzzles and find how you rank against top programmers. Win attractive prizes and job opportunities with online Codeathons


Post a Comment