Consumer grade cyber-physical systems are becoming an integral part of our life, automatizing and simplifying everyday tasks; they are almost always capable of connection to the network allowing remote monitoring and programming. They rely on powerful programming languages, cloud infrastructures, and ultimately on complex software stacks. Indeed, due to complex interactions between hardware, networking and software, developing and testing such systems is known to be a challenging task. Ensuring properties such as dependability, security or data confidentiality is far from obvious. Various quality assurance and testing strategies have been proposed. The most common approach for pre-deployment testing is to model the system and run simulations with models or software in the loop. In practice, most often, tests are run for a small number of simulations, which are selected based on the engineers' domain knowledge and experience. We have implemented our approach in Python, using standard frameworks and used it to generate scenarios violating temperature constraints for a smart thermostat implemented as a part of our IoT testbed. Data collected from an application managing a smart building have been used to learn models of the environment under ever changing conditions. The suggested approach allowed us to identify several pit-fails, scenarios (i.e. environment conditions), where the system behaves not as expected.
翻译:事实上,由于硬件、网络和软件之间的复杂互动,人们知道开发和测试这些系统是一项艰巨的任务。确保可靠性、安全性或数据保密性等特性远非显而易见。提出了各种质量保证和测试战略。部署前测试的最常见方法是模拟系统,并用循环中模型或软件进行模拟。在实践中,大多数情况下,测试都是为少量模拟进行,这些模拟是根据工程师的域知识和经验选择的。我们在皮松采用了我们的方法,使用标准框架,并使用它来产生违反作为IoT测试台一部分而实施的智能温度约束的情景。从应用中收集的数据管理智能建筑,用于在不断变化的条件下学习环境模型。建议的方法使我们得以确定一些不作为预期环境情景的钻井系统(i)。