Software testing is a process conducted by the tester to give proper information about the quality of the software. It is a method which provides aids to reduce bugs and maintenance costs of the software. It provides a conceptual view of the software to allow the business to acknowledge and determine the risks of the software implementation. It includes different types of techniques and tools to recognize the bugs or errors in the software. These techniques were evolving from the last decade which generates possible test cases and hence improve the quality of the software.