The Internet of Things Moves Software Testing into the Physical World
More than IT, PC, or web testing, testers working with IoT devices need to understand the physical world of testing as well as the logical world of software. So, what is the physical world? How is it different from the logical world we’re used to, and how will devices interface with the logical world?
First, some history. Mankind has been using tools since the Stone Age. Our physical tools have become more sophisticated in the millions of years since, but it has only been in the last sixty years or so that we have started merging the physical and logical worlds. For most of that time, software that impacted the physical world was limited to what we called embedded software, which often was limited in size, resources, communication abilities, and functionality. Most of the time people did not even know they were using devices embedded with software, and many traditional software people did not know much about types of software.
Next, we should consider traditional software. Yes, traditional software runs on hardware in the physical world, but computer hardware is largely generic, with limited interactions in the physical world (aside from embedded software and support devices, such as printers and scanners). The cyber software world has changed the real world we live in. We use computer software for data processing, communication, information management, and many other functions that are basically logical in nature. We have learned approaches and concepts for testing logical software, but most software testers have had minimal investigation of the hardware and external impacts of the software to the physical world.
Now, the software industry is blending the physical and logical cyber worlds with the Internet of Things. Companies that have had no experience with putting software in their products will need to learn concepts such as software testing. These companies may have experience with hardware-based testing, but testing software can be more complex. Startup companies will have all the problems of new hardware and software ventures. For them, testing may seem less important at first, but to be successful, the combination of development, testing, and ops must be balanced.
Likewise, software testers who do not have experience testing hardware or embedded systems will need to develop some new skills. For all parties entering the new world of the IoT, acquiring skills will take time and learning. There are books, conferences, and training on the subjects of hardware and embedded software testing, but these are only a start. Teams will need to practice to get the skills—and thanks to the explosion of innovations, there are more opportunities than ever to practice.
The coming cyber-physical world will be an interesting time for developers, testers, and society in general. We all will be learning and working on new skills as our daily lives become increasingly connected.