1. Introduction
The main objective of software testing is detecting as many critical bugs in the system under test as possible. Since software testing is a time consuming and a costly process, it is possible that the planned time and budget for testing are not sufficient for executing all designed test cases [1]. In such a case, we need to prioritize test cases ensuring that the most important test cases are executed first.