Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. Testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. Testing the software is the process of validating and verifying of a software program. The errors are to be identified in order to fix those errors. Thus the main objective of software testing is to maintain and deliver a quality product to the client. Every software is expected to meet certain needs. So when a software is developed it is required to check whether it fulfills those needs. A banking software is entirely different from a software required in a shop. The needs and requirements of both those software are different. Hence it is important to check its potential. The main goal of software testing is to know the errors of the software before the user finds them. A good tester is one who makes the software fail. He should always be in a mentality to destruct the software. A software tester should not be the one who makes the software.