TU Darmstadt / ULB / TUprints

Algorithm selection for software validation based on graph kernels

Richter, Cedric ; Hüllermeier, Eyke ; Jakobs, Marie-Christine ; Wehrheim, Heike (2024)
Algorithm selection for software validation based on graph kernels.
In: Automated Software Engineering, 2020, 27 (1-2)
doi: 10.26083/tuprints-00023888
Article, Secondary publication, Publisher's Version

[img] Text
s10515-020-00270-x.pdf
Copyright Information: CC BY 4.0 International - Creative Commons, Attribution.

Download (2MB)
Item Type: Article
Type of entry: Secondary publication
Title: Algorithm selection for software validation based on graph kernels
Language: English
Date: 17 December 2024
Place of Publication: Darmstadt
Year of primary publication: June 2020
Place of primary publication: Dordrecht
Publisher: Springer Science
Journal or Publication Title: Automated Software Engineering
Volume of the journal: 27
Issue Number: 1-2
DOI: 10.26083/tuprints-00023888
Corresponding Links:
Origin: Secondary publication DeepGreen
Abstract:

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.

Uncontrolled Keywords: Algorithm selection, Software validation, Machine learning, Graph kernels, Verification, Testing
Status: Publisher's Version
URN: urn:nbn:de:tuda-tuprints-238883
Classification DDC: 000 Generalities, computers, information > 004 Computer science
Divisions: 20 Department of Computer Science > Semantics and Verification of Concurrent Programs
Date Deposited: 17 Dec 2024 12:38
Last Modified: 17 Dec 2024 12:38
SWORD Depositor: Deep Green
URI: https://tuprints.ulb.tu-darmstadt.de/id/eprint/23888
PPN:
Export:
Actions (login required)
View Item View Item