Errare humanum est. As the ancients already said: To err is human. Also, in the Modern Era, one of the main premises of the scientific method was “trial and error”. Since time immemorial we have known that mistakes are inherent in human nature. We bargain for that. The important thing is to learn from mistakes and avoid repeating them. But this is easier said than done, because first we have to admit we are not perfect and be humble enough to accept it, and determined to move forward.

The greatest exponent of this attitude was Thomas Alva Edison (1847-1931), who made more than a thousand attempts until he invented the light bulb as we know it. The number of repetitions was so shocking that one of his collaborators asked him if he wouldn’t become discouraged at so many failures. And here the perception of mistake comes into play, because Edison replied: “Failures? I don’t know what you’re talking about. With each discovery I’ve found out a reason why the light bulb didn’t work. Now I know one thousand ways not to make a light bulb”.

Without having to emulate Edison, it is easy to realize that we apply the trial-and-error principle to such everyday fields of life as cooking or personal relationships. However, it is perhaps in the computer industry where the need for tests is more urgent and decisive. Besides, the pace of work in this industry and customer requirements make software companies release versions in record time, which implies making mistakes. Keeping ahead of competitors is essential, whatever the cost. And the cost is usually where mistakes are made. It is hard to strike a balance in a situation in which the customer asks for new functionalities and needs them in record time. Therefore, less and less time is devoted to testing at the risk of bad quality harming the company’s image. It seems finding the correct solution is not easy…

The main reasons

Testing is a very important stage of the software development life cycle. So important that it should be introduced at the beginning of the process so that bugs do not accumulate in the final delivery phase. Software companies come and go depending on the importance they give to their quality assurance and testing area. Let’s see some reasons that clearly explain the importance of a thorough software testing procedure.

  • It is absolutely essential for identifying the mistakes made during development stages.
  • It guarantees that the software is reliable and ensures customer satisfaction.
  • It guarantees product quality, which ultimately allows increasing customer loyalty.
  • It reduces maintenance costs.
  • It may turn out to be very expensive to correct defects ex post or in more advanced stages of application development. The cost of fixing the bugs detected in early development stages is 200 times lower compared to those identified late.
  • It is vital for staying in the business. Let’s remember that software programs face more and more competition, are increasingly complex and have more and more users. This means that a company survives only if it can offer a reliable and quality product. We should always apply the maxim “if it has not been tested, it does not go up to production”.
  • It gives the company’s sales reps the confidence they need when selling the product, that is to say, they can be sure it has no defects and provides the functionalities it is supposed to provide. After all, a company’s objective is to sell its product, so we should not underestimate this reason even though it is at the end of the list.

Quality must come first

In today’s highly competitive market, only quality products survive. And quality, despite being the customer’s subjective perception, arises from the philosophy of the company, which struggles to offer products and services that surpass customer expectations. To this end, testing the product is a key factor. Furthermore, in order to increase the probabilities of detecting errors, even minor ones, it is critical that the product be tested by a different person. We know perfectly well that it is difficult that we ourselves identify our own mistakes.

That is why it is essential that we use advanced and customized tools in order to automate and conduct software tests, and count on highly qualified testing teams. Actually, testing teams suggest most of the improvements implemented in a software product. Knowing that there are people who devote 100% of their time to finding errors in others’ work may not sound very comforting, but their task is absolutely necessary.

Let’s assume that developing error-free software is a huge and colossal work, perhaps unachievable, but with testing we get closer to this impossible goal. After all, testing is the most important part of software and industry firms should go for it, since they will end up saving time and money.

Sources:

http://sethgodin.typepad.com/seths_blog/2016/01/software-is-testing.html

http://istqbexamcertification.com/why-is-testing-necessary/

http://www.softwaretestingclass.com/importance-of-testing/

http://tulugar.com.uy/2010/11/%C2%BFpor-que-el-testing-de-software-es-importante/

André Klein
Freelance Consultant for DocPath