A solver-Aided language for test input generation

被引:6
|
作者
Ringer T. [1 ]
Grossman D. [1 ]
Schwartz-Narbonne D. [2 ]
Tasiran S. [2 ]
机构
[1] University of Washington, United States
[2] Amazon, United States
关键词
Generators; Solver-aided languages; Test input generation;
D O I
10.1145/3133915
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Developing a small but useful set of inputs for tests is challenging. We show that a domain-specific language backed by a constraint solver can help the programmer with this process. The solver can generate a set of test inputs and guarantee that each input is different from other inputs in a way that is useful for testing. This paper presents Iorek: a tool that empowers the programmer with the ability to express to any SMT solver what it means for inputs to be different. The core of Iorek is a rich language for constraining the set of inputs, which includes a novel bounded enumeration mechanism that makes it easy to define and encode a flexible notion of difference over a recursive structure. We demonstrate the flexibility of this mechanism for generating strings. We use Iorek to test real services and find that it is effective at finding bugs. We also build Iorek into a random testing tool and show that it increases coverage. © 2017 Copyright held by the owner/author(s).
引用
收藏
相关论文
共 50 条
  • [1] Modeling Biology with Solver-Aided Programming Languages
    Bodik, Rastislav
    ACM SIGPLAN NOTICES, 2014, 49 (03) : 1 - 1
  • [2] Solver-Aided Multi-Party Configuration
    Dackow, Kevin
    Wagner, Andrew
    Nelson, Tim
    Krishnamurthi, Shriram
    Benson, Theophilus A.
    PROCEEDINGS OF THE 19TH ACM WORKSHOP ON HOT TOPICS IN NETWORKS, HOTNETS 2020, 2020, : 103 - 109
  • [3] Solver-Aided Constant-Time Hardware Verification
    Gleissenthall, Klaus, V
    Kici, Rami Gokhan
    Stefan, Deian
    Jhala, Ranjit
    CCS '21: PROCEEDINGS OF THE 2021 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2021, : 429 - 444
  • [4] HAMPA: Solver-Aided Recency-Aware Replication
    Li, Xiao
    Houshmand, Farzin
    Lesani, Mohsen
    COMPUTER AIDED VERIFICATION (CAV 2020), PT I, 2020, 12224 : 324 - 349
  • [5] A Lightweight Symbolic Virtual Machine for Solver-Aided Host Languages
    Torlak, Emina
    Bodik, Rastislav
    ACM SIGPLAN NOTICES, 2014, 49 (06) : 530 - 541
  • [6] A comparison of three solver-aided programming languages: αRby, ProB, and Rosette
    St-Denis, Richard
    JOURNAL OF COMPUTER LANGUAGES, 2023, 77
  • [7] FabHacks: Transform Everyday Objects into Home Hacks Leveraging a Solver-aided DSL
    Mei, Yuxuan
    Jones, Benjamin
    Cascaval, Dan
    Mankoff, Jennifer
    Vouga, Etienne
    Schulz, Adriana
    9TH ACM SYMPOSIUM ON COMPUTATIONAL FABRICATION, SCF 2024, 2024,
  • [8] Deriving Divide-and-Conquer Dynamic Programming Algorithms using Solver-Aided Transformations
    Itzhaky, Shachar
    Singh, Rohit
    Solar-Lezama, Armando
    Yessenov, Kuat
    Lu, Yongquan
    Leiserson, Charles
    Chowdhury, Rezaul
    ACM SIGPLAN NOTICES, 2016, 51 (10) : 145 - 164
  • [9] Automated Test Case Generation from Input Specification in Natural Language
    Li, Tianyu
    Lu, Xiuwen
    Xu, Hui
    2022 IEEE INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING WORKSHOPS (ISSREW 2022), 2022, : 258 - 261
  • [10] A CLP heap solver for test case generation
    Albert, Elvira
    Garcia De La Banda, Maria
    Gomez-Zamalloa, Miguel
    Miguel Rojas, Jose
    Stuckey, Peter
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2013, 13 : 721 - 735