The Internet of Things (IoT) is exploding. According to a report published by IHS, the IoT space is expected to grow by a factor of 5 over the next 10 years. The rate of growth is reminiscent of the early days of the Internet.
The grow growth of IoT devices is expected to grow 5x in the next 10 years.
There are several reasons for this tremendous growth. Modern industrial manufacturing and commercial retailing are using IoT in more of their products. More internet aware devices are having more interactions with each other. For example, New York City now has City 24/7 Smart Screens at bus stops and train stations as well as shopping malls, and sports facilities. Not only do City 24/7 Smart Screens provide real time information such as event notifications and transportation activity, but the screens have embedded sensors that can sense chemical biohazards.
IoT enabled City 24/7 screens have sensors collect and report conditions in the surrounding area.
That’s right, the screen can sniff out dangers in the atmosphere and send alarms into the Internet that can be used to notify residents around the affected area to take precautions. This use of IoT was unimaginable 10 years ago.
More Devices Means More Testing
As more devices work their way into the Internet of Things, more testing activity will take place. Accommodating the anticipated volume of testing on the horizon is not going to be an easy undertaking. Testing IoT hardware and software is a practice that is still in its infancy. IoT devices vary by form and function. Many companies that test software running on IoT devices have to figure things out on a device by device basis. Standardization has yet to emerge.
Once place where standardization is in force is in mobile development, particularly cell phones, the pioneer IoT device. Testing software that runs on a mobile device has become a mature part of the Software Development Life Cycle. Developers test software by executing code on a given phone or tablet directly or by using a software based emulator. UI layout, data exchange and geolocation interaction are some of the features that are typically tested on both hardware and emulator.
Testing gets harder when more complex, real world interaction is involved; using the phone to take a photo and then checking the photo quality, for example. Emulators have limited capacity for this task. You can work directly with the phone to take a photo, but still there is no easy way to write a test that analyzes photo quality compared to the real-world subject, without doing additional work using another camera. And, automating the test is nearly impossible. Continuous human interaction is required to execute accurate tests.
Yet, despite the constraints, industrial strength mobile testing enjoys a significant degree of standardization. Most cell phones and tablets have accompanying emulators that allow for easy discovery of UI elements as well as internal components such as the camera and flashlight. The APIs are well documented. Furthermore, many of the test tools for mobile software testing are supported by testing frameworks that can be used in automated deployment pipelines.
Testing an Android phone is not that different from testing an iPhone. Yes, different tools are needed. But the burden of creating testing tools on a device by device basis has been dramatically reduced. The same cannot be said for testing other types of IoT devices, particularly those mission critical devices that can put human life at risk- traffic signals for instance. Such mission critical testing is both the burden and the opportunity at hand as testing practices for the Internet of Things move forward.
Get TestRail FREE for 30 days!
The Value of Standards
As mentioned above, the practices for testing IoT devices are in their infancy. One of the first stepping stones on the way to full maturity will be the evolution of standard discovery interfaces and APIs designed to describe the structure and components of an IoT device.
Presently the state of IoT self-description formats is analogous to the state of network infrastructure before the Internet came along. There was no globally used protocol. There was TCP/IP, but it was only one of many protocols in use. There was IPX/SPX used by Novell networks, also commonplace was NetBEUI, a network protocol supported by Microsoft.
Once TCP/IP became the lingua franca of networking, HTTP came along to provide the request/response paradigm that has become the standard means of interaction on the Internet. Coupling HTTP with HTML, a simple syntax for describing a document’s structure and features, provided the Internet standards that are common today. These standards not only power most of the work done on the Internet, but they also afford a reliable format against which testing can take place in an automated manner. For example, a script queries a web page’s Document Object Model (DOM) for an HTML element using the markup language syntax, and then tests against that retrieved element. It’s a simple, effective testing process that is possible on any web page because HTML and the Document Object Model are part of a standard. Standards provide the foundation upon which cooperation, creativity and efficiency can flourish.
API Standardization Will Improve Testing
Given current trends, IoT may be on the same path. The missing link is, as mentioned above, is standardized discovery interfaces. Creating a standard of discovery for IoT devices across industrial sectors will make IoT testing easier. There is no common standard that can be used to query an IoT device for its elements. For example, you cannot ask a traffic signal for its elements in a similar manner to asking a web page for its elements. Nor is there a specification standard that allows API designers to create consistent APIs for IoT devices regardless of industrial sector. OpenAPI, RAML and API Blueprint are bringing standardization to the world of data centric cloud services, but IoT technology still has a way to go.
Applying the principles of structured API specification to IoT devices is the opportunity at hand. Making it so an IoT device from any industry — from transportation to medicine — can be inspected in a standard, secure manner, opens the door for broader development activity. Standard APIs also create efficiencies in terms of testing. Making it so test harnesses can interact with any device according to a set of predefined rules that are simple and well known increases the speed by which tests can be created, implemented and automated. Faster, more accurate testing creates better products. Better products create demand for more products. It’s a cycle of increasing returns from which everyone benefits.
Meeting the Challenge of IoT Discovery
Adequate testing is a critical part of the software development process. But as new types of hardware dedicated to the Internet of Things populate the technical landscape at faster rates, testing these devices becomes more laborious. Interacting with IoT hardware is not yet standardized to a degree that makes automated testing a less time-consuming activity. However, this testing challenge can be met when industries using IoT adopt a single standard for defining and discovering the characteristics of any device. Once structures and features are easily discovered, tests can be developed in a predictable, reusable manner. Reusable tests are easy to automate. Being able to apply comprehensive, reusable test automation to IoT devices in a generic manner is the key to supporting the growth of the Internet of Things predicted in the years to come.
Bob Reselman is a nationally-known software developer, system architect, industry analyst and technical writer/journalist. Bob has written many books on computer programming and dozens of articles about topics related to software development technologies and techniques, as well as the culture of software development. Bob is a former Principal Consultant for Cap Gemini and Platform Architect for the computer manufacturer, Gateway. Bob lives in Los Angeles. In addition to his software development and testing activities, Bob is in the process of writing a book about the impact of automation on human employment. He lives in Los Angeles and can be reached on LinkedIn at www.linkedin.com/in/bobreselman.
- Advice on Balancing Testers for Embedded Scrum Teams
- How to Find, Interview and Hire Great Software Testers
- Announcing TestRail 5.2 – New Unique Screenshot, Case Template and Exploratory Testing Support
- Consider “Reasonable” UI Test Automation