Font Size: a A A

Lightweight Software Fault Localization Based On Fault-Context

Posted on:2019-11-15Degree:DoctorType:Dissertation
Country:ChinaCandidate:Y WangFull Text:PDF
GTID:1368330590966634Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With increasing software complexity and its pervasiveness,programmers need to develop high-quality software products.However,in the procedure of software development,developers inevitably introduce Bugs in the source code,which may trigger software failures during its execution.Localizing and fixing these faults is critical to improving software quality.In the traditional fault localization process,the software developers need to fully understand the function,semantics,structure,implementation and related failure characterization of the program,and the effectiveness of the fault localization is mostly based on the experience,intuition and luck of the debuggers.Therefore,due to many factors,the traditional fault localization is difficult,time-consuming,and expensive.Lightweight fault localization technique is a kind of automatic fault localization techniques,which usually refers to use coverage information of program entity collected during the software testing process and the test results.This kind of technique usually does not need to collect complex semantic information,and it is low costly and scalable.However,the accuracy of the technique and the comprehensibility of its result are the key to the practical application of the technique.The dissertation focuses on sloving the questons about improving inaccuracy and comprehensibility for lightweight fault localization technique:Combining lightweight fault context such as fault triggering context and spectrum fault execution context,the accuracy of lightweight fault localization results is further improved;and the fault localization by constructing a two-stage fault localization and a weighted fault propagation graph that reprsents the fault propagation context to support fault understanding.The main contributions of this thesis are as follows:(1)Aiming at different fault triggering modes in the program spectrum,a lightweight fault localization technique based on fault triggering mode is proposed to improve the absolute ranking of the faulty program entities.Considering the complexity of software and the fault diversity,the fault triggering mode is complex and difficult to model precisely in practice.Based on necessary failure triggering condition model(RIPR model),the two simplified fault triggering modes(RIPR-? and RIPR-?)are given.Aiming at the two fault triggering modes,different software fault localization strategies are proposed to perform fault localization.The basic idea is that when the fault triggering mode of a buggy program is determined during its execution,some program entities ranked higherly which are not triggered by this fault triggering mode can be ruled out,thus improving the absolute ranking of the root faulty entities.It is the effectiveness of the proposed technique in three different scenarios validatied by our experiments.(2)For lightweight fault localization techniques,only considering the relationship between the coverage information of the program entity and software failure is considered without considering the fault-context information during its execution,we proposed a novel lightweight fault localization technique combining spectrum fault-context is proposed to further improve the absolute ranking for the root faulty program enities.The technique is based on the suspiciousness of the program entity and its fault-context.In this technique,we present a lightweight definition of spectrum fault-context,and a re-ranking method via combining with the suspiciousness of the program entity and its fault-context.The empirical research results show that this technique can further improve the absolute ranking for lightweight fault localization technique.(3)In order to improve the availability of lightweight fault localization techniques,we propose a fault localization technique based on weighted fault propagation graphs.In this technique,we first perform a module-level fault localization,and then construct a weighted fault propagation graph(WFPG)for each of the suspicious modules that need further to localize statement-level/block-level entity.Considering fault propagation,we first construct a dynamic program control flow graph based on program execution path,and then build suspiciousness information for nodes and edges based on the failed and pass coverage information during program executions.We further use edge suspiciousness to adjust the weight of the node,and finally get each node weight information.Through empirical and case study results,this technique can further improve the availability of lightweight fault localization techniques.
Keywords/Search Tags:Software debugging, Lightweight fault localization, Fault context, Fault understanding, Program spectrum, Absolute ranking
PDF Full Text Request
Related items