Building blocks for IoT testing - a benchmark of IoT apps and a functional testing framework Rares , Cristea rares.cristea@unibuc.ro University of Bucharest Bucures , ti, Romania Mihail Feraru mihail.feraru@s.unibuc.ro University of Bucharest Bucures , ti, Romania Ciprian Paduraru ciprian.paduraru@fmi.unibuc.ro University of Bucharest Bucures , ti, Romania ABSTRACT IoT security is a topic that ofers numerous opportunities for im- provement and development. In this paper, we frst present a set of open-source mock IoT applications along with the necessary infras- tructure specifcally designed to emulate a real IoT system. With our app set, users can add their own applications, automation rules, and communication fows with little technical efort, and test difer- ent scenarios to reproduce bugs that are not specifc to the use ofa single device. Second, we describe a functional testing framework for the IoT that is inspired by behavior-driven development (BDD), a testing methodology that serves as a proof-of-concept for how the application set can be used in diferent test scenarios. The appli- cation set and the functional testing framework are independent of each other. Our goal is to help IoT developers and testers fnd new testing techniques and benchmarking them in a reproducible, com- parable, and less biased environment. We believe that they form the basis for a better understanding of how to test systems composed of heterogeneous devices to fnd issues and vulnerabilities that arise mainly from their interaction and data persistence management. ACM Reference Format: Rares , Cristea, Mihail Feraru, and Ciprian Paduraru. 2022. Building blocks for IoT testing - a benchmark of IoT apps and a functional testing framework. In 4th International Workshop on Software Engineering Research and Practice for the IoT (SERP4IoT’22), May 19, 2022, Pittsburgh, PA, USA. ACM, New York, NY, USA, 8 pages. https://doi.org/10.1145/3528227.3528568 1 INTRODUCTION The Internet of Things (IoT) is an ever-growing feld today. Ex- amples such as smart cities connecting transportation networks, intelligent car systems, and smart home systems are more present in our lives than ever. Sensors, actuators, end-user applications, gateways, and servers are interconnected through various commu- nication protocols and methods without us even realising it. It is common for an IoT system to be composed of devices from dif- ferent vendors, resulting in a unique combination of technologies that interact in unpredictable ways. However, as one would expect, the rapid development and deployment cycles lead to major chal- lenges, including security and privacy issues. Problems can occur Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proft or commercial advantage and that copies bear this notice and the full citation on the frst page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specifc permission and/or a fee. Request permissions from permissions@acm.org. SERP4IoT’22, May 19, 2022, Pittsburgh, PA, USA © 2022 Copyright held by the owner/author(s). Publication rights licensed to ACM. ACM ISBN 978-1-4503-9332-4/22/05. . . $15.00 https://doi.org/10.1145/3528227.3528568 at multiple levels, from single isolated applications to networked application streams exposed to various risks, such as Distributed Denial-of-Service (DDoS) [1] , identity management and user secu- rity issues [20], etc. After reviewing the literature and fnding that there is a lack of common ground for evaluating and researching testing approaches, we add the following contributions in this paper from the authors’ knowledge: The frst open-source set of IoT-specifc software applica- tions that serves as a benchmark for the community to test diferent testing methods and compare them efciently by providing a reproducible environment, a less biased com- parison of results, and a simpler process for evaluating the efectiveness of a particular tool or technique. In addition to this suite of applications, we also provide tools to automate the development process and communication infrastructure so that users can focus on the methods and algorithms rather than the technical work. We hope that facilitating and stan- dardizing these processes will increase interest in and accel- erate the advancement of testing methods in the IoT space. The frst open source framework that serves as a basic me- thod for functional testing in the IoT domain. We consider that the proposed system can be easily extended by the user, with the possibility of adding their own set of applications and customized communication fows between them. We also provide the tools needed to automate issue detection. In our framework, the concept of issue can be understood as a template. Examples include exploit detection in the security domain, performance issues, or classic source code bugs. The user of the framework can be either a software developer or a quality assurance professional (tester). As a side story, the applications in our application set were initially developed as part of an undergraduate course in Software Engineer- ing at the University of Bucharest. The goal of the course is to teach students the general practices of software engineering in the feld of IoT. The students have to defne a free-form software development project, evaluating the topics presented in the lectures of the course: Application Analysis, Architecture, Security, Agile Practices, etc. In the 2020-21 edition of the course, students were required to create a software project that met the criteria of vision for our application set. As the literature suggests, providing students with a real-world use case for their work projects motivates them and leads to a better software development process and fnal product [15]. Since the applications are developed by multiple independent teams, they can better represent the IoT system scenario: Devices from diferent vendors are integrated into complex systems that interact in unpredictable ways and present new testing challenges. In the following Section, we review the existing literature on testing 25 2022 IEEE/ACM 4th International Workshop on Software Engineering Research and Practices for the IoT (SERP4IoT)