paperbot · PL 论文追踪

全部论文 待读 收藏

P2 GenTree: Using Decision Trees to Learn Interactions for Configurable Software

GenTree:用决策树学习可配置软件中的交互
ICSE 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)2021匹配度 3/10 · 论文属于用决策树学习可配置软件配置交互的动态程序分析,虽涉及机器学习与程序语言的交叉,但未涉及用户核心关注的 LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析。引用 4 inbox
KimHao Nguyen, ThanhVu Nguyen
crossref: 2026-09-12dblp: 2026-09-12arxiv: 2026-09-12

AI 速览

一句话:提出 GenTree,用决策树迭代学习配置项与代码覆盖之间的交互公式,高效刻画可配置程序的配置空间。

现代软件常高度可配置,配置项之间复杂的交互使开发、测试与分析更加困难。GenTree 是一种新的动态分析,自动学习程序的交互,即描述配置项设置如何映射到代码覆盖的逻辑公式。它采用迭代精化方法:先在小规模配置样本上运行程序获得覆盖数据,用定制的分类算法构建表示交互候选的决策树,再分析这些树生成新配置,以在下一轮中进一步精化树和交互。作者在跨 4 种语言的 17 个可配置系统上实验,表明 GenTree 仅使用很小一部分配置空间就能高效找到精确交互。

问题
高度可配置软件中配置项之间的交互难以理解和分析,例如哪些配置能到达特定代码位置,以及 buggy 行为的配置空间具有什么特征。
方法
GenTree 是动态分析,通过小样本配置运行获取覆盖数据,用定制分类算法构建决策树表示交互候选,并迭代生成新配置以精化交互公式。
评估
在跨 4 种语言的 17 个可配置系统上进行实验,表明 GenTree 能以极小比例的配置空间高效发现精确交互。
原文摘要(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 configurable systems spanning 4 languages show that GenTree efficiently finds precise interactions using a tiny fraction of the configuration space.

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@inproceedings{abs-2102-06872,
  title = {GenTree: Using Decision Trees to Learn Interactions for Configurable Software},
  author = {KimHao Nguyen and ThanhVu Nguyen},
  booktitle = {ICSE},
  year = {2021},
  doi = {10.1109/icse43902.2021.00142}
}