I. Introduction
Software testing is one of the important techniques to detect program failures and ensure the quality of the software. Random testing (RT) [1], as a black-box testing method, detects software failures by randomly generating test cases in the input domain. Due to its simplicity and efficiency, RT has been widely used in many different testing scenarios and systems, including embedded software systems [2], Mac OS robustness assessment [3], SQL database systems [4], .NET error detection [5] and Android applications [6].