Well, the simple reason is development ‘process’ is unable to produce defect free software.Even if the process produces defect free software, how do you know until you test it.Will you get enough confidence that it will work without testing it. I dont think so.

Testing not only identifies and reports defects but also measures the quality of the product which helps to decide whether to release the product or not.

Coming to why development process is unable to product defect free software, blame it on the ever increasting complexity of the software products and on process variation.