The most important phase of software development life cycle is its verification and validation. Software testing aims to verify that software fulfills all the functionalities mentioned by the user in Software Requirement Specification (SRS) document. Testing reveals faults and they are fixed simultaneously by developers. But fixing of the older bugs requires change in code, which can ultimately lead to induction of some new faults in the system. Regression testing aims to verify that any modification in the code to fix a fault does not make negative impact on rest of the code. It is impractical to re-test the whole test suite during regression testing.