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\"ohme 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.
翻译:模糊已被证明是自动软件测试的一种基本技术,但也是一种昂贵的技术。随着软件开发中越来越多地采用CI/CD做法,一个自然的问题就是“考虑到代码变化和自动交付/部署做法的速度,什么是将模糊混入CI/CD管道的最佳方法?”事实上,B\'ohme和Zhu最近的一项研究表明,在最近对代码的修改(即回归)中,每五个错误中就有四个被引入了最近的代码修改(即,回归)。在本文中,我们仔细研究从自动软件测试和持续开发角度将模糊混入CI/CD管道的整合情况。首先,我们研究将优化机会纳入CI/CD管道的最佳方法是什么?考虑到代码变化和自动交付/部署做法的速度?” 。事实上,B\'ohme和Zhu最近的一项研究表明,在我们所分析的9个图书馆中,有3个图书馆(即6个图书馆为 > 40%)的平均模糊混杂努力可以减少 。 其次,我们调查竞选活动对CI/CD进程的影响:一个更短的模糊运动,例如15分钟(而不是24小时的智能测试中,我们更精确的测算起来的战略测试能力可以更快。