Finding and fixing faults

被引:17
|
作者
Jobstmann, Barbara [2 ,3 ]
Staber, Stefan
Griesmayer, Andreas [4 ]
Bloem, Roderick [1 ]
机构
[1] Graz Univ Technol, A-8010 Graz, Austria
[2] CNRS, Verimag, F-75700 Paris, France
[3] Univ Grenoble, Grenoble, France
[4] Imperial Coll London, London, England
关键词
Debugging; Fault localization; Fault correction; Verification; Games; Controller synthesis; Linear temporal logic; Memoryless strategies; Repair; DIAGNOSIS; REPAIR;
D O I
10.1016/j.jcss.2011.05.005
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Knowing that a program has a bug is good, knowing its location is better, but a fix is best. We present a method to automatically locate and correct faults in a finite state system, either at the gate level or at the source level. We assume that the specification is given in Linear Temporal Logic, and state the correction problem as a game, in which the protagonist selects a faulty component and suggests alternative behavior. The basic approach is complete but as complex as synthesis. It also suffers from problems of readability: the correction may add state and logic to the system. We present two heuristics. The first avoids the doubly exponential blowup associated with synthesis by using nondeterministic automata. The second heuristic finds a memoryless strategy, which we show is an NP-complete problem. A memoryless strategy corresponds to a simple, local correction that does not add any state. The drawback of the two heuristics is that they are not complete unless the specification is an invariant. Our approach is general: the user can define what constitutes a component, and the suggested correction can be art arbitrary combinational function of the current state and the inputs. We show experimental results supporting the applicability of our approach. (C) 2011 Published by Elsevier Inc.
引用
收藏
页码:441 / 460
页数:20
相关论文
共 50 条
  • [1] Finding and fixing faults
    Staber, S
    Jobstmann, B
    Bloem, R
    CORRECT HARDWARE DESIGN AND VERIFICATION METHODS, PROCEEDINGS, 2005, 3725 : 35 - 49
  • [2] Analyzing and predicting effort associated with finding and fixing software faults
    Hamill, Maggie
    Goseva-Popstojanova, Katerina
    INFORMATION AND SOFTWARE TECHNOLOGY, 2017, 87 : 1 - 18
  • [3] Fixing faults
    Claire Ashworth
    Nature Reviews Materials, 2019, 4 : 461 - 461
  • [4] BATTERIES Fixing faults
    Ashworth, Claire
    NATURE REVIEWS MATERIALS, 2019, 4 (07) : 461 - 461
  • [5] FIXING FAULTS BY PHONE
    不详
    ELECTRONICS, 1980, 53 (18): : 100 - &
  • [6] Fixing faults with fasteners
    Judge, Tom
    Railway Age, 2005, 206 (07) : 37 - 39
  • [7] Finding faults
    Grabowski, Mark
    Boudwin, Carissa
    Water and Wastes Digest, 2015, 55 (02): : 18 - 19
  • [8] Finding faults
    Naccache, D
    IEEE SECURITY & PRIVACY, 2005, 3 (05) : 61 - 65
  • [9] Finding faults
    Howarth, David J.
    Durkin, John
    NAVAL ARCHITECT, 2010, : 22 - +
  • [10] Finding Faults
    不详
    NATURAL HISTORY, 2016, 124 (07) : 7 - 7