With the advent of the Internet of Things, or IOT, an entirely new landscape has emerged for the software testing professional. The Internet of Things (IoT) is a network of physical objects that are connected to the internet. These objects can include devices, sensors, and other items that collect data about their environment and share it with other devices and applications.
IoT is an rapidly expanding technology that is just increasing in public awareness. Most obviously this is to control home appliances and provide us with personalized information about our health and fitness. Alongside domestic uses the potential in business is even greater with uses in supply chain management, healthcare, agriculture, and utilities such as gas, water and electric amongst many others. IoT spending by business is estimated to reach $1 trillion in 2023.
With the increased use of IoT devices, there is a need for effective software testing to ensure that these devices and their associated local and cloud-based applications are functioning properly and securely.
Challenges for the Software Tester
Applications written for the Internet of Things pose a set of unique challenges for the software tester. Not only do we have to contend with a virtual world, but also a physical world of hardware, all linked together by virtue of the internet as a communications mechanism.
This presents a set of highly complex test scenarios involving multiple real time inputs, massive data sets, significant security exposure and difficulties simulating real life environments. On top of these challenges, we also have to contend with the very realistic possibility of faulty or unreliable hardware and connectivity.
What do we test?
1. Interoperability / Compatibility Testing
A key element of the test plan to ensure the correct integration of hardware outputs (often from different manufacturers), software and communications to work together. All must comply with industry established protocols and standards.
2. Security Testing
By its very nature the internet of things generates huge amounts of stored and communicated data, often across the public internet. The IoT presents a massive attack surface with multiple points of vulnerability. The threat of cyber-attacks is genuine and severe with a high risk of compromise. Penetration testing and firmware analysis are key tools to ensuring this aspect is watertight.
3. Regulatory Testing
Related to point 2, ensuring the application meets all applicable privacy and security regulations.
4. Functional Testing
A thorough testing of all user and device interactions with the application establishing that the application meets the defined specification under actual working conditions. A particular challenge in the IoT field with multiple approaches required to achieve satisfactory coverage.
5. Performance Testing
Often with fleets of network distributed devices, performance testing needs to ensure thorough testing of network communications and front end and backend computation. This includes testing the standard factors such as load, scalability, stress, and volume to establish that the system responds consistently and manageably under all scenarios.
This hugely complex emerging field of IoT testing certainly presents its challenges to the professional software tester. It will require mastery of new technologies and techniques. As the industry grows, so will the need for quality software testers who can ensure products work as intended and meet customer expectations. With the right tools, training, and motivation the industry can meet the challenge and help deliver the revolutionary benefits that IoT can bring to business, industry and society as a whole.
Enjoyed this article? Read our blog on How Artificial Intelligence will change the way we work in Software Testing