I. Introduction
Internet of Things (IoT) envisions a self-configuring, adaptive, and complex network that interconnects smart objects, embedded with sensors or actuators, to the internet through the use of communication protocols [1]. By 2020, Gartner estimates that smart inter-connected devices will outnumber humans 4-to-1 [2] and it is estimated that by 2025, there will be over 75.44 billion smart things worldwide [3]. These smart “things” can be programmed and remotely controlled to collect their data or to control their actions. Programming physical devices with constraint resources, dealing with diverse network protocols, and the integration of diverse entities in IoT systems, add unique characteristics to the challenges of developing such systems. Driven by the above considerations, the concept of bugs in IoT is more complicated than traditional software.