5 important IoT testing problems and how to solve them

According to Gartner, more than 6.4 billions connected objects were used last year. This sector of the market is growing quickly and the total number of connected objects could reach 20 billions before 2021. Properly testing these objects, which could transform sectors such as healthcare, finances, smart homes and more, is one of the most important challenges companies will have to tackle in the next few years. That being said, thanks to test automation, Agile and DevOps development methods and complete and modern test strategies, it is possible to develop connected objects that will deliver great software quality and meet users’ high expectations.

So where to start? Here are 5 important problems when it comes to testing and the Internet of Things.

Problem #1: A lot of different platforms and software versions to test

A connected objected is made of material components as well as software that allows the device to execute various tasks. Other software products can also interact with the connected object to exchange data or facilitate various operations.

For each connected object, different combinations of software versions and platforms exist, making it difficult and time-consuming to test every combination manually. On other hand, it is possible to collect data coming from the connected object to better understand the different combinations that are more popular with users. This data can guide your test strategies, helping you define a smaller subset of combinations to test. By testing the more frequent combinations, plus several other combinations that are less popular, you’ll reach a sufficient coverage zone.

Problem #2: Too many different protocols

To send and receive communications and share data, connected objects use communication protocols such as Message Queuing Telemetry Transport (MQTT), Extensible Messaging and Presence Protocol (XMPP) and Constrained Application Protocol (CoAP). Each protocol possesses different strengths and weaknesses, but MQTT is generally the protocol used most often. An API that uses JavaScript Object Notation (JSON) or XML is also often present in the connected object to make life a little easier for developers.

QA specialists can use automated tests in combination with these protocols and APIs to ensure excellent software quality. Test strategies can vary depending on the protocols or API used. However, the test automation platform the development team uses must be compatible with the different protocols and API for this approach to work.

Problem #3: Security and the Internet of Things

Several researchers have demonstrated that many connected objects possess flaws at the level of security that can make them vulnerable to cyber attacks or other hacking methods. As a result, it is extremely important for development teams to test their devices in depth and try to find flaws that might make them vulnerable. At the very least, a connected object should require a strong password (several characters, a combination of letters and numbers, etc) and users should be encouraged to change this password when the device is activated for the first time so that the password isn’t “admin” or something similar by default.

Problem #4: Testing and external services

Connected objects sometimes use external services developed by other companies to receive data about the weather, financial news or other things. These external services can evolve over time and modifications can generate errors or other problems for a connected object. Luckily, automated tests can detect very quickly if an external service isn’t returning data in the expected format. Development teams can also try to virtualize an external service so that QA specialists can test the connected object even when the external service is temporarily inactive or experiencing issues.

Problem #5 : Data and the network

Connected objects rely on being able to send and receive data quickly and frequently. An unstable network can therefore negatively affect a connected object’s ability to execute various tasks. Everything from slow internet to a busy network can create problems. Connected objects should therefore be tested in various network conditions to ensure that they are able to complete their tasks with losing data along the way.

Many development teams choose to virtualize networks in different states to simulate various network conditions and see how the connected object responds. QA specialists should also keep an eye on CPU usage and memory while testing, as it can them help identify memory leaks that would prevent a connected object from being able to execute tasks correctly.

The Internet of Things: challenges and opportunities

While developing complete test strategies for connected objects represents a complex challenge, the business opportunities in this sector more than justify the additional efforts. Moreover, both testing tools and network capabilities should grow by leaps and bounds in the next few years to facilitate development of connected objects and allow this sector of the market to reach its full potential. As they say, for the Internet of Things, the best is yet to come!

Image Team Askida

Team Askida

L'équipe d'Askida / Team Askida