Effectiveness and Scalability of Fuzzing Techniques in CI/CD Pipelines

05/30/2022
by   Thijs Klooster, et al.
0

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 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.

READ FULL TEXT

page 8

page 9

research
11/10/2017

Continuous Integration: The Silver Bullet?

Continuous integration (CI) tools integrate code changes by automaticall...
research
02/07/2022

On Continuous Integration / Continuous Delivery for Automated Deployment of Machine Learning Models using MLOps

Model deployment in machine learning has emerged as an intriguing field ...
research
01/25/2021

Creating a Virtuous Cycle in Performance Testing at MongoDB

It is important to detect changes in software performance during develop...
research
11/14/2022

Jenkins Pipelines: A Novel Approach to Machine Learning Operations (MLOps)

Machine Learning is a widely popular field that is being used in an incr...
research
03/29/2023

Analyzing the Effects of CI/CD on Open Source Repositories in GitHub and GitLab

Numerous articles emphasize the benefits of implementing Continuous Inte...
research
04/08/2021

Automated User Experience Testing through Multi-Dimensional Performance Impact Analysis

Although there are many automated software testing suites, they usually ...
research
03/27/2018

PIE: A Domain-Specific Language for Interactive Software Development Pipelines

Context. Software development pipelines are used for automating essentia...

Please sign up or login with your details

Forgot password? Click here to reset