kirancodes.me
To Proof Maintenance & Beyond!

An empirical study of real-world variability bugs detected by variability-oblivious tools

Austin Mordahl, Jeho Oh, Ugur Koc, Shiyi Wei, Paul Gazzillo

Abstract

Many critical software systems developed in C utilize compile-time configurability. The many possible configurations of this software make bug detection through static analysis difficult. While variability-aware static analyses have been developed, there remains a gap between those and state-of-the-art static bug detection tools. In order to collect data on how such tools may perform and to develop real-world benchmarks, we present a way to leverage configuration sampling, off-the-shelf “variability-oblivious” bug detectors, and automatic feature identification techniques to simulate a variability-aware analysis. We instantiate our approach using four popular static analysis tools on three highly configurable, real-world C projects, obtaining 36,061 warnings, 80% of which are variability warnings. We analyze the warnings we collect from these experiments, finding that most results are variability warnings of a variety of kinds such as NULL dereference. We then manually investigate these warnings to produce a benchmark of 77 confirmed true bugs (52 of which are variability bugs) useful for future development of variability-aware analyses.

BibTeX
@inproceedings{Mordahl-al:FSE19,
  author    = {Austin Mordahl and
               Jeho Oh and
               Ugur Koc and
               Shiyi Wei and
               Paul Gazzillo},
  title     = {An empirical study of real-world variability bugs detected by variability-oblivious tools},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {50--61},
  publisher = {{ACM}},
  year      = {2019},
}

Related papers