一句话:首次实证研究运行时配置更新缺陷(OCBug),并提出差分测试框架 Parachute 自动检测此类缺陷。
现代软件系统提供大量配置选项并支持运行时在线更新,但更新不当会导致崩溃或功能错误,这类缺陷称为 OCBug。本文首次对来自 5 个广泛使用系统的 75 个真实 OCBug 进行实证研究,总结其症状、根因与触发条件,并据此设计实现了自动化测试框架 Parachute。其核心洞察是:同一配置项在启动加载与在线更新两种方式下对程序的影响应当一致;Parachute 通过变异已有测试生成在线更新测试,并用差分分析识别 OCBug。在 7 个真实系统上的评估显示,它检出 75%(42/56)的已知 OCBug,并报告 13 个未知缺陷,其中 11 个已获确认或修复。
Software systems introduce an increasing number of configuration options to provide flexibility, and support updating the options on the fly to provide persistent services. This mechanism, however, may affect the system reliability, leading to unexpected results like software crashes or functional errors. In this paper, we refer to the bugs caused by on-the-fly configuration updates as on-the-fly configuration bugs, or OCBugs for short. In this paper, we conducted the first in-depth study on 75 real-world OCBugs from 5 widely used systems to understand the symptoms, root causes, and triggering conditions of OCBugs. Based on our study, we designed and implemented Parachute, an automated testing framework to detect OCBugs. Our key insight is that the value of one configuration option, either loaded at the startup phase or updated on the fly, should have the same effects on the target program. Parachute generates tests for on-the-fly configuration updates by mutating the existing tests and conducts differential analysis to identify OCBugs. We evaluated Parachute on 7 real-world software systems. The results show that Parachute detected 75% (42/56) of the known OCBugs, and reported 13 unknown bugs, 11 of which have been confirmed or fixed by developers until the time of writing.
@inproceedings{WangJLZYXPL23,
title = {Understanding and Detecting On-The-Fly Configuration Bugs},
author = {Teng Wang and Zhouyang Jia and Shanshan Li and Si Zheng and Yue Yu and Erci Xu and Shaoliang Peng and Xiangke Liao},
booktitle = {ICSE},
year = {2023},
doi = {10.1109/icse48619.2023.00062}
}