Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times

2024年04月27日
  • 简介
    Linux内核是高度可配置的,具有一个构建系统,以配置文件作为输入,自动调整源代码。然而,可配置性会使测试变得复杂,因为不同的配置选项会导致包含不同的代码片段。每个月收到数千个补丁,Linux内核维护人员采用广泛的自动化持续集成测试。为了尝试补丁覆盖率,即考虑所有更改行,当前的方法要么使用最大化总语句覆盖率的配置文件,要么使用多个随机生成的配置文件,这两种方法都会带来高的构建时间,而不能保证补丁覆盖率。为了在不爆炸性的构建时间内实现补丁覆盖率,我们提出了krepair,它可以自动修复配置文件,使其构建速度快,但补丁覆盖率差,以实现高的补丁覆盖率,对构建时间的影响很小。krepair的工作原理是发现一小组对配置文件的更改,以确保补丁覆盖率,保留大部分原始配置文件的设置。我们的评估表明,当应用于最近Linux内核补丁的统计显著样本的补丁覆盖率差的配置文件时,krepair实现了近乎完全的补丁覆盖率,平均为98.5%,而在99%的补丁中改变不到1.53%的原始默认配置文件,保持构建时间比最大化配置文件快10.5倍。
  • 图表
  • 解决问题
    论文旨在解决Linux内核配置文件测试中,配置的可定制性导致测试困难的问题,提出了一种新的方法krepair,旨在通过自动修复配置文件以实现高补丁覆盖率而不会影响构建时间。
  • 关键思路
    krepair通过发现配置文件中仅需更改少量设置即可实现补丁覆盖率,从而实现快速构建和高补丁覆盖率的平衡。
  • 其它亮点
    论文通过实验评估证明krepair能够在99%的补丁中仅更改不到1.53%的原始配置文件,从而使构建时间比最大化配置文件快10.5倍,同时实现了近乎完整的补丁覆盖率(平均98.5%)。值得关注的是,该方法能够应用于最近的Linux内核补丁中。
  • 相关研究
    相关研究包括使用最大化配置文件或多个随机生成的配置文件来实现补丁覆盖率,但这些方法都会导致高昂的构建时间。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论