The strategy of regression test selection is critical to a new version of software product. Although several strategies have been proposed, the issue, how to select test cases that not only can detect faults with high probability but also can be executed within a limited period of test time, remains open. This paper proposes to utilize data-mining approach to select test cases, and dynamic programming approach to find the optimal test case set from the selected test cases such that they can detect most faults and meet testing deadline. The models have been applied to a large financial management system with a history of 11 releases over 5 years.