As Humans, we evolved to get our life easier, better and simpler.
We tried to stop to use switches to control lights, stopped to paid at kiosk for the toll charges, we now monitor our health smartly, using GPS to track movements efficiently and the list can go on almost forever.
How we do all these now? and what is different?
We need to understand how this works before to discuss how to test it.
The IoT is the connection between vehicles, medicinal equipment using embedded electronics, home appliances, microchips etc. in order to collect data and at the same time exchange data of a different kind. It allows the Users to control the devices remotely through a network.
These are few of the most used technologies in IoT:
RFID: [Radio Frequency Code] and EPC [Electronic Product Code].
NFC: [Near Field Communication] used to enable two-way interactions between the electronic devices. This is used mostly for smartphones and used to do the contactless payment transactions.
Bluetooth: Used where short range communications are enough. Mostly used in wearable technologies.
Z-Wave: Low power RF communication technology. Primarily used for home automation, lamp controlling etc.
WiFi: The most commonly used choice for IoT. When on a LAN, this helps in transferring files, data and messages.
We need to test the usability of each of the device used.
The equipment should be smart enough to push not only the notifications but also the error messages, warnings etc.
The system should have 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 extensively.
2) IoT Security:
The Internet of Things is data centric where all the devices/system connected operate based on the data that is available.
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.
From a testing standpoint, we need to check if the data is protected/encrypted when getting transferred from one device to the other.
As we can imagine connectivity plays a vital role.
The system has to be available all the time and should have seamless connectivity with the stakeholders.
We need to make sure the system is scalable enough for the whole environment where is applied.
Bigger the environment and gibber the data that is propagated and then the tested data.
As testers, we need to make sure the system performs the same even though the added data is propagated.
5) Compatibility Testing:
Looking at the complex architecture of an IoT system, compatibility testing is a must.
Testing items such as, multiple operating system versions, browser types and respective versions, generations of devices, communication modes.
6) Regulatory Testing:
Sometimes the system needs to pass through multiple regulatory/compliance checkpoints.
Think of a scenario where the product passes through all the testing steps but fails in the final compliance checklist
It is a better practice to get the regulatory requirements in the starting of the development cycle itself. The same should be made part of the testing checklist.
7) Upgrade testing:
IoT is a combination of multiple protocols, devices, operating systems, firmware, hardware, networking layers etc.
When an upgrade is performed, be it for the system or for any of the involved items as stated above, thorough regression testing should be carried out/strategy should be adopted so as overcome upgrade related issues.
IoT is an architecture, which is closely coupled among various hardware and software components. It is not only the software applications that makes the system but also the hardware ones, sensors, communication gateways etc. too play a vital role.
Only functionality testing does not help in completely certifying the system. There is always a dependency on each other in terms of the environment, data transfer etc.
2) Device Interaction module
As this is an architecture between different set(s) of hardware and software, it becomes mandatory that they talk to each other in real time/near real time. When they both integrate with each other, things such as security, backward compatibility, upgrade issues becomes a challenge for the testing team.
3) Real-time data testing
Being in testing team, getting regulatory checkpoints or getting the system deployed in the testing environment is complicated. So, that stays as a big challenge for the testing team.
4) Network availability
Network connection plays a vital role as IoT is all about the data being communicated in faster speeds all the time. IoT architecture has to be tested in all kinds of network connectivity/speeds.
The Internet of Things testing approach can be different based on the system/architecture involved. Testers should concentrate more from the point of view of the Users approach rather than testing based on the requirements.
“One of the major player in IoT testing is the Integration testing. IoT is successful if the Integration test plan is accurate and robust enough to catch flaws in the system.”
IOT testing may be a tough/challenging job but, it is also very exciting as well for the testing team to certify such a complicated mesh of devices, protocols, hardware, operation systems, firmware etc.
Twitter : https://twitter.com/itpeopleau/