Before launching any product in the market there are two things that need to be done. The first is to ascertain the need for it and the second is to test it thoroughly to ensure a foolproof product. The former is done even before the product is made – maybe at the idea level. The launching in the market part however cannot be done without the product undergoing proper testing. The product development cycle is more or less the same for custom software development too. If anything there is a greater stress on the testing part.
Why is testing so important?
According to statistics, software errors caused the U.S. economy to lose nearly $60 billion in 2002; today that number is probably closer to $100 billion. While we all agree that we cannot overemphasize the need for testing, let us understand what makes it so important a part of the product lifecycle.
Impact on brand image – No one wants to pay for a product that does not work the way it had promised to. Customers are adverse to the idea of paying for software that does not meet their specifications. With the software brands as with other brands, there is a lot at stake when a product is launched in the market. The brand image and brand name take time to build and no company wishes that a product to malign it.
Testing does more than debugging – Agreed that the most important thing that testing does is debug a software. A tester’s job however is not just that. It also ensures that the software is easy for the customers to use so usability is also checked. It is also the tester’s job to assess if the software is the ideal solution for the problem it intends to solve.
Efficient development cycle – Integrating testing as a part of the product development cycle reduced the time from development to launch. And this is what every company wishes to have.
Cost of fixing defects – The earlier a defect is identified, the more cost effective it is to fix it. Once the app goes into production, the amount that needs to be spent to fix it is substantially higher. According to US National Institute of Standards & Technology, early testing is vital for making the product cost effective.
Different types of testing
Testing can be broken down into different components depending on what aspect is being tested. For example Ad-Hoc Testing, which is done without pre-planning, alpha testing is done by test teams at the site while beta testing is done by the users themselves. Then there is Black Box testing in which the item being tested is not known to the tester and White Box testing which involves testing the coding. Apart from this, software is tested for security and usability aspects and also for the amount of load that it can take.
How should testing be done?
A tester needs to think of ways in which the product can go wrong. He needs to figure out ways in which someone can break into the code. Ideally, a tester needs to work in a neutral environment so that the results are unbiased. It is therefore important that the testing team be independent from the programming team. This will also ensure that the work for the developer and the tester is separate and both have enough time to work on their tasks. It is also important to understand that a tester cannot leave anything out. A tester for instance, also needs to test something as basic as requirements for the software.
Nightmares that could have been avoided
There are enough examples from the software sector where companies had to pay heavily as damages for a small bug. In 2010, car manufacturer Toyota recalled 400,000 Prius models. The reason was a software bug in the anti-lock braking system in the car which created a potential danger for the travelers. Toyota had to pay 3 billion dollars to settle the lawsuit. Had testing brought this issue to light in time, the company could have saved on the lawsuit as well as defame that came its way.