Variability-Aware Static Analysis at Scale: An Empirical Study

Variability-Aware Static Analysis at Scale: An Empirical Study
复制标题

DOI:
10.1145/3280986
复制
发表时间:
2018-11-01
影响因子:
4.4
通讯作者:
Apel, Sven
Apel, Sven
中科院分区:
计算机科学1区
文献类型:
--
作者:
Von Rhein, Alexander;Liebig, Joerg;Apel, Sven

文献摘要

被引文献

相似文献

可变性管理和生成器技术的出现使用户可以通过选择所需的配置选项来从可配置的代码库中得出单个系统变体。这种方法引起了可能的数十亿种变量,但是,通过经典分析技术无法有效地分析错误和其他属性。为了解决这个问题,研究人员和从业人员开发了采样启发式方法,以及最近的变异性分析技术。虽然采样大大减少了分析工作,但获得的信息一定是不完整的,尚不清楚最先进的采样技术是否比例为数十亿个变体。可变性分析技术直接处理可配置的代码库,从而利用各个变体之间的相似性,以减少分析工作。然而。到目前为止,有希望的是,可变性的分析技术主要仅应用于小型学术示例。为了了解可变性感和基于样本的静态分析技术的相互优势和劣势,我们通过七个混凝土控制流和数据流分析比较了两者,应用于五个现实世界主题系统:busybox,busybox,busybox, OpenSSL,SQLITE,X86 Linux内核和UCLIBC。特别是,我们比较静态分析的效率(分析执行时间)及其有效性(发现的潜在错误)。总体而言,我们发现可变性分析在效率和有效性方面的大多数基于样本的静态分析技术的表现优于大多数基于样本的静态分析技术。例如,与仅检查两种变体的分析,该分析的静态分析的openSSL的所有变体都更快,该分析不会利用变体之间的相似性。
The advent of variability management and generator technology enables users to derive individual system variants from a configurable code base by selecting desired configuration options. This approach gives rise to the generation of possibly billions of variants, which, however, cannot be efficiently analyzed for bugs and other properties with classic analysis techniques. To address this issue, researchers and practitioners have developed sampling heuristics and, recently, variability-aware analysis techniques. While sampling reduces the analysis effort significantly, the information obtained is necessarily incomplete, and it is unknown whether state-of-the-art sampling techniques scale to billions of variants. Variability-aware analysis techniques process the configurable code base directly, exploiting similarities among individual variants with the goal of reducing analysis effort. However. while being promising, so far, variability-aware analysis techniques have been applied mostly only to small academic examples. To learn about the mutual strengths and weaknesses of variability-aware and sample-based static-analysis techniques, we compared the two by means of seven concrete control-flow and data-flow analyses, applied to five real-world subject systems: BUSYBOX, OPENSSL, SQLITE, the x86 LINUX kernel, and UCLIBC. In particular, we compare the efficiency (analysis execution time) of the static analyses and their effectiveness (potential bugs found). Overall, we found that variability-aware analysis outperforms most sample-based static-analysis techniques with respect to efficiency and effectiveness. For example, checking all variants of OPENSSL with a variability-aware static analysis is faster than checking even only two variants with an analysis that does not exploit similarities among variants.