1 Introduction
Many real-world test optimization problems are multi-objective intrinsically, which requires considering multiple conflicting objectives when finding optimal solutions. For instance, based on our long-term collaboration with Cisco Systems [1], [2], we identified a test case prioritization problem [3] with four conflicting objectives (e.g., fault detection capability) to prioritize a given number of test cases into an optimal order. Another example is the testing resource allocation problem [4], [5] (i.e., allocating test resources optimally to different software modules), to minimize testing cost (e.g., testing time) and maximize the reliability of the modules.