End-to-End Testing for IoT Eco System and Importance of Multistage Validation

By Virendra Maheta

Technical Consultant

Independent Consultant

March 25, 2019

Story

End-to-End Testing for IoT Eco System and Importance of Multistage Validation

To build a world-class IoT product, an end-to-end IoT solution needs to undergo quality engineering thoroughly.

The internet of things (IoT) is an intelligent technology between the real and the digital world. It is a system of interconnected devices that have the ability to collect and transfer data over a network beyond manual interference. Enterprises are gaining leverage by implementing IoT solutions in their business models to reduce time-to-market and boost productivity.

But as we know every technology has its own challenges. Internet of Things also faces a major challenge in terms of its IoT testing. To build a world-class IoT product, an end-to-end IoT solution needs to undergo quality engineering thoroughly. It means every component such as a sensor, cloud access, gateway, user interface, and their inter-connectivity needs to be tested before delivering it to the end-customer. This end-to-end IoT testing of every component broadly comes under multistage validation.

Let us understand the concept of multistage validation in more detail.

An End-to-End IoT solution consists of multiple components like:

  1. User Access Component: Mobile Application or Web Application
  2. Cloud Infrastructure
  3. IoT Gateway
  4. IoT Embedded Devices/Sensors
Fig.1: End-to-End IoT solution

Each of the above components plays a very critical role in the functioning of the IoT ecosystem, which triggers the need for multistage validation. The multistage validation ensures that each component should perform its designated action as per the requirement.

It advocates the process of validating each component of the IoT Ecosystem while doing the system testing with a closed loop test where the forward path (from the mobile application to IoT device) and reverse path (from IoT device to mobile application) is considered.

Use Case

IoT System for Smart Air Conditioner

Let us say, a user wants to set the temperature of the bedroom AC from a mobile application while leaving from the office, then the Air Conditioner sends the notification to a mobile application when desired temperature is achieved.

IoT Ecosystem for above use case contains following components:

Mobile Application: User can set the AC temperature on his/her mobile application.

User Access Cloud: Mobile application sends the temperature value on user access cloud using Rest APIs and also updates the database.

IoT Cloud and Gateway Device: IoT cloud delivers the “change temperature” commands to the IoT gateway device installed at user’s home.

Smart AC: Gateway device sends the desired temperature on bedroom AC and the AC sends a notification on mobile application once the desired temperature is achieved.

For End-to-End IoT testing, the multi-stage validation plays a critical role as the verification at each component level is required to ensure the system functionality.

Stage – 1: The validation requires mobile application level to check the mobile application functionality. Correlating with above example, the validation, in this case, would be whether the temperature of AC is changed to the desired level or not.

Stage – 2: The validation requires user access cloud where the mobile application or web application access the cloud using the Cloud APIs. It is mandatory to ensure that the functional requirements meet at APIs and database level. Also, make sure that the changes made by mobile application and which are reflected in the database are sent to the gateway device through IoT cloud logs validation. Correlating with the example, validation would be done to ensure that the APIs are working as expected and the changes made to the database for AC are as expected for the desired device.

Stage – 3: Here, the verification is needed at gateway stage where the IoT cloud sends “temperature change” command using IoT communication protocol like MQTT, XMPP, XML, JSON. The validation is done to ensure that the correct message is received by the IoT gateway device and the message is getting forwarded to intended end device via a communication protocol such as Zigbee®, BLE, Wi-Fi, whichever is available. Correlating with the given instance, the validation would be done to ensure that the temperature change action is made for the intended AC device over a supported communication protocol.

Stage – 4: At last, the validation is required at the end embedded device to ensure that the action received from IoT gateway is reflected on the embedded device.

Corresponding to the above example, the validation would be done to make sure that temperature gets set to the desired level on AC. Air Conditioner sends the “desired temperature achieved” notification to mobile via gateway and cloud. The mobile application, cloud, and gateway gets validated as soon as the mobile notification is generated from Smart AC.

Importance of Multistage IoT Ecosystem Testing

  1.  It enables testing, validation, and verification of application architecture, integration between all the components and business requirements.
  2.  Able to catch the bugs at integration level and also find the issues at component level.
  3.  Enables solution testing with the perception of end user and real-time use cases.

Virendra Maheta, Project Manager, VOLANSYS Technologies

Virendra is associated with VOLANSYS Technologies as a Project Manager with 12+ years of experience in Quality Assurance for various domains like Embedded, Networking, IoT, Telecom/VOIP, ERP. He also has sufficed experience in Manual and Automation Testing Management.

? 12 Years of Experience in Software Industry for various domains like Networking, IoT, iIOT, Health care, Medical Electronics, Telecom, VOIP, ERP. ? Understanding Software Development Life Cycle and Software project Matrix. ? Experience with Agile, waterfall and Iterative Software development life cycle. Tools: Jira, OpenAir, Quality Center, ClearQuest, IXIA, Spirent, Wireshark, ntop, tcpdump, tcpreplay, testrail, test link, Git, Bit bucket, SVN

More from Virendra