Reachable coverage: Estimating saturation in fuzzing

Danushka Liyanage, Marcel Bohme, Chakkrit Tantithamthavorn, Stephan Lipp

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

6 Citations (Scopus)

Abstract

Reachable coverage is the number of code elements in the search space of a fuzzer (i.e., an automatic software testing tool). A fuzzer cannot find bugs in code that is unreachable. Hence, reachable coverage quantifies fuzzer effectiveness. Using static program analysis, we can compute an upper bound on the number of reachable coverage elements, e.g., by extracting the call graph. However, we cannot decide whether a coverage element is reachable in general. If we could precisely determine reachable coverage efficiently, we would have solved the software verification problem. Unfortunately, we cannot approach a given degree of accuracy for the static approximation, either. In this paper, we advocate a statistical perspective on the approximation of the number of elements in the fuzzer's search space, where accuracy does improve as a function of the analysis runtime. In applied statistics, corresponding estimators have been developed and well established for more than a quarter century. These estimators hold an exciting promise to finally tackle the long-standing challenge of counting reachability. In this paper, we explore the utility of these estimators in the context of fuzzing. Estimates of reachable coverage can be used to measure (a) the amount of untested code, (b) the effectiveness of the testing technique, and (c) the completeness of the ongoing fuzzing campaign (w.r.t. the asymptotic max. achievable coverage). We make all data and our analysis publicly available.

Original languageEnglish
Title of host publicationProceedings - 2023 IEEE/ACM 45th International Conference on Software Engineering, ICSE 2023
EditorsLori Pollock, Massimiliano Di Penta
Place of PublicationPiscataway NJ USA
PublisherIEEE, Institute of Electrical and Electronics Engineers
Pages371-383
Number of pages13
ISBN (Electronic)9781665457019
ISBN (Print)9781665457026
DOIs
Publication statusPublished - 2023
EventInternational Conference on Software Engineering 2023 - Melbourne, Australia
Duration: 15 May 202316 May 2023
Conference number: 45th
https://ieeexplore.ieee.org/xpl/conhome/10172484/proceeding (Proceedings)
https://conf.researchr.org/home/icse-2023 (Website)

Conference

ConferenceInternational Conference on Software Engineering 2023
Abbreviated titleICSE 2023
Country/TerritoryAustralia
CityMelbourne
Period15/05/2316/05/23
Internet address

Cite this