Software Testing: Selection, Minimization and Prioritization of Test Cases for Regression Testing