Symbolic Liveness Analysis of Real-World Software

被引:4
|
作者
Schemmel, Daniel [1 ]
Buening, Julian [1 ]
Dustmann, Oscar Soria [1 ]
Noll, Thomas [2 ]
Wehrle, Klaus [1 ]
机构
[1] Rhein Westfal TH Aachen, Commun & Distributed Syst, Aachen, Germany
[2] Rhein Westfal TH Aachen, Software Modeling & Verificat, Aachen, Germany
基金
欧洲研究理事会;
关键词
Liveness analysis; Symbolic Execution; Software testing; Non-termination bugs; MODEL CHECKING; VERIFICATION; EXECUTION; SAFETY;
D O I
10.1007/978-3-319-96142-2_27
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Liveness violation bugs are notoriously hard to detect, especially due to the difficulty inherent in applying formal methods to real-world programs. We present a generic and practically useful liveness property which defines a program as being live as long as it will eventually either consume more input or terminate. We show that this property naturally maps to many different kinds of real-world programs. To demonstrate the usefulness of our liveness property, we also present an algorithm that can be efficiently implemented to dynamically find lassos in the target program's state space during Symbolic Execution. This extends Symbolic Execution, a well known dynamic testing technique, to find a new class of program defects, namely liveness violations, while only incurring a small runtime and memory overhead, as evidenced by our evaluation. The implementation of our method found a total of five previously undiscovered software defects in BusyBox and the GNU Coreutils. All five defects have been confirmed and fixed by the respective maintainers after shipping for years, most of them well over a decade.
引用
收藏
页码:447 / 466
页数:20
相关论文
共 50 条
  • [1] Parallel Symbolic Execution for Automated Real-World Software Testing
    Bucur, Stefan
    Ureche, Vlad
    Zamfir, Cristian
    Candea, George
    [J]. EUROSYS 11: PROCEEDINGS OF THE EUROSYS 2011 CONFERENCE, 2011, : 183 - 197
  • [2] REAL-WORLD SOFTWARE ENGINEERING
    PYLE, IC
    [J]. SOFTWARE ENGINEERING JOURNAL, 1991, 6 (03): : 68 - 71
  • [3] SOFTWARE ISNT THE REAL-WORLD
    COOK, S
    DANIELS, J
    [J]. JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1994, 7 (02): : 22 - 29
  • [4] Real-world software development
    Sowatskey, N
    [J]. IEEE SOFTWARE, 2005, 22 (01) : 9 - 9
  • [5] Software usage metrics for real-world software testing
    Ryan, L
    [J]. IEEE SPECTRUM, 1998, 35 (04) : 64 - 68
  • [6] Guided Symbolic Execution in Real-World Binary Program
    Park, Sung Hyun
    Noh, Bong Nam
    [J]. INFORMATION SCIENCE AND APPLICATIONS, 2020, 621 : 387 - 396
  • [7] SOFTWARE MODELS FOR REAL-WORLD APPLICABILITY TESTS
    KOCH, W
    MISTRIK, I
    [J]. INFORMATION PROCESSING & MANAGEMENT, 1984, 20 (1-2) : 243 - 243
  • [8] A/D SOFTWARE EASES REAL-WORLD CHALLENGES
    VANDENHEEDE, TM
    [J]. PERSONAL COMPUTING, 1982, 6 (07): : 106 - 110
  • [9] Provable Secure Software Masking in the Real-World
    Beckers, Arthur
    Wouters, Lennert
    Gierlichs, Benedikt
    Preneel, Bart
    Verbauwhede, Ingrid
    [J]. CONSTRUCTIVE SIDE-CHANNEL ANALYSIS AND SECURE DESIGN, COSADE 2022, 2022, 13211 : 215 - 235
  • [10] Towards Automatic Grammatical Evolution for Real-world Symbolic Regression
    Ali, Muhammad
    Kshirsagar, Meghana
    Naredo, Enrique
    Ryan, Conor
    [J]. PROCEEDINGS OF THE 13TH INTERNATIONAL JOINT CONFERENCE ON COMPUTATIONAL INTELLIGENCE (IJCCI), 2021, : 68 - 78