Abstract
Regression testing is a frequently executed maintenance process used to revalidate a modified software system. However, the test suite size of regression testing may grow significantly with new functionality over time. Thus it would take a lot of time to perform regression testing over and over again. To reduce the cost of regression testing, software testers may prioritize their test cases according to some measurements and run more important test cases within existing time constraints. However, most existing prioritization techniques regard regression testing as independent process. They didn’t take any advantage from past execution experience. Some important test cases would be executed repeatedly whereas some test cases would never be executed. To overcome this problem Kim and Porter proposed a history-based prioritization technique that can execute test cases based on the history execution profile. Unfortunately this approach only takes into account the history execution data without pertain some other important criteria in regression testing prioritization. In this thesis, we propose a method to improve the performance of the history-based prioritization technique for resource constraint environments. By investigating other important measurements and criteria, we incorporated the coverage information into the proposed method so that it will consider not only the history data but also the power of code-based prioritization techniques. Moreover, we analysis the relationship of the ratio of test case selected and executed with the fault detection ability of our proposed method to find out what is the appropriate test case selection ratio for regression testing.