R2Fix: Automatically Generating Bug Fixes from Bug Reports
Summary (1 min read)
8 Conclusions 29
- The numbers are the total number of fix patterns for each bug type.
- AVG denotes that the number in the cell is the average.
- To extract the line number for memory leak bugs, R2Fix takes the number after “:” or “at line” in the bug report.
- The developers first need to understand this bug report by reading the relevant code together with this report: the buffer state contains only 4 bytes, but 5 bytes, “off \0”, was written to the buffer, where denotes one space character and the single character ‘\0’ is needed to mark the end of the string.
- Developers often need to fix more bugs than their time and resources allow [6].
Did you find this useful? Give us your feedback
Citations
9,185 citations
359 citations
264 citations
256 citations
Cites background or methods from "R2Fix: Automatically Generating Bug..."
...R2Fix [120] is a repair technique that generates fixes starting from bug reports filed by users, exploiting a range of pre-defined fix templates associated with a number of real-world bug reports....
[...]
...To mitigate this issue, some approaches investigated the definition of repair operators inspired from actual fixes written by developers [22], [119], [120], others considered the manual inspection of the fixes as the most useful validation method [55]....
[...]
...PHPRepair [138] and R2Fix [120] are two exceptions since they use GUI test cases and test cases similar to acceptance test cases derived from user-supplied bug reports, respectively....
[...]
...This is the case of History-driven repair [118], PAR [22], Relifix [119], and R2Fix [120]....
[...]
239 citations
References
218 citations
206 citations
199 citations
182 citations
174 citations
"R2Fix: Automatically Generating Bug..." refers background in this paper
...Developers often need to fix more bugs than their time and resources allow [6]....
[...]
Related Papers (5)
Frequently Asked Questions (9)
Q2. What are the future works in "R2fix: automatically generating bug fixes from bug reports" ?
In the future, the authors plan to generate patches for new types of bug reports, and extend R2Fix to take the output of existing bug detection tools as input to improve the effectiveness of patch generation. In other words, R2Fix does not use the “ Comment ” fields of the bug reports, because the authors want to apply R2Fix as soon as a bug is reported to maximize the time and effort that R2Fix can save for developers in fixing bugs. The authors estimate that it will take you approximately 3 minutes to complete this short survey. In other words, R2Fix does not use the “ Comment ” fields of the bug reports, because the authors want to apply R2Fix as soon as a bug is reported to maximize the time and effort that R2Fix can save for developers in fixing bugs.
Q3. What is the purpose of the article?
The patch deletes the line that writes 5 bytes to buffer state (denoted by - strcpy(state, "off ");), and adds a new line to write only 4 bytes to state (+ strcpy(state, "off");), which fixes the overflow bug.
Q4. What is the purpose of the bug report?
The developers first need to understand this bug report by reading the relevant code together with this report: the buffer state contains only 4 bytes, but 5 bytes, “off \\0”, was written to the buffer, where denotes one space character and the single character ‘\\0’ is needed to mark the end of the string.
Q5. What is the name of the author?
My dear mother, the first teacher and the role model in my life, gives me confidence to explore new things, especially in a different country far away from my homeland.
Q6. What is the main focus of this paper?
Developers’ bug-fixing process is primarily manual; therefore the time required for producing a fix and its accuracy depend on the skill and experience of individuals.
Q7. What is the purpose of this article?
Developers often spend days, weeks, or even months diagnosing the root cause of a bug by reading the relevant source code, using a debugger to observe and modify the program execution on different inputs, etc.
Q8. What is the main purpose of this article?
After a developer determines the root cause, typically the developer needs to figure out how to modify the buggy code to fix the bug, check out the buggy version of the software, apply the fix, and generate the patch.
Q9. Who is the author of the thesis?
I am thankful to readers of the thesis, Prof. Patrick Lam and Prof. Mahesh V. Tripunitara, for spending their valuable time to review the thesis and give valuable comments.