Testing Practices, Challenges, and Developer Perspectives in Open-Source IoT Platforms
Daniel Rodriguez-Cardenas, Safwat Ali Khan, Prianka Mandal, Adwait Nadkarni, Kevin Moran, Denys Poshyvanyk
TL;DR
This study examines testing practices in open-source IoT platforms by mining OpenHAB and Home Assistant and surveying 80 developers to reveal how tests are designed and what challenges arise. It introduces the focal-method based test ratio and finds a substantial gap in testing coverage, with OpenHAB averaging $0.04$ and Home Assistant $0.42$, alongside 10 key findings on practice and perception. The results show a strong emphasis on automated unit testing but limited integration, compatibility, and real-world scenario testing, particularly across diverse devices and firmware updates. The work provides actionable directions for researchers and practitioners, including simulation-based testing, cross-platform tooling, and better documentation and standards, supported by a replication package.
Abstract
As the popularity of Internet of Things (IoT) platforms grows, users gain unprecedented control over their homes, health monitoring, and daily task automation. However, the testing of software for these platforms poses significant challenges due to their diverse composition, e.g., common smart home platforms are often composed of varied types of devices that use a diverse array of communication protocols, connections to mobile apps, cloud services, as well as integration among various platforms. This paper is the first to uncover both the practices and perceptions behind testing in IoT platforms, particularly open-source smart home platforms. Our study is composed of two key components. First, we mine and empirically analyze the code and integrations of two highly popular and well-maintained open-source IoT platforms, OpenHab and HomeAssitant. Our analysis involves the identification of functional and related test methods based on the focal method approach. We find that OpenHab has only 0.04 test ratio ($\approx 4K$ focal test methods from $\approx 76K$ functional methods) in Java files, while HomeAssitant exhibits higher test ratio of $0.42$, which reveals a significant dearth of testing. Second, to understand the developers' perspective on testing in IoT, and to explain our empirical observations, we survey 80 open-source developers actively engaged in IoT platform development. Our analysis of survey responses reveals a significant focus on automated (unit) testing, and a lack of manual testing, which supports our empirical observations, as well as testing challenges specific to IoT. Together, our empirical analysis and survey yield 10 key findings that uncover the current state of testing in IoT platforms, and reveal key perceptions and challenges. These findings provide valuable guidance to the research community in navigating the complexities of effectively testing IoT platforms.
