Guest blog post by Manoj
It has been estimated that the Internet of Things (IoT) will contain 26 billion devices by 2020 (according to Gartner, Inc.), while Cisco’s CEO puts the commercial opportunity from these devices to reach $19 trillion. But behind the glorious financial opportunities is a new community of data, and a complex testing challenge to help support those devices. Usually, IoT is categorized based on markets like “wearable technology” and "smart home" instead of broken down by how the data itself is handled. I would like to talk about these devices from the IoT data-handling perspective, while highlighting some of the testing challenges of each type.
The simplest IoT devices have a highest IoT function of making one-way service requests while monitoring themselves. These range from home appliances and propane tanks, to commercial vending machines, to urban devices like porta-potties and garbage cans. The data flows only outward, with “Help me!” messages like “I need to be filled”, “I need to be emptied” or “I need to be serviced because of the following diagnostics code”. Deployment of these devices should include a confirmation of valid Internet connection, although a phone signal may also suffice to SMS an SOS. Testing should confirm that the expected message is sent to the right destination when the service condition is met. No message should be sent when no servicing is needed (unless a periodic ping of existence is required). Since the number of different causal events and corresponding messages is limited, it is relatively easy to achieve full coverage from a testing perspective. We do not expect split-second response, so performance testing is not so important yet.
The next type of device also involves one-way export of monitored data, but functions as a real-time reporter of more complex data in a much more ramped-up fashion. This often includes medical data (like heart rate, glucose level, or blood pressure) and/or GPS/motion tracking. GPS/motion tracking may include: athletic analyzers (often reporting speed or swing data), fitness trackers, and vehicle trackers (which may include OBD-II non-GPS data). Due to mobility, weak or lost connection is a greater concern when testing. The device may store data in case transmission is interrupted, for manual download at a later time. Some devices – especially medical ones – may need to issue service calls too (low battery, low medicine, etc.) which may be duplicated visibly on the IoT device. Testing is concerned with the accuracy and completeness of the data received that was generated from the IoT device, as well as high data tolerances on the detection side. Testing coverage is more complicated, given reception issues for in-the-wild in-transit locations, and the complexity of the data details that can be transmitted, and the greater likelihood of security being needed on the broadcast data. Non-data operational logistics of the devices may also require testing.
The next step up the evolutionary ladder is interactive devices. We have now achieved two-way communication of data! This allows a level of programmability, although we may no longer need to transmit a constant flood of data to be monitored. These smart devices include pet feeders, DVR’s, home security, watering systems, lighting, smart appliance, toys, game systems and of course tablets and cellphones. With two-way data flow, there may now be greater security concerns over unauthorized access to the device and its data. Also, now that there can be input data, we need to test for and respond to potentially incomplete or nonsensical input data. We still have the same concerns we had for one-way real-time monitors, but now we have an added focus on response time performance, including stress-testing heavy 2-way flow of data possibly while specific tasks are fighting for processor time on the IoT device.
Lastly, we have devices that do everything listed above plus possess a high degree of artificial intelligence, an intelligence that must be tested, especially where safety is concerned. This includes drones, smart vehicles, and smart factories. Real-time incoming data monitoring via sensors is used to make subtle adjustments or abrupt alteration, safely reacting and maneuvering to avoid potential hazards while monitoring the success or failure of the device’s actions. In other words, interpretation of current data directly impacts future data. In addition to the usual connectivity concerns, forms of transportation include weather conditions as an important testing variable, as slipperiness affects vehicular braking, fog hampers visibility, and heavy precipitation limits movement for lightweight drones. Smart factories symbolize what big data can achieve, and involve many machines interacting and transferring data in progressively more wireless ways, and require interoperability testing to ensure that data is recognized correctly at all levels.
As you can see, the Internet of Things has introduced us to different ways of managing and communicating data of different complexities. The safeguards and testing become more complex as the device abilities become more complex, which is tied to what that data needs to accomplish.