Why should we Test
Simplest answer goes by the famous proverb: “To Err is Human & to Forgive Divine”. Every software is created by Human beings, but here Divine is not going to forgive the software creators for their faults or the faults in the process. When defective software goes out to the customers, It is the Software Selling Company who pays out of loss of revenues accrued due to dissatisfied customers. Number of dissatisfied customers keep on escalating unless immediate corrective measures are taken & customers are made absolutely satisfied.
It is understandable that the Development Process is not always able to produce defect free software product. Even if the Development Process is absolutely good & foolproof & produces Bug free software; we cannot be certain about it unless & until we test it. Without testing the outcome, no software producing company will have an iota of confidence on the correctness of the product, in spite of the developers making tall claims at the top of their voice. That is the reason Testing just can�t be dispensed with.
A sound Testing Process identifies the defects & reports them in a structured way. Testing is a reflection
of the quality of the product. As a result of sound testing only, the producing company decides as to whether to release the product to the customers or not.
It is a known fact which needs to be digested by everyone that no development process is able to churn out a defect free software product in the first go, unless it is tested, bugs detected & fixed & fixed & fixed. Developer community may try to pass on the blame to causes like increasing complexity nowadays, customers being vague in their projections & more demanding at the same time & inherent variations in the development process.
What is that who is responsible for Bugs or Defects in Software Application?
A few of the following activities or events are responsible for bugs in the software application.
1) Inadequate understanding / recording of the product needs stated & implied by the customer.
2) Incorrect or inadequate translation of user needs / requirements to the design team
3) Different interpretation or understanding of the user needs by the developing team.
4) Improper translation of the design to the actual code.
5) Failure of the Testing Process to detect the bugs due to inadequacy of the coverage.
6) Inadequacy of Regression Testing. An attempt to fix a particular bug leads to the birth of another bug & the process continues.
Action Plan to reduce the Bugs or Defects in software Product
1) Capture, Record & Transmit the Customer needs more precisely.
2) Direct the efforts towards making the development process consistent & with minimal variations.
3) Strive to detect the Bugs at every stage of the product development during its life cycle.