Software testing is a process carried out during the software development life-cycle to ensure that the program is correct and functions as intended. A crucial component of any software development effort is testing. At its core, software testing seeks to solve the following question: How can one be sure that the program performs as intended and doesn’t do anything improper?
The main objective of software testing is to gain sufficient confidence that the program being tested generates the right result for a given input data.