Font Size: a A A

Software Bug Localization Based On Key Range Invariants

Posted on:2020-01-22Degree:MasterType:Thesis
Country:ChinaCandidate:L MaFull Text:PDF
GTID:2428330572461809Subject:Signal and Information Processing
Abstract/Summary:PDF Full Text Request
The Software bug localization is expensive and time-consuming in the process of software debugging.With the continuous expansion of software scale,automatic software bug localization technology has received extensive attention.At present,many automatic software bug localization methods have been proposed.The software bug localization method based on range invariants is one of them.Compared to other methods,this method have many advantages,but it needs to train and monitor each variable in every statement in the program,and the required run-time overhead is large.However,this overhead is not required.Because only one key variables set can really affect the results of the system in a meaningful way.Based on this,this paper proposes a software bug localization method based on key range invariants.The method in this paper is described as follows: First,the source code of the program is instrumented before the program is executed.Then,the post-instrumentation program is executed.The successful test case and the failed test case are distinguished by checking whether the actual output result is the same as the expected output result.Then,we delete the accidental correct test case in the successful test case.Secondly,by analyzing the value information of the variables in the successful test cases,the key variable screening mechanism is used to filter out the key variables set of the program.Then,we train the variables in the set of key variables to obtain a set of key range invariants for the program.Finally,the failed test case is detected.If the value of the key variable in the failed test case is not within the range of its corresponding key range invariant,the flag violation is marked,that is,mark the statement in which the key variable is located as a suspicious statement.When we need to minimize the overhead of monitoring variables,we can use this method to ignore variables that are considered unimportant.This article uses the Siemens test set as an example to verify effectiveness.The experimental results show that only the key variables set is trained and monitored in the bug location,and still maintains a good bug localization effect,while the number of suspicious statements checked is also reduced.The main contributions of this paper are as follows:(1)A key variable screening phase has been added to the existing range invariants bug localization method.At this phase,the variables are filtered by a combination of dynamic and static screening methods to obtain a set of key variables of the program.(2)Training of range invariants and bug localization using only the filtered key variables set.When training the filtered key variables set,integer variables and non-numeric variables are trained into discrete invariant intervals to avoid false negatives.(3)The method in this paper is to locate the bug without knowing the correct version of the program.The effectiveness of the method was verified by open source assemblies.
Keywords/Search Tags:key variables, key range invariants, monitor key variables, bug localization, suspicious statements
PDF Full Text Request
Related items