The search functionality is under construction.
The search functionality is under construction.

Author Search Result

[Author] Xiaoguang MAO(7hit)

1-7hit
  • Fault Localization Using Failure-Related Contexts for Automatic Program Repair

    Ang LI  Xiaoguang MAO  Yan LEI  Tao JI  

     
    LETTER-Software Engineering

      Pubricized:
    2015/01/08
      Vol:
    E98-D No:4
      Page(s):
    955-959

    Fault localization is essential for conducting effective program repair. However, preliminary studies have shown that existing fault localization approaches do not take the requirements of automatic repair into account, and therefore restrict the repair performance. To address this issue, this paper presents the first study on designing fault localization approaches for automatic program repair, that is, we propose a fault localization approach using failure-related contexts in order to improve automatic program repair. The proposed approach first utilizes program slicing technique to construct a failure-related context, then evaluates the suspiciousness of each element in this context, and finally transfers the result of evaluation to automatic program repair techniques for performing repair on faulty programs. The experimental results demonstrate that the proposed approach is effective to improve automatic repair performance.

  • Optimization Methods for Nop-Shadows Typestate Analysis

    Chengsong WANG  Xiaoguang MAO  Yan LEI  Peng ZHANG  

     
    PAPER-Dependable Computing

      Pubricized:
    2015/02/23
      Vol:
    E98-D No:6
      Page(s):
    1213-1227

    In recent years, hybrid typestate analysis has been proposed to eliminate unnecessary monitoring instrumentations for runtime monitors at compile-time. Nop-shadows Analysis (NSA) is one of these hybrid typestate analyses. Before generating residual monitors, NSA performs the data-flow analysis which is intra-procedural flow-sensitive and partially context-sensitive to improve runtime performance. Although NSA is precise, there are some cases on which it has little effects. In this paper, we propose three optimizations to further improve the precision of NSA. The first two optimizations try to filter interferential states of objects when determining whether a monitoring instrumentation is necessary. The third optimization refines the inter-procedural data-flow analysis induced by method invocations. We have integrated our optimizations into Clara and conducted extensive experiments on the DaCapo benchmark. The experimental results demonstrate that our first two optimizations can further remove unnecessary instrumentations after the original NSA in more than half of the cases, without a significant overhead. In addition, all the instrumentations can be removed for two cases, which implies the program satisfy the typestate property and is free of runtime monitoring. It comes as a surprise to us that the third optimization can only be effective on 8.7% cases. Finally, we analyze the experimental results and discuss the reasons why our optimizations fail to further eliminate unnecessary instrumentations in some special situations.

  • Enriching Contextual Information for Fault Localization

    Zhuo ZHANG  Xiaoguang MAO  Yan LEI  Peng ZHANG  

     
    LETTER-Software Engineering

      Vol:
    E97-D No:6
      Page(s):
    1652-1655

    Existing fault localization approaches usually do not provide a context for developers to understand the problem. Thus, this paper proposes a novel approach using the dynamic backward slicing technique to enrich contexts for existing approaches. Our empirical results show that our approach significantly outperforms five state-of-the-art fault localization techniques.

  • Resco: Automatic Collection of Leaked Resources

    Ziying DAI  Xiaoguang MAO  Yan LEI  Xiaomin WAN  Kerong BEN  

     
    PAPER-Software Engineering

      Vol:
    E96-D No:1
      Page(s):
    28-39

    A garbage collector relieves programmers from manual memory management and improves productivity and program reliability. However, there are many other finite system resources that programmers must manage by themselves, such as sockets and database connections. Growing resource leaks can lead to performance degradation and even program crashes. This paper presents the automatic resource collection approach called Resco (RESource COllector) to tolerate non-memory resource leaks. Resco prevents performance degradation and crashes due to resource leaks by two steps. First, it utilizes monitors to count resource consumption and request resource collections independently of memory usage when resource limits are about to be violated. Second, it responds to a resource collection request by safely releasing leaked resources. We implement Resco based on a Java Virtual Machine for Java programs. The performance evaluation against standard benchmarks shows that Resco has a very low overhead, around 1% or 3%. Experiments on resource leak bugs show that Resco successfully prevents most of these programs from crashing with little increase in execution time.

  • Effective Fault Localization Approach Using Feedback

    Yan LEI  Xiaoguang MAO  Ziying DAI  Dengping WEI  

     
    PAPER-Software Engineering

      Vol:
    E95-D No:9
      Page(s):
    2247-2257

    At the stage of software debugging, the effective interaction between software debugging engineers and fault localization techniques can greatly improve fault localization performance. However, most fault localization approaches usually ignore this interaction and merely utilize the information from testing. Due to different goals of testing and fault localization, the lack of interaction may lead to the issue of information inadequacy, which can substantially degrade fault localization performance. In addition, human work is costly and error-prone. It is vital to study and simulate the pattern of debugging engineers as they apply their knowledge and experience to this interaction to promote fault localization effectiveness and reduce their workload. Thus this paper proposes an effective fault localization approach to simulate this interaction via feedback. Based on results obtained from fault localization techniques, this approach utilizes test data generation techniques to automatically produce feedback for interacting with these fault localization techniques, and then iterate this process to improve fault localization performance until a specific stopping condition is satisfied. Experiments on two standard benchmarks demonstrate the significant improvement of our approach over a promising fault localization technique, namely the spectrum-based fault localization technique.

  • Deep Learning-Based Fault Localization with Contextual Information

    Zhuo ZHANG  Yan LEI  Qingping TAN  Xiaoguang MAO  Ping ZENG  Xi CHANG  

     
    LETTER-Software Engineering

      Pubricized:
    2017/09/08
      Vol:
    E100-D No:12
      Page(s):
    3027-3031

    Fault localization is essential for solving the issue of software faults. Aiming at improving fault localization, this paper proposes a deep learning-based fault localization with contextual information. Specifically, our approach uses deep neural network to construct a suspiciousness evaluation model to evaluate the suspiciousness of a statement being faulty, and then leverages dynamic backward slicing to extract contextual information. The empirical results show that our approach significantly outperforms the state-of-the-art technique Dstar.

  • TFIDF-FL: Localizing Faults Using Term Frequency-Inverse Document Frequency and Deep Learning

    Zhuo ZHANG  Yan LEI  Jianjun XU  Xiaoguang MAO  Xi CHANG  

     
    LETTER-Software Engineering

      Pubricized:
    2019/05/27
      Vol:
    E102-D No:9
      Page(s):
    1860-1864

    Existing fault localization based on neural networks utilize the information of whether a statement is executed or not executed to identify suspicious statements potentially responsible for a failure. However, the information just shows the binary execution states of a statement, and cannot show how important a statement is in executions. Consequently, it may degrade fault localization effectiveness. To address this issue, this paper proposes TFIDF-FL by using term frequency-inverse document frequency to identify a high or low degree of the influence of a statement in an execution. Our empirical results on 8 real-world programs show that TFIDF-FL significantly improves fault localization effectiveness.