Food, Shelter and clothes are not the only fundamental requirements of our lives. There is more on the list that has made our lives more comfortable and efficient. Humans now aspire things which are connected, things which can communicate with each other to function remarkably, and efficiently perform complex tasks.
For instance, let’s assume it is cold outside this morning. So, the air conditioner automatically levels up the room temperature. Now, the temperature sensor shares this data to all other machines say your shower, your wardrobe, another air conditioners in your home and even your car. When the person taking his shower the water is warm, and when he is dressing up, his wardrobe is more like to suggest him pick something warm to wear.
That was the classic example of how we desire the IOT to help with our daily life. Now going back to our case from above, imagine that the person’s shower has malfunctioned and so it failed to increase the water temperature. What would happen? He completely trusts the system will take care of setting the right water temperature. He will not have the comfortable shower; the cold water might make his feet go numb, he might even catch a cold. His day which is yet to happen will be undesired because he could not have the proper start.
That is the reason testing IOT devices is essential. The person would not have encountered this problem if the sufficient testing was conducted in the shower.
Layers of IOT’s structure:
Testing can be done efficiently only when we understand the IOT’s building components. IOT happen to get divided into three significant components Hardware, Firmware and Software.
As the software testers, our concerns get confined to testing software layer.
** [h/w -> f/w -> s/w diagram] **
Nowadays testers use various type of simulators instead of the real device, so they can quickly install the setup and get going.
Primary technologies of IOT:
Let’s take a quick glance at the technologies that make the connection between the embedded devices. The mix and match these technologies are used in IOT to connect them with each other.
* WIFI: WIFI is the commonly used technology transferring files among the devices. Recently, there have been two major updates in the specification of WIFI namely 802.11AH and 802.11AX. These two specs make use of wife more economical and seamless.
* Bluetooth: Bluetooth is another very short-range device which was formerly used to transfer files among devices. To implement the long-range connection, one can hop the data through the network. However, hopping might be quite expansive.
* NFC: NFC or Near Field Connection is an advanced device for short-field communication. It features additional features like the natural expression of user’s intent, data security at multiple-levels, and seamless scalability which will allow new unconnected devices to enter the connection smoothly.
* RFID: All right, so RFID is Radio Frequency Identification system that is used to identify the objects, and record their metadata using radio waves. It designates the objects with the tags like global, automatic and real-time.
* Z-Wave: Z-Wave is a low power communication technology which uses radio-frequency. IOT fundamentally uses it for home automation. It provides good security.
Testing IOT devices:
At Software Testing Board we believe that IOT devices should go through following tests.
* Connectivity Test: One of the primary goals of IOT is all about the connected devices that communicate with each other to make user’s life easier. The connectivity of these devices plays a significant role, so it is a critical factor to examine. In complex systems such IOT itself the errors and downtime are bound to happen. So, as a tester, it is one’s responsibility to test system if it is ready for worst cases. The tester should test the recovery protocols that goes active when the connection is down. Moreover, as soon as the connection breaks the user should be alerted, and it should be made sure that no data loss happens.
* Security Test: IOT entirely relies on data and security is as important as connectivity here. The data must be highly secured when it is moving from one device to another and even when the same instrument is used to store the data. Also, the UI of the computer which manages the whole IOT network must be password protected.
* Compatibility Test: The complex structure of IOT which involves significant roles of both hardware and software components. A tester should check the compatibility of IOT system with
- Various Operating Systems
- Browser types and its versions
- Communication modes
- Generation of devices
* Usability Test: Usability testing may seem trivial but when it comes to IOT usability can be challenging due to its complexity. So, the role of the tester is to make sure that the IOT system should have an option to log all the events and push those as well to a database to store it. Moreover, the display must have user-friendly UI and show essential notifications and messages accurately.
* Performance Test: IOT devices has to store and transact massive amount of data. So as a tester one has to make sure that the system can smoothly handle large data. Also, the system is placed in various environmental conditions, and its performance is observed. The dominant performance factors are:
- Efficiency
- Scalability
- Security
* Pilot Test: Inside the laboratory, the IOT might work fine but when exposed to real-life conditions it may backfire. The pilot testing is carried out by presenting the system to the limited number of users. The feedback from this test is used to improve the system before deploying it.
* Upgrade Test: The composite structure of IOT consists of various hardware and software components. Hence, it is more vulnerable to upgrades. The tester must make sure that all parts of the new version of the system are compatible with the update. Moreover, it must pass old test cases.
You can click here ask any question regarding IOT testing. Also, you can share your views in the comments section below.