iGen: Dynamic Interaction Inference for Configurable Software
This addresses the difficulty, expense, and error-proneness for developers in managing configurable software systems, representing a novel method for a known bottleneck rather than a foundational advancement.
The paper tackles the problem of manually acquiring detailed configuration knowledge for configurable software by proposing iGen, a dynamic analysis technique that automatically discovers expressive logical interactions between configuration options and code coverage, achieving precise results with a very small fraction of possible configurations across 29 programs in five languages.
To develop, analyze, and evolve today's highly configurable software systems, developers need deep knowledge of a system's configuration options, e.g., how options need to be set to reach certain locations, what configurations to use for testing, etc. Today, acquiring this detailed information requires manual effort that is difficult, expensive, and error prone. In this paper, we propose iGen, a novel, lightweight dynamic analysis technique that automatically discovers a program's \emph{interactions}---expressive logical formulae that give developers rich and detailed information about how a system's configuration option settings map to particular code coverage. iGen employs an iterative algorithm that runs a system under a small set of configurations, capturing coverage data; processes the coverage data to infer potential interactions; and then generates new configurations to further refine interactions in the next iteration. We evaluated iGen on 29 programs spanning five languages; the breadth of this study would be unachievable using prior interaction inference tools. Our results show that iGen finds precise interactions based on a very small fraction of the number of possible configurations. Moreover, iGen's results confirm several earlier hypotheses about typical interaction distributions and structures.