摘要
arXiv:2501.15392v2 类别: cross
摘要:随着软件系统变得越来越复杂和可配置,更多的性能问题往往会源自配置设计。这导致一些配置选项意外地降低了性能,偏离了开发者最初的预期。这种差异,即配置性能 bug (CPBugs),极其破坏性,并且可能在源代码中深藏不露。然而,高效地测试 CPBugs 是困难的,不仅是因为测试 oracle 难以设定,而且还因为配置测量成本高昂,且要测试的配置组合也太多。因此,现有的测试工具要么运行时间过长,要么在预算有限的情况下无法有效检测 CPBugs,而且测试 oracle 还不够准确。在本文中,我们通过神经网络优先考虑在配置选项和值范围层面进行测试,结合自动 oracle 估计,旨在实现显著更快的 CPBugs 测试。我们提出的工具称为 NDP,是一个通用框架,可以与不同的启发式生成器一起工作。其想法是利用两个神经语言模型:一个用于估计 CPBugs 类型,作为 oracle,更重要的是,另一个可以根据选项是否与 CPBugs 有关推断出概率,基于这些信息,可以优先级排序待搜索的选项和值范围。在多个不同版本的广泛使用的系统上的实验表明,NDP 在一般情况下可以更好地预测 CPBugs 类型,达到 87% 的情况下,并且与最先进的工具相比,在测试效率上提高了 88.88 倍,能够发现更多的 CPBugs。