Font Size: a A A

Software-ecosystem-oriented Software Debugging Techniques

Posted on:2019-09-28Degree:DoctorType:Dissertation
Country:ChinaCandidate:H DingFull Text:PDF
GTID:1368330572457718Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software becomes more huge and complex along with the explosive growth of computer technology.In recent years,social coding is widely used by developers,and the dependencies between different projects become more complicated forming software ecosystems.These make the debugging procedure more difficult.Debugging is the most expensive procedure in software maintenance,which contains two main tasks,namely fault localization and bug repairing.The improvement in the two tasks will help to reduce the burden of developers in debugging and improve the software quality.The study on fault localization focuses on how to use the program information and the test information to decrease the search scope for bugs.There are many events during software testing,such as one statement was executed.In software ecosystems,various types of testing data impose challenges on fault localization.In software ecosystems,one bug may affect another bug along the dependencies forming blocking bugs.Blocking bugs involve multiple projects and to repair the blocking bugs is more complicated and difficult than non-blocking bugs.Many research efforts have been paid on blocking bug prediction.However,even the blocking bugs are identified,they are still difficult to fix.Our study focuses on fault localization and bug repairing in software ecosystems.First,we leveraged the information quantity of test events to improve the accuracy and stability of fault localization.Second,we conducted empirical study on the workarounds for blocking bug repairing,and found characteristics and patterns of workarounds.Third,we studied breakability of blocking bugs and proposed prediction models for breakability.The main contributions of this paper are as the following:First,the variety of projects and faults in software ecosystems make it difficult to locate faults efficiently.Spectrum-based fault localization techniques use the count of test event to locate faults and are affected by the data sets and types of faults.We leverage the information quantity of test events to dynamically adjust the algorithm according to the data sets,namely SIQ.The experimental results show the accuracy and stability of SIQ outperform the chosen methods.Through the information quantity of test events,fault localization on software ecosystems is improved.Second,in software ecosystems,blocking bugs impose huge challenges in the maintenance.Workarounds are the most common practice for the downstream developers to deal with the problem.We conduct empirical study on the downstream workaround and fin-d the workarounds are significantly different from the upstream fixes.In addition,we find 3 types of bugs that downstream developers usually worked around and 4 patterns of workarounds.These findings are helpful to develop workaround assistant tools.Third,we investigate the breakability of blocking bugs in software ecosystems.Breakability is important for developers to decide how to deal with the blocking bugs.First,we analyze the relationship between bug features and breakability.Then,we propose prediction models for breakability which is helpful for the downstream developers.The unbreakable bugs may impose huge impact on the downstream projects.To provide high-precision prediction on unbreakable bugs,we propose a predicting model leveraging variable thresholds to adjust the precision.This makes a recommendation for upstream developers to repair unbreakable bugs in high priority.
Keywords/Search Tags:Software Ecosystems, Software Debugging, Fault Localization, Bug Repairing, Blocking Bugs
PDF Full Text Request
Related items