SANER 2019 Workshops
Workshops of the 2019 IEEE 26th International Conference on Software Analysis, Evolution, and Reengineering (SANER)
Powered by
Conference Publishing Consulting

2019 IEEE 1st International Workshop on Intelligent Bug Fixing (IBF), February 24, 2019, Hangzhou, China

IBF 2019 – Proceedings

Contents - Abstracts - Authors

2019 IEEE 1st International Workshop on Intelligent Bug Fixing (IBF)

Frontmatter

Title Page


Message from the Chairs
Welcome to the first International Workshop on Intelligent Bug Fixing (IBF 2019) co-located with the 26th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2019) held in Hangzhou, China.

Repair

A Comprehensive Study of Automatic Program Repair on the QuixBugs Benchmark
He Ye ORCID logo, Matias Martinez, Thomas Durieux, and Martin Monperrus
(KTH, Sweden; University of Valenciennes, France; INESC-ID, Portugal)
Automatic program repair papers tend to repeatedly use the same benchmarks. This poses a threat to the external validity of the findings of the program repair research community. In this paper, we perform an automatic repair experiment on a benchmark called QuixBugs that has never been studied in the context of program repair. In this study, we report on the characteristics of QuixBugs, and study five repair systems, Arja, Astor, Nopol, NPEfix and RSRepair, which are representatives of generate-and-validate repair techniques and synthesis repair techniques. We propose three patch correctness assessment techniques to comprehensively study overfitting and incorrect patches. Our key results are: 1) 15 / 40 buggy programs in the QuixBugs can be repaired with a test-suite adequate patch; 2) a total of 64 plausible patches for those 15 buggy programs in the QuixBugs are present in the search space of the considered tools; 3) the three patch assessment techniques discard in total 33 / 64 patches that are overfitting. This sets a baseline for future research of automatic repair on QuixBugs. Our experiment also highlights the major properties and challenges of how to perform automated correctness assessment of program repair patches. All experimental results are publicly available on Github in order to facilitate future research on automatic program repair

Info
Automatic Software Merging using Automated Program Repair
Xiaoqian Xing and Katsuhisa Maruyama
(Ritsumeikan University, Japan)
Resolution of merge conflicts is inevitable in concurrent software development where source code has been independently modified by multiple programmers. Unfortunately, it requires a lot of human efforts since programmers have to change the conflicting code until the merged code can be compiled with no error and does the correct behavior expected by themselves. Although several techniques have been proposed to (semi-)automatically resolve textual, syntactic, and semantic merge conflicts, behavioral conflicts are still a big trouble for modern software development using version control systems. In this paper, we propose an automatic merge mechanism that reduces programmers' burden to resolve behavioral merge conflicts, by exploiting an automated program repair (APR) technique that fully-automatically fixes faults (the unexpected behavior) exposed by tests. To make the automatic merge mechanism feasible, it produces initial programs to be fixed by combining class members within the code to be merged. Moreover, it aggressively takes in code fragments within programs to be merged into the ingredient space. Our experimental results successfully demonstrate that an APR technique can solve behavioral conflicts with no intervention of human.

Localization

NFL: Neighbor-Based Fault Localization Technique
Béla Vancsics ORCID logo
(University of Szeged, Hungary)
Fault localization (FL) is a much-researched area, there are a lot of techniques that help programmers to find the location of the error (or bug) as accurately as possible. However, these automatic procedures are either quite costly or, in some cases, inaccurate. There is no general method that would be recognized as the generally accepted method of FL. The aim of our research was to create an automatic FL algorithm that helps the user with good and balanced results in effective error detection. The presented Neighbor-based FL (NFL) is a graph-based algorithm which transposes the coverage matrix into a graph and prioritizes the methods based on their connection to the passed and failed tests. It also uses this information to specify the location of the bug as precisely as possible. We did an empirical evaluation on Defects4J and 6 additional fault localization metrics were used for quantification. Thus, the results obtained were objectively judged and comparisons could be made. The results show that, on average, NFL found the location of bugs most accurately, and the results compared to other metrics proved to be satisfactory.

A New Interactive Fault Localization Method with Context Aware User Feedback
Ferenc Horváth ORCID logo, Victor Schnepper Lacerda, Árpád BeszédesORCID logo, László Vidács, and Tibor Gyimóthy
(University of Szeged, Hungary)
State-of-the-art fault localization tools provide a ranked list of suspicious code elements to aid the user in this debugging activity. Statistical (or Spectrum-Based) Fault Localization (SFL/SBFL) uses code coverage information of test cases and their execution outcomes to calculate the ranks. We propose an approach (called iFL) in which the developer interacts with the fault localization algorithm by giving feedback on the elements of the prioritized list. Contextual knowledge of the user about the current item (e.g., a statement) is exploited in the ranked list, and with this feedback larger code entities (e.g., a whole function) can be repositioned in the list. In our initial set of experiments, we evaluated the approach on the SIR benchmark using simulated users. Results showed significant improvements in fault localization accuracy: the ranking position of the buggy element was reduced by 72% on average, and iFL was able to double the number of faults that were positioned between 1-5.

Analysis and Prediction

An Empirical Study on Combining Source Selection and Transfer Learning for Cross-Project Defect Prediction
Wanzhi Wen, Bin Zhang, Xiang Gu, and Xiaolin Ju
(Nantong University, China)
Software defect prediction (SDP) can help software developers and quality assurance personnel to effectively predict software fault proneness. Recently, researchers have proposed a lot of methods to improve the predicting results, especially under a within-project defect prediction (WPDP) setting. However, cross-project defect prediction (CPDP) is difficult because of the data distribution difference between source and target projects. Transfer learning model has been proven that it can effectively reduce the data distribution difference. By the intuition, if the better source is selected, we can get better prediction performance based on transfer learning model. In this paper, we conducted an empirical study on source selection including feature selection and source project selection for CPDP, and then combined source selection with popular transfer learning model TCA+ in CPDP. Finally, the result shows that the combining technique MZTCA+ can effectively improve the state-of-the art CPDP models, such as TCA+, LT, Dycom, TDS.

Automatically Identifying Bug Entities and Relations for Bug Analysis
Dingshan Chen, Bin Li, Cheng Zhou, and Xuanrui Zhu
(Yangzhou University, China; Civil Aviation University of China, China)
During the bug fixing process, developers usually analyze the historical relevant bug reports in bug repository to support various bug analysis activities, i.e., bug understanding, bug localization, bug fixing, etc. There are rich semantics and relations in the bug reports, which are useful for bug analysis. Entity recognition and relation extraction are useful to represent semantics and relations in the text. However, the text in the bug reports are often in a free-style form, and include lots of noisy information. Therefore, how to extract and express rich semantics and relations in the bug reports is difficult, but important for bug analysis. To address this challenge, we propose an approach, which incorporates the neural networks RNN with dependency parser to automatically extract bug entities and their relations from bug reports. A preliminary empirical evaluation demonstrates that our approach is effective to extract bug entities and their relations from bug reports in the bug repository.

proc time: 0.41