What exactly does ‘hyperconnected in the world of IoT’ mean? 🤔 It is not only about controlling your smart devices. It is the convergence of hardware, software, and the internet, or we can say a convergence of the physical & digital world.
We are already living in a world where the number of IoT devices is more than the world population. Not only this, but a study from Gartner also says that by 2025, the number is expected to rise to 75 billion devices 🤯 In this pandemic time, the power of IoT solutions have effectively paid off and helped to prevent and manage the situation. Some of the scenarios in point are mentioned below:
- Ensuring air quality
- Sanitation of building & transit system
- Minimizing transmission risk in hospital
- IoT in medical care
- Diagnostic sensors – Minimize direct contact
- IoT application to track body vital supplies
- Proper monitoring of infectious patients, as it can risk others’ lives as well and get self-sanitized
- Drones used for public surveillance and ensure quarantine, wearing a mask
- Social distancing is also resolved by IoT
- Predict future outbreak
- Smart home, Smart cities emerge strongly from the pandemic
- Robot used as delivery agents for contactless
Why IoT Testing is Crucial?
As any product, IoT devices should be tested for reasons such as the follows:
- Diversity in apps, devices, networks/channels, and permutation combinations of real-time scenarios
- Wide range of protocols, interfaces, and services
- To ensure IoT can deliver continuity
- Should be compliant with global regulations
- Due to many interconnected hyper systems, defining the testing scope is a big challenge
- Data generated from the IoT should be safe from malware and other security vulnerabilities
- Work seamlessly with other interconnected IoT devices
- Usability of the system with the new connection.
- Viability and completeness of recorded data.
- Performance testing was CPU usage-based and did not consider the impact of the connections, e.g., long waits (seconds versus Milli- or micro-seconds), loads, slow network, dropped connections, etc.
- Coupling impact from the new logic to existing functionality
Challenges and Resolutions
Eventually, you need to trust your hardware and sensor’s quality and output. There are various methods available to achieve such trust: Embedded testing, Simulation testing, keep firmware updated, prediction algorithm with higher accuracy, etc. Below I’ve listed some common challenges with IoT solutions and how you can overcome them:
- Difficulty to re-create end to end set-up (it’s time-consuming and expensive to test with multiple available devices). Resolution? Simulation testing, step by steps testing, unit, integration and then end to end testing.
- Heterogeneity in device, cloud, and connectivity. Resolution? Interoperability testing & network simulations.
- Sensor, camera device buffer. Resolution? Monitor process, set alert & notification, add business functional rules.
- Device power/battery consumption, discharge. Resolution? Enable predict lifespan, use high efficiency switching regulators rather than linear low-dropout regulators
- Security for IoT devices and multiple cloud connectivity. Resolution? Write a smart contract for a distributed environment, which validates the message traffic before accepting, thus reducing the opportunity for false transactions.
- An enormous amount of data and analysis. Resolution? Data testing!
IoT Testing Approaches / Methods
The approach for testing IoT applications is unlike conventional testing where the application is developed, and testing is done. Once in production, there not much to do for a tester… Therefore, the testing strategy for any IoT device depends on 4 factors:
- What is the use case? What is possible from the solution?
- Technology – What makes it possible? (technology, skills & resources)
- Business model – How it is deployed?
- Partner ecosystem – Who enables it? (Business objective)
IoT Testing Areas
With all the various systems and connections IoT introduces, there is clearly a lot to which needs to pay attention to when it comes to testing. The Layer-wise testing scope is as follows:
- Sensor layer
- Functional Testing
- Security Testing
- Data validation testing
- Conformance testing
- Gateway & network layer
- Network Compatibility Testing
- Network Connectivity Testing
- Intelligence layer
- Cognitive testing
- Security Testing
- Data validation testing
- Model testing
- Service layer
- Functional Testing
- API Testing
- Integration testing (cloud, application, DB, etc.)
- Application layer
- Functional Testing – Model-based testing
- Compatibility Testing
- Usability and User Experience Testing
- Localization Testing
- API Testing
- Interoperability Testing
Overall testing for IoT applications requires the below testing types at each layer from hardware to software:
- Functional
- Performance
- Security
- Governance
- Compliance
- Interoperability
- Data Privacy and Analytics validation
Tools for IoT Testing
The use of the right automation, simulation, virtualization, and measurement tools is quite vital. Listed below are some of the tools that could be used in different situations:
- Device/Protocol Simulators
- Record & playback tools
- Mobile testing tool
- Network testing tool
- Math based testing framework
- Security testing tools
- Virtualization
- Automated deployment tool
Changing The Tester’s Role
The growth of technology solutions keeps on evolving, and testers must be willing to adapt to changes and learn new skills. Testing needs to focus more on user-centric experience, and the aim should not be just to find the bug, but also how to predict and prevent them. If a tester has domain knowledge, then it will help to understand business and user perspectives. Apart from this, testers need to learn new technology and testing the same such as:
- Hardware testing
- Conformance testing
- Embedded testing
- Cognitive automation
- Interoperability testing
- Combinatorial testing
Conclusion
IoT strategy is not complete without scalable technology, insightful data, robust security, and engaging UX. Testing an IoT application with different technology involves multiple skills and tool integrations, and as testers, we need to start thinking with the end in mind, understand the context. Break the milestones in a simple step by step approach. Focus on hardware, data, and integration and especially domain. Make most of the solution modular to be reusable and maintainable, identify business-critical transactions, and focus on risk-based functionalities & math-based solutions. Best to follow the cycle build, optimize, adapt & re-invent.
Happy IoT Testing! ✅