CIDFuzz: Fuzz testing for continuous integration

Abstract As agile software development and extreme programing have become increasingly popular, continuous integration (CI) has become a widely used collaborative work method. However, it is common to make changes frequently to a project during CI. If existing testing methods are applied to CI direc...

Full description

Bibliographic Details
Main Authors: Jiaming Zhang, Zhanqi Cui, Xiang Chen, Huiwen Yang, Liwei Zheng, Jianbin Liu
Format: Article
Language:English
Published: Hindawi-IET 2023-06-01
Series:IET Software
Subjects:
Online Access:https://doi.org/10.1049/sfw2.12125
_version_ 1797428868767809536
author Jiaming Zhang
Zhanqi Cui
Xiang Chen
Huiwen Yang
Liwei Zheng
Jianbin Liu
author_facet Jiaming Zhang
Zhanqi Cui
Xiang Chen
Huiwen Yang
Liwei Zheng
Jianbin Liu
author_sort Jiaming Zhang
collection DOAJ
description Abstract As agile software development and extreme programing have become increasingly popular, continuous integration (CI) has become a widely used collaborative work method. However, it is common to make changes frequently to a project during CI. If existing testing methods are applied to CI directly, it will be difficult to make testing resources focus on changes generated by CI, which results in insufficient testing for changes. To solve this problem, we propose a fuzz testing method for CI. First, differential analysis is performed to determine the change points generated during CI, change points are added to the taint source set, and static analysis is conducted to calculate the distances between each basic block and the taint sources. Then, the project under test is instrumented according to the distances. During fuzz testing, testing resources are allocated based on seed coverage to test the change points effectively. Using the proposed methods, we implement CIDFuzz as a prototype tool, and experiments are conducted on four open‐source projects that use CI. Experimental results show that, compared with AFL and AFLGo, CIDFuzz can reduce the time costs of covering change points up to 39.59% and 41.64%, respectively. Also, CIDFuzz can reduce the time costs of reproducing vulnerabilities up to 34.78% and 25.55%.
first_indexed 2024-03-09T09:05:05Z
format Article
id doaj.art-625c33fbf245444a993d0770fc150684
institution Directory Open Access Journal
issn 1751-8806
1751-8814
language English
last_indexed 2024-03-09T09:05:05Z
publishDate 2023-06-01
publisher Hindawi-IET
record_format Article
series IET Software
spelling doaj.art-625c33fbf245444a993d0770fc1506842023-12-02T10:29:58ZengHindawi-IETIET Software1751-88061751-88142023-06-0117330131510.1049/sfw2.12125CIDFuzz: Fuzz testing for continuous integrationJiaming Zhang0Zhanqi Cui1Xiang Chen2Huiwen Yang3Liwei Zheng4Jianbin Liu5Computer School Beijing Information Science and Technology University Beijing ChinaComputer School Beijing Information Science and Technology University Beijing ChinaSchool of Information Science and Technology Nantong University Nantong ChinaComputer School Beijing Information Science and Technology University Beijing ChinaComputer School Beijing Information Science and Technology University Beijing ChinaComputer School Beijing Information Science and Technology University Beijing ChinaAbstract As agile software development and extreme programing have become increasingly popular, continuous integration (CI) has become a widely used collaborative work method. However, it is common to make changes frequently to a project during CI. If existing testing methods are applied to CI directly, it will be difficult to make testing resources focus on changes generated by CI, which results in insufficient testing for changes. To solve this problem, we propose a fuzz testing method for CI. First, differential analysis is performed to determine the change points generated during CI, change points are added to the taint source set, and static analysis is conducted to calculate the distances between each basic block and the taint sources. Then, the project under test is instrumented according to the distances. During fuzz testing, testing resources are allocated based on seed coverage to test the change points effectively. Using the proposed methods, we implement CIDFuzz as a prototype tool, and experiments are conducted on four open‐source projects that use CI. Experimental results show that, compared with AFL and AFLGo, CIDFuzz can reduce the time costs of covering change points up to 39.59% and 41.64%, respectively. Also, CIDFuzz can reduce the time costs of reproducing vulnerabilities up to 34.78% and 25.55%.https://doi.org/10.1049/sfw2.12125program testingquality assurancesoftware quality
spellingShingle Jiaming Zhang
Zhanqi Cui
Xiang Chen
Huiwen Yang
Liwei Zheng
Jianbin Liu
CIDFuzz: Fuzz testing for continuous integration
IET Software
program testing
quality assurance
software quality
title CIDFuzz: Fuzz testing for continuous integration
title_full CIDFuzz: Fuzz testing for continuous integration
title_fullStr CIDFuzz: Fuzz testing for continuous integration
title_full_unstemmed CIDFuzz: Fuzz testing for continuous integration
title_short CIDFuzz: Fuzz testing for continuous integration
title_sort cidfuzz fuzz testing for continuous integration
topic program testing
quality assurance
software quality
url https://doi.org/10.1049/sfw2.12125
work_keys_str_mv AT jiamingzhang cidfuzzfuzztestingforcontinuousintegration
AT zhanqicui cidfuzzfuzztestingforcontinuousintegration
AT xiangchen cidfuzzfuzztestingforcontinuousintegration
AT huiwenyang cidfuzzfuzztestingforcontinuousintegration
AT liweizheng cidfuzzfuzztestingforcontinuousintegration
AT jianbinliu cidfuzzfuzztestingforcontinuousintegration