一句话:提出 ECFuzz,通过多维配置生成与单元测试验证,有效提升大规模系统配置模糊测试的缺陷发现能力。
大规模系统配置参数多,配置空间组合爆炸;现有配置测试将模糊测试生成的配置直接注入程序,未充分考虑系统复杂性,效果有限。本文提出 ECFuzz:设计多维配置生成策略,依据不同依赖关系采用不同变异策略,并从候选参数中选择多个参数生成配置;引入面向单元测试的配置验证,在系统测试前过滤不易出错的配置并验证生成参数。作者在 HCommon、HDFS、HBase、ZooKeeper 和 Alluxio 上评估,与 ConfTest、ConfErr、ConfDiagDetector 相比,注入相同 1000 个测试用例时多发现 60.3–67 个异常失败,提升 1.87x–2.63x,并发现 14 个未知缺陷,其中 5 个已确认。
A large-scale system contains a huge configuration space because of its large number of configuration parameters. This leads to a combination explosion among configuration parameters when exploring the configuration space. Existing configuration testing techniques first use fuzzing to generate different configuration parameters, and then directly inject them into the program under test to find configuration-induced bugs. However, they do not fully consider the complexity of large-scale systems, resulting in low testing effectiveness. In this paper, we propose ECFuzz, an effective configuration fuzzer for large-scale systems. Our core approach consists of (i) Multi-dimensional configuration generation strategy. ECFuzz first designs different mutation strategies according to different dependencies and selects multiple configuration parameters from the candidate configuration parameters to effectively generate configuration parameters; (ii) Unit-testing-oriented configuration validation strategy. ECFuzz introduces unit testing into configuration testing techniques to filter out configuration parameters that are unlikely to yield errors before executing system testing, and effectively validate generated configuration parameters. We have conducted extensive experiments in real-world large-scale systems including HCommon, HDFS, HBase, ZooKeeper and Alluxio. Our evaluation shows that ECFuzz is effective in finding configuration-induced crash bugs. Compared with the state-of-the-art configuration testing tools including ConfTest, ConfErr and ConfDiagDetector, ECFuzz finds 60.3--67 more unexpected failures when the same 1000 testcases are injected into the system with an increase of 1.87x--2.63x. Moreover, ECFuzz has exposed 14 previously unknown bugs, and 5 of them have been confirmed.
DOI 原文 ·
@inproceedings{paperbot11264,
title = {ECFuzz: Effective Configuration Fuzzing for Large-Scale Systems},
author = {Junqiang Li and Senyi Li and Keyao Li and Falin Luo and Hongfang Yu and Shanshan Li and Xiang Li},
booktitle = {ICSE},
year = {2024},
doi = {10.1145/3597503.3623315}
}