IET Software (Jun 2023)

CIDFuzz: Fuzz testing for continuous integration

  • Jiaming Zhang,
  • Zhanqi Cui,
  • Xiang Chen,
  • Huiwen Yang,
  • Liwei Zheng,
  • Jianbin Liu

DOI
https://doi.org/10.1049/sfw2.12125
Journal volume & issue
Vol. 17, no. 3
pp. 301 – 315

Abstract

Read online

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

Keywords