The Internet of Things (IoT) is becoming a reality in our everyday lives. We are living in an era of technology in which everyday gadgets have Internet connectivity and send and receive data. The world is becoming increasingly connected because of the shift to what many are calling the Internet of Things. How do we ensure quality and security in all these connected gadgets? We all know that functional testing is one of the most critical methods for any software development project. Functional testing for IoT will be challenging. I believe that a blend of existing strategies and new innovative approaches will be required to ensure the quality of IoT.
IoT Technologies for Everyone!
There is a broad range of new IoT technologies available for everyone — from wearables, media, home automation, and connected cars and roads, to factory-floor robots, tracking activity, and the next big undiscovered thing. What do all of these IoT technologies have in common? All of these products have sensors, connectivity, processing, algorithms, security, big data, and analytics.
Source (or click to enlarge)
Functional Testing of IoT Products
We are in a world where everyone loves connected devices. Everyone is looking for technologies to make their homes a little smarter by adding smart home devices like thermostats, lighting, security systems, appliances, and other emerging IoT devices. The 10 most popular IoT applications right now are listed below:
Source (or click to enlarge)
The leader in the industry of home automation is Nest. The overall testing challenges start from sensors, connectivity (locally on the device, remotely from the enabled mobile device), security, performance, and data analytics. All require a lot of planning before development starts.
The strategy for IoT functional testing must start by creating virtual devices that can simulate real-life environments and connectivity. The Nest team has built the Nest Home Simulator testing tool that works with Nest products so you can quickly and easily test common system events and sensor conditions. IoT companies must consider using a virtualization environment, and a mock approach for functional testing of their products.
The deeper I went into my research about how to functionally test IoT products, the clearer it became that there is a sizeable list of challenges and obstacles that developers and testers have to deal with while testing IoT products. It is important to focus on the core components of the product. The fact of the matter is that the same functional testing principles apply to both home automation IoT products and websites. You identify the core components that need functional testing. The identified components need to be tested on local devices and enabled mobile devices. The core components of Nest thermostat, for example, set temperature, can heat and cool, enable HVAC modes, eco temperatures, and more. The key for IoT functional testing is a simulated real-life environment using real devices or simulators to test those core components.
IoT technologies continue to emerge rapidly, and every use case differs as far as what would be considered the functional core components. Each device is and will be unique.
Let's look at core components for the initial setup of Amazon Echo Dot. The installation requires that the end user download the Alexa mobile app (sign-in), turn on Echo Dot, and connect the device to a WiFi network from the Alexa apps Settings area. Now, you're ready to talk to Alexa. The functional testing should validate the compatibility of the Alexa app on iOS, Android, and Amazon mobile devices with the Echo Dot device.
The next possible step for IoT companies is to ensure that their products and apps stand up to real-world situations and maintain a high level of quality by using a cloud platform that supports IoT. Some of those companies that support IoT in the cloud include: Thingworx, AWS IoT, Microsoft Azure IoT, and Google Cloud Platform IoT.
The key takeaway, for me, is how functional testing for IoT devices will differ from product to product, especially as the IoT grows. It is important to plan ahead and build the necessary tooling solutions needed to simulate real-life environments, since they don't exist. There is a significant list of challenges and obstacles that companies have to deal with while testing their products. This space will require a lot more test innovation to ensure quality and security of these products.