Software testing provides a means to minimize errors, cut maintenance and decrease overall software costs. Different software development and testing methodologies, tools, and techniques have emerged to enhance software quality. At each and every phase of software development life cycle testing is performed with different tools and techniques. One of the major problems within software testing area is how to get a suitable set of cases to test a software system. The software should assure maximum effectiveness with the least possible number of test cases.