Internet of Things devices are exploding in use, creating new business opportunities and putting a smarter spin on old solutions. These new devices don’t always fit into the conventional use-case mold software developers are accustomed to working with: they present a range of new challenges in performance testing.
Since these devices are most often designed to simplify and streamline everyday tasks, many consumers may not even realise how many IoT items they already own, such as watches, fitness bands, exercise machines, laundry machines, refrigerators, thermostats and TVs.
Performance testing APIs: Playing well with others
A smart device should work on a wide range of devices and web browsers to reach the largest possible audience. For example, a smart thermostat that only works with iPhones won’t sell to people who use Android. Application Programming Interfaces, or APIs, are designed to help a specific device communicate with other systems. From a business standpoint, IBM defines APIs as 'the commercial exchange of business functions, capabilities, or competencies as services.' This means that developers should use API testing and performance testing tools to make sure the IoT device’s web interface works correctly with all major web browsers, iOS apps, Android apps, and other platforms as well as a variety of screen sizes.
High volume usage and growth explosion
According to the technology research experts at Gartner, there are around 6.4 billion IoT devices in use as of 2016, and that number is expected to grow to 20.8 billion by 2020. Servers hosting remote applications for IoT devices need to be equipped to handle the expected workload increases. Developers can use virtualisation to run performance testing on the servers to see how well they hold up under pressure. IoT developers need to be aware of thresholds where the infrastructure will start demonstrating a degraded user experience. Customers are likely to stop using devices that cease working correctly and responding quickly. The increased device volume also means that more devices will be competing for the same amount of radio frequency spectrum. Too many devices, as well as interference from other sources, can be problematic for smart device testing because the devices can experience slow communication with servers and end-user devices.
CPU testing vs. real world testing
Performance testing IoT through straight CPU testing and virtualisation does not capture real-world situations. IoT devices present countless new use cases: they often move around, so network connection is not consistently reliable. The devices may reside in places with weaker connections that the consumer does not think about because they do not have an active relationship with the device.
Smart devices are also prone to problems with infrastructure, including overburdened WiFi channels, unreliable network hardware, and slow, inconsistent internet connections. IoT devices still need to function reliably when operating with less than ideal infrastructure conditions, meaning both the server and the device need to be programmed accordingly.
This is all on top of testing use conditions that vary wildly from conventional computers, where the developer is only concerned with what the user taps, clicks, or types. IoT devices often have passive roles, so examining how the devices are used and how to test them requires an adjusted look at performance testing tools and performance monitoring. For example, a fitness tracker band needs to accurately measure input from things like the wearer’s pulse, range of motion, and movement speed which are all things that are difficult to simulate without actually performing real world use tests.
While the IoT brings a new level of complexity to the performance monitoring and testing process, the business opportunities the devices present nevertheless offer an exciting new frontier. Improvements to network infrastructure and performance testing tools will continue to make the process easier over time.