I. Introduction
A main task in regression testing is the prioritization of test cases, which reorders the existing test cases to provide cost-effective testing. Various test case prioritization techniques have been developed based on different information. For example, history-based prioritization techniques use information from previous executions to determine test priorities; knowledge-based techniques use human knowledge to determine test priorities; and model-based techniques use a model of the system to determine test priorities.