The very first layer of IoT is the hardware which senses and interact with the physical environment. It could be a temperature sensor, a wearable heart-rate monitor. Hardware testing involves testing the hardware interfaces, peripherals, connectivity, power handling and other device functionalities. Due to it’s nature, the testing is done mostly manually and involves working with the hardware board with tools such as oscilloscopes, multimeters and signal generators. The software running on this hardware is called embedded firmware. From a software perspective, the focus is more on validating hardware-software interfaces, the accuracy of sensing and actuation mechanism and handling system failure scenarios such as malfunctioning flash or sensor data, software upgrade etc.