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
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: |
View Item |