However much we test a software system, some \emph{residual risk} of undiscovered bugs always remains. If we model test generation as a sampling process, a residual risk can be defined as the probability that the next test input reveals a bug. This risk is upper-bounded by the \emph{discovery probability (DP)}, i.e., the probability that the next test input covers new code, which itself is upper-bounded by the \emph{coverage rate}, i.e., the expected number of new coverage elements per test input. Prior work introduced the \emph{Good-Turing estimator (GoTu)} to estimate residual risk via coverage rate. However, we find that GoTu substantially overestimates, leading to undue optimism in bug finding because (i) the coverage rate is only a loose upper bound, and (ii) it ignores \emph{dependencies} among coverage elements.
We propose \emph{dependency-aware DP estimation} for residual risk analysis. Our estimator directly estimates DP \emph{and} accounting for coverage dependencies using Ma and Chao’s sample coverage estimation. A naive implementation requires space proportional to the number of coverage elements and executions, which can be prohibitively large. To make it practical, we introduce two optimizations: dependency-aware node removal, which reduces the number of coverage elements to observe, and online singleton cluster maintenance, which eliminates the need to record observed coverage elements in each execution.
A comparison of our estimator and GoTu on real-world software from FuzzBench demonstrates a substantial reduction in estimation error. If we stopped the campaign when the estimate of residual risk falls below a certain threshold, GoTu would lead a tester to waste $7\times$ more time than our estimator before deciding to stop. Our estimator achieves a median absolute error of only one-fifth that of GoTu. Finally, our bug-based analysis shows that our estimator achieves one to two orders of magnitude lower error than GoTu in residual risk estimation.
Wed 15 AprDisplayed time zone: Brasilia, Distrito Federal, Brazil change
16:00 - 17:30 | Testing and Analysis 7Research Track at Oceania II Chair(s): Ivan Beschastnikh The University of British Columbia | ||
16:00 15mTalk | Dependency-aware Residual Risk Analysis Research Track Pre-print | ||
16:15 15mTalk | Hallucinating Certificates: Differential Testing of TLS Certificate Validation Using Generative Language Models Research Track Muhammad Talha Paracha Ruhr University Bochum, Kyle Posluns Northeastern University, Kevin Borgolte Ruhr University Bochum, Martina Lindorfer TU Wien, David Choffnes Northeastern University Pre-print File Attached | ||
16:30 15mTalk | Fuzzing Java Optimizing Compilers with Complex Inter-Class Structures Guided by Heterogeneous Program Graphs Research Track Shiyu Qiu Huazhong University of Science and Technology, Ming Wen Huazhong University of Science and Technology, Zifan Xie Huazhong University of Science and Technology, Hai Jin Huazhong University of Science and Technology Media Attached | ||
16:45 15mTalk | Variability-Aware Fuzzing Research Track Meah Tahmeed Ahmed University of Texas at Dallas, Arnab Dev University of Texas at Dallas, Shiyi Wei University of Texas at Dallas Pre-print | ||
17:00 15mTalk | Temporal Specification Oriented Fuzzing for Trigger-Action-Programming Smart Home Integrations Research Track Jinglin Dai Nanjing University, Yifan Xiong Nanjing University, Lezhi Ma Nanjing University, Shangqing Liu Nanjing University, Lei Bu Nanjing University | ||
17:15 15mTalk | DyMA-Fuzz: Dynamic Direct Memory Access Abstraction for Re-hosted Monolithic Firmware Fuzzing Research Track Guy Farrelly The University of Adelaide, Adelaide, Michael Chesser University of Adelaide, Seyit Camtepe CSIRO Data61, Damith C. Ranasinghe University of Adelaide | ||