What is the Internet of Things (IoT)? Well to simplify, it’s anything that can be connected remotely without wires; like the connection of your Amazon Echo, printers, heating systems, some vehicles and other home devices, along with medical/office equipment and of course your dog cams! Basically, anything that can collect and exchange data and information between the device and user. This technology allows the user to control devices remotely over a network – simple.
One of the most popular and recognisable IoT technologies is wearable tech, such as smart watches and fitness bands. These devices will synchronise with your smartphone and pass and receive information between the two. These can help in capturing necessary information such as heart rate monitoring to assist in you reaching peak performance or simply to monitor how many steps you walk a day.
Other day to day IoT devices and services which we give little thought to but play a major part in our lives are IoT’s that look after our infrastructure. This can include switching on or off street and motorway lighting, controlling our traffic lights to cater for rush hour in and outbound vehicles, along with telling us where there are spaces to park in the cities.
When it comes to the technology used in IoT, there are a few, but the main one is Wi-Fi, when connected to a LAN, this helps in transferring files, data and messages seamlessly from the IoT device. Other tech includes, Z-Wave, used in home automation like lighting controlling, Bluetooth for short-range communications like your fitness bands and smart watches.
When it comes to testing IoT projects there are seven key areas to consider. Like all testing though, it’s down to the test team to decide how much and what type of testing is required, depending on the approach and the specific risks and requirements.
The full seven areas of testing are:
• Usability Testing
• Security Testing
• Connectivity Testing
• Performance Testing
• Compatibility Testing
• Regulatory Testing
• Upgrade Testing
It goes without saying that IoT devices are meant to make our lives easier and should be simple to use. The usability of the device is key; usually these are portable and clever enough to be plug-in/sync and go. Also, you should be up and running to push not only the notifications but also the error messages, warnings etc. back to the user along with having an option to log all the events to provide clarity to the end users.
Usability in terms of displaying data, processing data, pushing job tasks from the devices should be tested thoroughly.
When it comes to Security, like all systems, data is at the centre and IoT is no different. When it comes to the data flow between devices, there is always a chance that the data can be accessed or read when getting transferred. When testing we need to check if the data is protected/encrypted when getting transferred from one device to the other. It is always advised that where there is a User Interface that password protection is on it.
All IoT’s can be online 24 hours a day, 7 days a week and keep connectivity with the users at all times. The areas to test are based on the connectivity and the transfer of data. The devices should be seamless when the connection is up and running. Like all systems, there is a chance the system could go offline, you should plan to test this scenario as well.
Ensuring the device performs as expected and can scale to handle the volume of users expected to connect to it is critical, especially how the data is handled and transmitted to the user. Tests should be written to ensure the overall performance of the device meets expectations.
There can be many versions of devices in operation along with various operating systems and browser types, testing across all combinations is essential to ensure compatibility.
If you have a system that needs to be compliant, then you’ll need to perform regulatory testing. It is best practice to understand and get the regulatory requirements as early as you can in the project to ensure sufficient testing can be performed and certified.
At some point or another you will need to upgrade your system and in doing so will need to perform upgrade testing which will include all the previously mentioned testing types included in the full regression test phase. It is vital that a thorough testing strategy is in place to handle this type of testing to ensure that the many protocols, devices, operating systems, hardware, networks etc. are verified as still working as expected.
Testing of IoT faces many challenges, apart from being relatively new and widely misunderstood, IoT’s uses various hardware and software components, along with sensors and communication gateways which also play a vital role in how the device functions.
As an architecture it becomes necessary that the device/s and users talk to one another in real time. When they both integrate with each other, things such as security, backward compatibility, upgrade issues become a challenge for the testing team, especially when IoT’s are spread across various devices sitting on various platforms.
To conclude, testing IoT’s is a must for any organisation or institution that uses them. As you have read there are many different types of devices and different methods to test them against. Testing their integration with systems and other devices is key along with how they operate in real life situations are a must. IoT testing may be a challenging job but, it is also very exciting as well for the testing team to certify such a complicated mesh of devices, protocols, hardware and operation systems.