As the Internet of Things continues to grow, quality assurance teams will need to change their approach to software testing. Over the coming years, more devices will go online, communicating with one another across connected networks. Keeping the underlying software running properly will certainly be a tall order, but QA professionals can make this task a bit easier by testing IoT from various key angles. By changing the way they view some core principles of QA, software testers can put themselves in a better position to succeed in the age of IoT.
1) Performance Testing
Performance testing is an ideal place to start when considering a shift in QA team management to accommodate the IoT. That's because, as Neotys performance testing specialist Henrik Rexed noted, QA teams can approach it in roughly the same manner as any other Web-based or mobile app. The major difference with IoT performance testing is thoroughly accounting for network-related concerns that could make or break a connected device.
"Testers will need to consider factors like network bandwidth, latency, packet loss, a large number of concurrent users, etc. —just as they would with a Web or mobile application —because the implications when these factors impact performance are much greater," Rexed wrote. "Instead of a website or mobile application crash, a physical commodity may not respond to a user's command."
To avoid connection issues that could affect device performance, Rexed suggested running tests with various types of networks and data streams. QA members should comprehensively analyze network activity, taking an especially long look at how quickly data can be transferred from one network layer to another.
2) Security Testing
Perhaps the biggest issue QA teams will run into when working with the IoT is setting security priorities. There's a lot of ground to cover, and it can be easy to feel overwhelmed by the enormity of the task. For its part, the Open Web Application Security Project has released a top 10 list of the major threat areas to address with IoT security testing. Sitting at the top of that list are network-related concerns such as Web interfaces and user authentication processes. It's easy to see why these areas would be problematic in an IoT environment: they are relatively easy for cybercriminals to exploit and the potential fallout from a breach could be devastating. In an extreme scenario, a hacker could even gain complete access to a particular device, effectively taking control over it. By prioritizing such risky attack vectors, QA teams can get the most out of their limited time and resources when tackling security testing.
3) Compatibility Testing
Within any software development project, compatibility testing should be a major priority. Given how many different devices, platforms, and operating systems both consumers and business users interact with on a daily basis, accounting for these many permutations is critical. The complexity of compatibility testing will become even more arduous for QA teams in a post-IoT world since they will need to expand their scope of coverage to include various connected devices. An April 2015 Cognizant white paper recommended QA testing should take the advantage of data recorders to precisely track data movement across networks and devices. This will help software testers determine if there are any compatibility issues lingering deep within different network layers.
4) Exploratory Testing
At the end of the day, the success of any given piece of software will be determined by its users. This is no different when the IoT is concerned. Even an IoT app that meets the top three criteria may still wind up being a failure if it doesn't gain traction with its intended audience. That's why it's important QA teams execute exploratory testing to determine how an app will perform once it's in front of the end user. By taking a step back and viewing in-development software from the perspective of the user, testers can gain a better of sense of how successfully that app runs under real-world conditions. This is especially key when working with IoT software, as apps will likely be evaluated by their ability to not only communicate and interact with a wide array of devices, but their capacity to bring tangible value to the lives of end users.
Software testing in the age of IoT may at first seem like a daunting task, but with a sound approach to their enterprise test management strategies, QA teams can put themselves in a position to succeed.