Page 82 - 《软件学报》2021年第12期
P. 82
3746 Journal of Software 软件学报 Vol.32, No.12, December 2021
间加速,以较高的速度发生系统的状态变化,并对温湿度/烟雾浓度等环境因素合理建模.这使得在短时间内测
试大量的智能家居系统状态变迁并验证 SSRules 成为可能.
在 HA-Simulator 中模拟了 12 种智能家居设备,布局和类型如图 6 右上方所示,这些设备通过 HA 的 MQTT
Discovery 集成方式接入 HA.此外,在 HA 中以自定义方式提供模式、天气和时钟这 3 种虚拟设备.在模拟器中,
同一房间内的设备受同一组环境变量(温度、湿度、烟雾浓度)的影响.模拟器可以设置环境变量改变的速度,
进而间接改变虚拟传感器的取值;同时,模拟器中的设备可以被手动调节或者由模糊测试程序随机改变.
Fig.6 SSRules user interface, Smart home configuration and HA-simulator
图 6 SSRules 用户交互界面与智能家居场景配置和模拟器示意图
4.2 实验结果分析
• SS→HA 翻译对比
首先参考以往用户调查 [15] 中用户的智能家居需求,构造了 10 组 SS 规则作为测试集,其中:编号为 1~6 的规
则组不含历史状态,编号为 T1~T4 的规则组含有历史状态.每一组规则至少有一个动作实体(设备),规则中会引
用多个相关实体的状态.另外,规则组 6、规则组 T3、规则组 T4 含有多个动作实体.按照当前的事件筛选策略,
翻译前后的规则条数比较见表 8.最终生成的 HA 规则条数均多于 SS 规则条数,比例为 2 倍~4 倍.
• HA 规则运行覆盖率
在由 SS 转译得到 HA 规则之后,每一组 HA 规则均在模拟器上运行 20 分钟.除第 1 组规则(包含空调与温
湿度传感器)和第 3 组规则(包含排气扇以及其他 4 个相关实体)之外,其余组的 HA 规则均全部被执行过.这说明
SS→HA 转译器为其余 8 组规则产生的 HA 规则集中没有多余的规则,当前的事件筛选策略对于多数测试样例
是比较合理的.对于含有多余规则的情形,而第 1 组的 4 条 SS 规则为:
FOR 客厅空调
EXPECT (模式,制冷)(温度,18°C) WHILE 客厅温湿度传感器.温度>28°C
EXPECT (模式,制热)(温度,20°C) WHILE 客厅温湿度传感器.温度<10°C
EXPECT (模式,干燥) WHILE 客厅空调.模式!=制热 AND 客厅空调.模式!=制冷 AND 客厅温湿度传感
器.湿度>65%