I. Introduction
Computers play a pervasive role in many spheres of human activity and is strongly coupled with the meteoric rise of the software industry, producing innovative applications and driving societal transformation globally. Therefore, much effort has been devoted to achieve optimum software quality and reliability, commonly defined as the probability of failure-free operation of a computer program in a specific environment for a specified period of time.