10 Hints on Testing and Optimizing a Connected World

DZone 's Guide to

10 Hints on Testing and Optimizing a Connected World

Developing IoT apps? Be sure you design them with consumers in mind and test them in real world situations. Always focus on usage, not production.

· IoT Zone ·
Free Resource

Watches, fridges, door locks, cars: The list of household items now connecting to each other through the Internet is growing at an astounding pace. The Internet of Things is an unstoppable force, growing organically and realizing technology that a few years ago belonged only in the realm of science fiction. This means technical developers now face new challenges as user expectations soar to new heights — and a level of quality that previously was considered unattainable has become the norm. In this new playing field, quality assurance is a necessary tool on the road to success. Here's what you need to know.

1. Focus on the People

There is a well-known piece of wisdom in the world of marketing that applies to the Internet of Things. It states that products should be designed with consumers in mind, not producers. Nowadays, apps have transcended devices such as smartphones and tablets into nearly every product humans interact with and are slowly but surely integrating into our day-to-day lives. Consumers stand at the center of the Internet of Things and in many ways have become connected with the devices around them. Today’s developers who strive to have their creations overcome niche status amongst early adopters and expand into the mainstream must have a strong grasp on the needs and desires of this new, expansive target group.

Recommendation: Identify what your target audience finds important and what concerns them. Hearing from the individuals within your core demographics through focus groups can provide invaluable insights into the marketing potential of your products. Consult with your audience about their expectations and incorporate their wishes into your development process.

2. Contextualize Your Products Based on Usage

A person’s expectations for complexity in a smartphone and tablet are completely different from coffee machines and light switches. While the former have always been digital, the Internet of Things transforms previously simple objects into complex digital systems. In order to expand from a narrow customer base, the applications of connected devices need to offer a clear added value in the daily lives of users while simultaneously exhibiting a high level of usability. When, how and where do customers typically use these products? How many steps are required for a user to complete the basic functions? It’s vital to carefully examine and understand the usage of products entering the Internet of Things.

Recommendation: Tracking user diaries over a prolonged period of time can be a great way to notice weaknesses within the product or application as well as highlight benefits and sharpen the USP.

3. Keep it Simple

Smart devices are designed to make the lives of users simpler, however when they are complicated to operate, what should be an easy process can turn into an arduous task. No user wants to go through five steps to carry out a simple task that they could previously achieve with a flip of a switch. Consequently, the rule of thumb here is to design applications with simplicity in mind.

Recommendation: Users will shy away from relearning tasks they have already grown accustomed to. If possible, rely on existing user interfaces with which users are familiar.

4. Bring Realism into your Testing Model

The interconnectivity of different devices through sensors requires re-evaluating old testing models. A classic integration test is no longer suitable, as many bugs and issues will only arise when used outside of artificial laboratory environments. Therefore, it is vital to relocate the entire testing process into the real world in order to investigate whether your product or software can survive in unexpected situations. Additionally, devices and applications in the Internet of Things may need to interact with products from multiple vendors, making it nearly impossible to imitate this diversity in laboratory conditions.

Recommendation: Take your products outside of the laboratory. Test them under realistic conditions prior to their release. Integrate your end user as early as possible into the process and incorporate their invaluable feedback during development.

5. The Importance of Usability

The more intuitive and user-friendly IoT applications are, the faster they can be pushed to the mass market. While it is easy to fathom how browser-based software will be used, it can be more difficult to predict the usage of IoT devices. For example, smartwatches often have a much smaller display, which interfaces intended for smartphones cannot easily adapt to. Consequently, it is of utmost importance that smart devices and applications are nearly self-explanatory and easy to use.

Recommendation: During the development of IoT devices, a lot of attention should be paid to design. In order to convince consumers to use your product, you need to first demonstrate how it simplifies their lives. Form follows function and never the other way around.

6. Not Just Usability, but Also Inter-Usability

Sensors, web and smartphone applications, devices and all their interfaces: the Internet of Things consists of a multitude of varying components. Even though devices may look different from one another, it is essential that users do not feel as if they are interacting with too many different interfaces. Instead, interaction needs to be perceived as a cohesive experience. Therefore, inter-usability, or a user’s cross-platform experience, has become an equally important factor to take into consideration.

Recommendation: Testing the Internet of Things should incorporate the interaction between devices, software, and users by performing end-to-end tests that take place in the real world.

7. Not Only Several Components, but Also Several Users

In contrast to smartphones and tablets, which can only be used by one person at a time, there can be multiple users operating IoT devices simultaneously. For example, a light switch, thermostat or door lock being controlled remotely by an app should also be manually operational by a person in the house. In order for everything to work smoothly and to avoid unfortunate circumstances (such as being locked in the dark with a vacuum cleaner that won’t turn off), it is vital to check how devices, interfaces, and apps react when controlled by several people in different ways at once.

Recommendation: Test typical use cases and scenarios in day-to-day life and include a variety of people as well as user groups who act out of intuition rather than out of a textbook.

8. Check Functionality and Connections Extensively

The more interfaces within an application, the more complex it becomes. Therefore, it’s crucial to invest in extensive functional testing and ensure that all components work smoothly and interact seamlessly. The Internet of Things requires programs to run smoothly over a wide range of locations. For example, it is vital to consider that many devices in the Internet of Things are battery driven. To save electricity, or simply due to unexpected downtime, these products cannot constantly be connected to the internet.

Recommendation: The most important functions need to work even when parts of the system go offline. Users need to understand what is going on and how to respond in any given situation. Therefore, it is vital that error messages are clearly formulated and easily understandable to the layman.

9. No Tolerance for Loading and Response Delays

Users allow for loading times when it comes to websites, downloads or even data transfers. Similarly, they have also come to expect some of these to fail from time to time. Interacting with non-digital objects, on the other hand, is expected to yield immediate results. However, once these traditionally analog objects are connected to the internet, they are exposed to the same fluctuations in response and risk delays or even complete breakdowns. For users, it could be unacceptable if, for example, it were to take several seconds for a door to unlock or a light to turn on. For this reason, when dealing with IoT devices, special attention must be paid to keeping loading and response time to a bare minimum.

Recommendation: Extensive performance testing with different prerequisites is essential for IoT products. How does the system react to different network connections? How does it deal with unexpected breakdowns? Minimize the unknowns related to these issues, and ensure a backup option is available to avoid risk.

10. Safety First

IT Security is a crucial aspect to consider when developing for the Internet of Things as it invades our personal space in a more intrusive manner than ever before. The level of security needs to be extremely high and not only in relation to data security or privacy protection. Errors in connected cars or smart homes, for example, can put a user’s safety at risk, if, say, your car is hacked while you’re driving.

Recommendation: IT security is by no means an “add-on” and has to be a part of the overall architecture from the very beginning. Worst case scenarios need to be considered in advance and a solution must be at hand in case of emergency. There is no way to avoid extensive security testing.


The Internet of Things is already a reality and in the coming years more and more smart devices will enter this thriving market and attempt to grab the consumer’s attention. For a broad audience to adopt an active interest in the Internet of Things, it’s vital that these products are suitable for daily use and their usability as well as inter-usability is as close to perfection as possible. Therefore, extensive testing under real conditions is an indispensable tool as it gives developers an in-depth understanding of the added value of these products for human beings, because, after all, human beings stand at the center of the Internet of Things.

connected devices, iot, quality assurance, software testing

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}