GenTree: Using Decision Trees to Learn Interactions for Configurable Software
KimHao Nguyen, ThanhVu Nguyen

TL;DR
GenTree is a dynamic analysis tool that learns logical interactions between configuration options and code coverage in software systems, aiding development and testing.
Contribution
It introduces a novel iterative decision tree-based method to automatically learn configuration interactions in highly configurable software.
Findings
Efficiently finds precise interactions with minimal configuration sampling.
Works across multiple programming languages and systems.
Reduces complexity in understanding configurable software behaviors.
Abstract
Modern software systems are increasingly designed to be highly configurable, which increases flexibility but can make programs harder to develop, test, and analyze, e.g., how configuration options are set to reach certain locations, what characterizes the configuration space of an interesting or buggy program behavior? We introduce GenTree, a new dynamic analysis that automatically learns a program's interactions - logical formulae that describe how configuration option settings map to code coverage. GenTree uses an iterative refinement approach that runs the program under a small sample of configurations to obtain coverage data; uses a custom classifying algorithm on these data to build decision trees representing interaction candidates; and then analyzes the trees to generate new configurations to further refine the trees and interactions in the next iteration. Our experiments on 17…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
