Internet of Things has been one of the hottest technology trends for years. According to Cisco, there will be 50 billion connected devices by 2020. If you look at IoT stats, you will realize that businesses are betting big on IoT. In fact, the global spending on IoT will soar to $1.29 trillion by 2020. This accounts to an annual growth rate of 15.6%.
Furthermore, large corporations like General Electric predicts that IoT will contribute $10-$15 trillion to global GDP growth. All these statistics points towards the growing popularity of IoT devices. The exponential growth in number of devices poses security threats and challenges for software testers.
In this article, you will learn about five software testing challenges of IoT devices you wish you knew earlier.
1. IoT Device Diversity
Another big challenge for the IoT tester is diversity of devices. There are so many different types of IoT devices out there. This means that IoT testers will have to first understand the architecture of each device and make sure that the devices is configured with the right version of software. Exceeding user experience and deliver exceptional performance across devices can be a daunting task especially with varying hardware. There are instances when IoT devices are linked to third party services. If these third-party services change or fail, your tests may fail too. Thankfully, you can overcome this problem by virtualising the service in case of a failure and eliminate the dependency. You can use a tool that let you customize, and setup expected responses from the service and develop a response for every situation.
2. Communication Protocols
The lack of standardization when it comes to protocol is also a big issue. Due to this, IoT devices use different communication protocols to send and receive data. Some of the common communication protocols used by IoT devices for communication purposes are as follows:
- Message Queuing Telemetry Transport (MQTT)
- Constrained Application Protocol (CoAP)
- Extensible Messaging and Presence Protocol (XMPP)
IoT testers should also know about the pros and cons of each communication protocol. For instance, Message Queuing Telemetry Transport is a great option if your network has a high latency and low bandwidth. Testers can use APIs to automate the process but automation test has its own challenges. The tool you are using to test IoT devices should also support these communication protocols.
3. Cost
If you have mobile app ideas that you want to turn into a mobile app, you can easily do that and testing the app might not be a big deal. Same goes true for software and websites as well. Many software and web design companies know this too. Things are a bit different when it comes to IoT. With so many different devices, platforms and protocols to test, it does not only make life tough for IoT testers, but it also increases the cost of testing. Then there are different environments and integrations that can take the complexity of the testing process to the next level. As a result, you might require specialised testing software. The higher the complexity of the testing process, the higher will be the cost.
4. Security
Security and privacy have always been an Achilles Heels of IoT devices. By adding more devices that connects to your organization network, you are putting your security at stake. Most IoT devices uses default username and password which puts them at a far greater risk. To gauge the impact of cyberattack on IoT device, look at Mirai botnet attack which used digital cameras and brought sites like Netflix, Twitter, CNN and Reddit to its knees and caused massive disruption around the globe.
5. IoT Platforms
The problem with IoT devices is that every IoT device has its own hardware and software. Add to that the applications that integrates with IoT devices and you have a tough challenge on your hands. Things just does not stop there, each device has its own firmware and operating system. This makes it almost impossible to test all combinations of hardware and software. That is why most tester define a subset which can be tested effectively.
Once you know which hardware and software combination you should use, you can focus your efforts in a better way.
How do you test the software for IoT devices? Let us know in the comments section below.
Want to know more about Internet of Things? Check out this webinar Application Security Flaws in the Internet of Things by Ken Munro.