一句话:提出 NDP,用两个神经语言模型估计测试 oracle 并按配置项与取值范围双层排序,从而更快发现配置性能缺陷。
随着软件可配置性增强,配置选项可能意外导致性能退化,形成配置性能缺陷(CPBug)。这类缺陷隐藏在源代码中,测试困难:oracle 难以设定,配置测量昂贵,搜索空间巨大,现有工具在有限预算下运行时间长且检测效果差。论文提出 NDP,一个通用框架,可与不同启发式生成器结合。其核心是使用两个神经语言模型:一个估计 CPBug 类型以充当 oracle,另一个推断选项与 CPBug 相关的概率,从而在配置选项和取值范围两个层级优先搜索。在多个广泛使用系统的不同版本上评估,NDP 在 87% 情况下更好地预测 CPBug 类型,并发现更多 CPBug,相比最先进工具最高获得 88.88 倍测试效率加速。
As software systems become more complex and configurable, more performance problems tend to arise from the configuration designs. This has caused some configuration options to unexpectedly degrade performance which deviates from their original expectations designed by the developers. Such discrepancies, namely configuration performance bugs (CPBugs), are devastating and can be deeply hidden in the source code. Yet, efficiently testing CPBugs is difficult, not only due to the test oracle is hard to set, but also because the configuration measurement is expensive and there are simply too many possible configurations to test. As such, existing testing tools suffer from lengthy runtime or have been ineffective in detecting CPBugs when the budget is limited, compounded by inaccurate test oracle. In this paper, we seek to achieve significantly faster CPBug testing by neurally prioritizing the testing at both the configuration option and value range levels with automated oracle estimation. Our proposed tool, dubbed NDP, is a general framework that works with different heuristic generators. The idea is to leverage two neural language models: one to estimate the CPBug types that serve as the oracle while, more vitally, the other to infer the probabilities of an option being CPBug-related, based on which the options and the value ranges to be searched can be prioritized. Experiments on several widely-used systems of different versions reveal that NDP can, in general, better predict CPBug type in 87 % cases and find more CPBugs with up to$88.88 \times$testing efficiency speedup over the state-of-the-art tools.