Sibyl: Improving Software Engineering Tools with SMT Selection

被引:2
|
作者
Leeson, Will [1 ]
Dwyer, Matthew B. [1 ]
Filieri, Antonio [2 ]
机构
[1] Univ Virginia, Dept Comp Sci, Charlottesville, VA 22904 USA
[2] Imperial Coll London, Dept Comp, London, England
基金
美国国家科学基金会;
关键词
graph neural networks; satisfiable modulo theories; algorithm selection; NEURAL-NETWORK; MODEL CHECKING;
D O I
10.1109/ICSE48619.2023.00184
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
SMT solvers are often used in the back end of different software engineering tools-e.g., program verifiers, test generators, or program synthesizers. There are a plethora of algorithmic techniques for solving SMT queries. Among the available SMT solvers, each employs its own combination of algorithmic techniques that are optimized for different fragments of logics and problem types. The most efficient solver can change with small changes in the SMT query, which makes it nontrivial to decide which solver to use. Consequently, designers of software engineering tools often select a single solver, based on familiarity or convenience, and tailor their tool towards it. Choosing an SMT solver at design time misses the opportunity to optimize query solve times and, for tools where SMT solving is a bottleneck, the performance loss can be significant. In this work, we present Sibyl, an automated SMT selector based on graph neural networks (GNNs). Sibyl creates a graph representation of a given SMT query and uses GNNs to predict how each solver in a suite of SMT solvers would perform on said query. Sibyl learns to predict based on features of SMT queries that are specific to the population on which it is trained - avoiding the need for manual feature engineering. Once trained, Sibyl makes fast and accurate predictions which can substantially reduce the time needed to solve a set of SMT queries. We evaluate Sibyl in four scenarios in which SMT solvers are used: in competition, in a symbolic execution engine, in a bounded model checker, and in a program synthesis tool. We find that Sibyl improves upon the state of the art in nearly every case and provide evidence that it generalizes better than existing techniques. Further, we evaluate Sibyl's overhead and demonstrate that it has the potential to speedup a variety of different software engineering tools.
引用
收藏
页码:2185 / 2197
页数:13
相关论文
共 50 条
  • [1] Selection criteria for software engineering tools in SMEs
    Rivas, Lornel
    Pérez, María
    Mendoza, Luis
    Grimán, Anna
    Revista de la Facultad de Ingenieria, 2010, 25 (01): : 89 - 104
  • [2] Analysis, Comparison and Selection of MAS Software Engineering Processes and Tools
    Garcia, Emilia
    Giret, Adriana
    Botti, Vicente
    PRINCIPLES OF PRACTICE IN MULTI-AGENT SYSTEMS, 2009, 5925 : 361 - 375
  • [3] SOFTWARE ENGINEERING TOOLS
    GHEZZI, C
    MICROPROCESSING AND MICROPROGRAMMING, 1986, 18 (1-5): : 603 - 603
  • [4] SOFTWARE ENGINEERING TOOLS
    ZELAZNY, R
    LECTURE NOTES IN PHYSICS, 1984, 215 : 316 - 331
  • [5] The Concept Selection of Lean Software and System Engineering Tools for Smart Cities
    Redmond, Alan Martin
    Zarli, Alain
    2017 INTERNATIONAL CONFERENCE ON ENGINEERING, TECHNOLOGY AND INNOVATION (ICE/ITMC), 2017, : 36 - 43
  • [6] Students' Selection of Teamwork Tools in Software Engineering Education: Lessons Learned
    Colomo-Palacios, Ricardo
    Samuelsen, Terje
    Casado-Lumbreras, Cristina
    Larrucea, Xabier
    INTERNATIONAL JOURNAL OF ENGINEERING EDUCATION, 2020, 36 (01) : 309 - 316
  • [7] Students' selection of teamwork tools in software engineering education: Lessons learned
    Colomo-Palacios, Ricardo
    Samuelsen, Terje
    Casado-Lumbreras, Cristina
    Larrucea, Xabier
    International Journal of Engineering Education, 2020, 36 (1 B) : 309 - 316
  • [8] TOOLS FOR NUMERICAL SOFTWARE ENGINEERING
    HAGUE, SJ
    FORD, B
    LECTURE NOTES IN COMPUTER SCIENCE, 1982, 142 : 141 - 151
  • [9] Tools for software process engineering
    Brownlie, RA
    Brown, PE
    CulverLozo, K
    Striegel, JJ
    BELL LABS TECHNICAL JOURNAL, 1997, 2 (01) : 130 - 143
  • [10] Integration of software tools in software engineering education
    Ozcan, MB
    NINTH CONFERENCE ON SOFTWARE ENGINEERING EDUCATION, PROCEEDINGS, 1996, : 149 - 161