Automatic repair of real bugs in java']java: a large-scale experiment on the defects4j dataset

被引:140
|
作者
Martinez, Matias [1 ]
Durieux, Thomas [2 ,3 ]
Sommerard, Romain [2 ,3 ]
Xuan, Jifeng [4 ]
Monperrus, Martin [2 ,3 ]
机构
[1] Univ Valenciennes, Campus Mont Houy, F-59313 Valenciennes, France
[2] Univ Lille, Spirals Team, 40 Ave Halley, F-59650 Villeneuve Dascq, France
[3] INRIA, 40 Ave Halley, F-59650 Villeneuve Dascq, France
[4] Wuhan Univ, State Key Lab Software Engn, 299 Bayi Rd, Wuhan 430072, Hubei, Peoples R China
基金
中国国家自然科学基金;
关键词
Software repair; Bugs; Defects; Patches; Fixes;
D O I
10.1007/s10664-016-9470-4
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Defects4J is a large, peer-reviewed, structured dataset of real-world Java bugs. Each bug in Defects4J comes with a test suite and at least one failing test case that triggers the bug. In this paper, we report on an experiment to explore the effectiveness of automatic test-suite based repair on Defects4J. The result of our experiment shows that the considered state-of-the-art repair methods can generate patches for 47 out of 224 bugs. However, those patches are only test-suite adequate, which means that they pass the test suite and may potentially be incorrect beyond the test-suite satisfaction correctness criterion. We have manually analyzed 84 different patches to assess their real correctness. In total, 9 real Java bugs can be correctly repaired with test-suite based repair. This analysis shows that test-suite based repair suffers from under-specified bugs, for which trivial or incorrect patches still pass the test suite. With respect to practical applicability, it takes on average 14.8 minutes to find a patch. The experiment was done on a scientific grid, totaling 17.6 days of computation time. All the repair systems and experimental results are publicly available on Github in order to facilitate future research on automatic repair.
引用
收藏
页码:1936 / 1964
页数:29
相关论文
共 18 条
  • [1] Automatic repair of real bugs in java: a large-scale experiment on the defects4j dataset
    Matias Martinez
    Thomas Durieux
    Romain Sommerard
    Jifeng Xuan
    Martin Monperrus
    Empirical Software Engineering, 2017, 22 : 1936 - 1964
  • [2] Bugs.jar: A Large-scale, Diverse Dataset of Real-world Java']Java Bugs
    Saha, Ripon K.
    Lyu, Yingjun
    Lam, Wing
    Yoshida, Hiroaki
    Prasad, Mukul R.
    2018 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR), 2018, : 10 - 13
  • [3] A manual inspection of Defects4J bugs and its implications for automatic program repair
    Jiajun JIANG
    Yingfei XIONG
    Xin XIA
    ScienceChina(InformationSciences), 2019, 62 (10) : 31 - 46
  • [4] A manual inspection of Defects4J bugs and its implications for automatic program repair
    Jiang, Jiajun
    Xiong, Yingfei
    Xia, Xin
    SCIENCE CHINA-INFORMATION SCIENCES, 2019, 62 (10)
  • [5] A manual inspection of Defects4J bugs and its implications for automatic program repair
    Jiajun Jiang
    Yingfei Xiong
    Xin Xia
    Science China Information Sciences, 2019, 62
  • [6] Empirical Review of Java']Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts
    Durieux, Thomas
    Madeiral, Fernanda
    Martinez, Matias
    Abreu, Rui
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 302 - 313
  • [7] Large-Scale Dataset of Local Java']Java Software Build Results
    Sulir, Matus
    Bacikova, Michaela
    Madeja, Matej
    Chodarev, Sergej
    Juhar, Jan
    DATA, 2020, 5 (03) : 1 - 11
  • [8] Evaluating mission critical large-scale embedded system performance in real-time Java']Java
    Sharp, DC
    Pla, E
    Luecke, KR
    RTSS 2003: 24TH IEEE INTERNATIONAL REAL-TIME SYSTEMS SYMPOSIUM, PROCEEDINGS, 2003, : 362 - 365
  • [9] Evaluating real-time Java']Java for mission-critical large-scale embedded systems
    Sharp, DC
    Pla, E
    Luecke, KR
    Hassan, RJ
    9TH IEEE REAL-TIME AND EMBEDDED TECHNOLOGY AND APPLICATIONS SYMPOSIUM, PROCEEDINGS, 2003, : 30 - 36
  • [10] Vul4J: A Dataset of Reproducible Java']Java Vulnerabilities Geared Towards the Study of Program Repair Techniques
    Bui, Quang-Cuong
    Scandariato, Riccardo
    Ferreyra, Nicolas E. Diaz
    2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 464 - 468