Author: | Chen, Liushan |
Title: | Towards an initial understanding of the fixing power of object-oriented automated program repair |
Advisors: | Pei, Max Yu (COMP) |
Degree: | M.Sc. |
Year: | 2017 |
Subject: | Software maintenance. Computer programming -- Management. Hong Kong Polytechnic University -- Dissertations |
Department: | Department of Computing |
Pages: | ix, 36 pages : illustrations |
Language: | English |
Abstract: | Software bugs may lead to inconvenient, expensive, or even fatal consequences. To avoid such consequences, developers devote considerable time and effort to fix bugs. In fact, bug fixing accounts for almost one fourth of the total time spent on software development and maintenance [2]. To help programmers win this battle against bugs, researchers have proposed many techniques to automatically propose fix to bugs in programs. Among these techniques, generate-and-validate (G&V) automated program repair (APR) techniques first generate many candidate fixes to a given bug and then validate those candidate fixes against a regression test suite: if a fix is able to make the originally faulty program pass all the regression tests, i.e. it is correct with respect to the regression tests, it is considered valid and proposed to the user. A fix is proper if manual examination con.rms that it corrects the original fault while not introducing any new fault, i.e., it is correct with respect to the program specification. G&V APR techniques have reported promising results in proposing valid or proper fixes to real-world faults. AutoFix is a G&V APR technique originally developed for the Eiffel object-oriented programming language. AutoFix sets itself aside from the others by exploiting object state information in locating fault causes and object-oriented features in generating candidate fixes, which makes AutoFix an object-oriented APR technique. The goal of the thesis is to understand the fixing power of object-oriented APR, compared with the other non-object-oriented APR techniques. To conduct the comparison in a fair way, we re-implemented the AutoFix technique into a Java tool named FixJa, applied FixJa to the Defects4J benchmark set of faults from real-world open-source projects, and compared the fixing results of FixJa with those of two state-of-the-art G&V APR techniques for Java, i.e., ASTOR and History Driven Automated Program Repair (HDA). FixJa proposed valid .xes to 6 out of 357 faults from Defects4J, and the fixes contained at least one proper fix to each of the 6 faults. In contrast, ASTOR and HDA properly fixed 6 and 23 faults, respectively. 5 of the 6 faults fixed by FixJa were also fixed by neither ASTOR nor HDA. Note that information about the method containing the fault is required as input to FixJa and ASTOR, while HDA also needs to know the exact line where the fault resides. The experimental results suggest that object-oriented APR technique implemented in FixJa has its advantages in fixing faults in object-oriented programs. |
Rights: | All rights reserved |
Access: | restricted access |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
b29500254.pdf | For All Users (off-campus access for PolyU Staff & Students only) | 360.2 kB | Adobe PDF | View/Open |
Copyright Undertaking
As a bona fide Library user, I declare that:
- I will abide by the rules and legal ordinances governing copyright regarding the use of the Database.
- I will use the Database for the purpose of my research or private study only and not for circulation or further reproduction or any other purpose.
- I agree to indemnify and hold the University harmless from and against any loss, damage, cost, liability or expenses arising from copyright infringement or unauthorized usage.
By downloading any item(s) listed above, you acknowledge that you have read and understood the copyright undertaking as stated above, and agree to be bound by all of its terms.
Please use this identifier to cite or link to this item:
https://theses.lib.polyu.edu.hk/handle/200/8860