A manual inspection of Defects4J bugs and its implications for automatic program repair

Jiajun Jiang, Yingfei Xiong, Xin Xia

Research output: Contribution to journalArticleResearchpeer-review

2 Citations (Scopus)


Automatic program repair techniques, which target to generate correct patches for real-world defects automatically, have gained a lot of attention in the last decade. Many different techniques and tools have been proposed and developed. However, even the most sophisticated automatic program repair techniques can only repair a small portion of defects while producing a large number of incorrect patches. A possible reason for the low performance is the test suites of real-world programs are usually too weak to guarantee the behavior of a program. To understand to what extent defects can be fixed with exiting test suites, we manually analyzed 50 real-world defects from Defects4J, where a large portion (i.e., 82%) of them were correctly fixed. This result suggests that there is much room for the current automatic program repair techniques to improve. Furthermore, we summarized seven fault localization and seven patch generation strategies that are useful in localizing and fixing these defects, and compared those strategies with current techniques. The results indicate potential directions to improve automatic program repair in the future.

Original languageEnglish
Article number200102
Number of pages16
JournalScience China Information Sciences
Issue number10
Publication statusPublished - Oct 2019


  • automatic defect repair
  • case study
  • fault localization
  • manual repair
  • software maintenance

Cite this