Software testing is the process of testing the software product. Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing is a specialized discipline requiring unique skills. Software testing provides a means to reduce errors, cut maintenance and overall software costs. Numerous software development and testing methodologies, tools, and techniques have emerged over the last few decades promising to enhance software quality. One of the major problems within software testing area is how to get a suitable set of cases to test a software system.