Vince Dave said..
Testing is generally used to validate a product against known use cases. Software Testing is the combination of use case functions and business data contrived to reflect the understood and hopefully documented user requirements that exercise the system to the point where it can be considered that those requirements are met.
it is process of finding bugs if the system has to ensure quality. Testing is tool to avoid any type bugs in system and increase the quality of that particular software. Software testing is done at different level of design and implementation of system. It is very necessary for bug free system and costumer satisfaction.
Software Testing can be a lot of things and performed by many different roles in a project like: unit, acceptance, functional, stress, performance, system, adhoc, automated, data driven, input boundary, logical, stability, beta testing etc.