论文标题

CI/CD管道中模糊技术的有效性和可扩展性

Effectiveness and Scalability of Fuzzing Techniques in CI/CD Pipelines

论文作者

Klooster, Thijs, Turkmen, Fatih, Broenink, Gerben, Hove, Ruben ten, Böhme, Marcel

论文摘要

被证明是对自动化软件测试的基本技术,但也是一种昂贵的技术。随着软件开发中CI/CD实践的采用越来越多,一个自然的问题是“考虑到代码更改中的速度和自动化的交付/部署实践的速度,将模糊整合到CI/CD管道中的最佳方法是什么?”。确实,Böhme和Zhu最近的一项研究表明,最近的代码更改(即回归)引入了每五个错误中的四个错误。在本文中,我们仔细研究了来自自动化软件测试和连续开发角度的模糊器与CI/CD管道的集成。首先,我们研究了不需要模糊不清的分类机会,并通过实验分析发现,在我们分析的九个库中的三个中,三个中的三个可以将CI/CD中的平均模糊工作减少约63%(六个文库> 40%)。其次,我们调查了模糊运动持续时间对CI/CD流程的影响:较短的模糊运动,例如15分钟(而不是现场24小时的智慧)促进了更快的管道,并且仍然可以发现重要的错误,但也可以降低其检测成熟的错误的能力。最后,我们讨论了一种优先级策略,该策略会根据一组预定义的优先策略自动将资源分配给模糊广告系列。我们的发现表明,连续模糊(作为CI/CD中自动测试的一部分)确实是有益的,并且有许多优化的机会来提高模糊测试的有效性和可扩展性。

Fuzzing has proven to be a fundamental technique to automated software testing but also a costly one. With the increased adoption of CI/CD practices in software development, a natural question to ask is `What are the best ways to integrate fuzzing into CI/CD pipelines considering the velocity in code changes and the automated delivery/deployment practices?'. Indeed, a recent study by Böhme and Zhu shows that four in every five bugs have been introduced by recent code changes (i.e. regressions). In this paper, we take a close look at the integration of fuzzers to CI/CD pipelines from both automated software testing and continuous development angles. Firstly, we study an optimization opportunity to triage commits that do not require fuzzing and find, through experimental analysis, that the average fuzzing effort in CI/CD can be reduced by ~63% in three of the nine libraries we analyzed (>40% for six libraries). Secondly, we investigate the impact of fuzzing campaign duration on the CI/CD process: A shorter fuzzing campaign such as 15 minutes (as opposed to the wisdom of 24 hours in the field) facilitates a faster pipeline and can still uncover important bugs, but may also reduce its capability to detect sophisticated bugs. Lastly, we discuss a prioritization strategy that automatically assigns resources to fuzzing campaigns based on a set of predefined priority strategies. Our findings suggest that continuous fuzzing (as part of the automated testing in CI/CD) is indeed beneficial and there are many optimization opportunities to improve the effectiveness and scalability of fuzz testing.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源