当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Algorithm selection for software validation based on graph kernels
Automated Software Engineering ( IF 3.4 ) Pub Date : 2020-04-18 , DOI: 10.1007/s10515-020-00270-x
Cedric Richter , Eyke Hüllermeier , Marie-Christine Jakobs , Heike Wehrheim

Algorithm selection is the task of choosing an algorithm from a given set of candidate algorithms when faced with a particular problem instance. Algorithm selection via machine learning (ML) has recently been successfully applied for various problem classes, including computationally hard problems such as SAT. In this paper, we study algorithm selection for software validation , i.e., the task of choosing a software validation tool for a given validation instance. A validation instance consists of a program plus properties to be checked on it. The application of machine learning techniques to this task first of all requires an appropriate representation of software. To this end, we propose a dedicated kernel function , which compares two programs in terms of their similarity, thus making the algorithm selection task amenable to kernel-based machine learning methods. Our kernel operates on a graph representation of source code mixing elements of control-flow and program-dependence graphs with abstract syntax trees. Thus, given two such representations as input, the kernel function yields a real-valued score that can be interpreted as a degree of similarity. We experimentally evaluate our kernel in two learning scenarios, namely a classification and a ranking problem: (1) selecting between a verification and a testing tool for bug finding (i.e., property violation), and (2) ranking several verification tools, from presumably best to worst, for property proving. The evaluation, which is based on data sets from the annual software verification competition SV-COMP, demonstrates our kernel to generalize well and to achieve rather high prediction accuracy, both for the classification and the ranking task.

中文翻译:

基于图核的软件验证算法选择

算法选择是在面对特定问题实例时从给定的候选算法集中选择算法的任务。通过机器学习 (ML) 进行的算法选择最近已成功应用于各种问题类别,包括计算难度较大的问题,例如 SAT。在本文中,我们研究了软件验证的算法选择,即为给定的验证实例选择软件验证工具的任务。验证实例由程序和要对其检查的属性组成。将机器学习技术应用于此任务首先需要适当的软件表示。为此,我们提出了一个专用的核函数,它比较了两个程序的相似性,从而使算法选择任务适合基于内核的机器学习方法。我们的内核使用抽象语法树对控制流和程序依赖图的源代码混合元素的图形表示进行操作。因此,给定两个这样的表示作为输入,核函数产生一个实值分数,可以解释为相似度。我们在两个学习场景中实验性地评估我们的内核,即分类和排名问题:(1)在验证和测试工具之间进行选择以发现错误(即属性违规),以及(2)对几个验证工具进行排名,大概来自最好到最坏,用于财产证明。该评估基于年度软件验证竞赛 SV-COMP 的数据集,
更新日期:2020-04-18
down
wechat
bug