Configuration coverage in the analysis of large-scale system software

  • Authors:
  • Reinhard Tartler;Daniel Lohmann;Christian Dietrich;Christoph Egger;Julio Sincero

  • Affiliations:
  • Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany;Friedrich-Alexander University Erlangen-Nuremberg, Germany

  • Venue:
  • PLOS '11 Proceedings of the 6th Workshop on Programming Languages and Operating Systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

System software, especially operating systems, tends to be highly configurable. Like every complex piece of software, a considerable amount of bugs in the implementation has to be expected. In order to improve the general code quality, tools for static analysis provide means to check for source code defects without having to run actual test cases on real hardware. Still, for proper type checking a specific configuration is required so that all header include paths are available and all types are properly resolved. In order to find as many bugs as possible, usually a "full configuration" is used for the check. However, mainly because of alternative blocks in form of #else-blocks, a single configuration is insufficient to achieve full coverage. In this paper, we present a metric for configuration coverage (CC) and explain the challenges for (properly) calculating it. Furthermore, we present an efficient approach for determining a sufficiently small set of configurations that achieve (nearly) full coverage and evaluate it on a recent Linux kernel version.