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
相关论文
共 50 条
  • [1] On the accuracy of spectrum-based fault localization
    Abreu, Rui
    Zoeteweij, Peter
    van Gemund, Arjan J. C.
    [J]. TAIC PART 2007 - TESTING: ACADEMIC AND INDUSTRIAL CONFERENCE - PRACTICE AND RESEARCH TECHNIQUES, PROCEEDINGS: CO-LOCATED WITH MUTATION 2007, 2007, : 89 - +
  • [2] [Anonymous], P 22 ACM SIGSOFT INT
  • [3] [Anonymous], IEEE T SOFT IN PRESS
  • [4] A Novel Co-evolutionary Approach to Automatic Software Bug Fixing
    Arcuri, Andrea
    Yao, Xin
    [J]. 2008 IEEE CONGRESS ON EVOLUTIONARY COMPUTATION, VOLS 1-8, 2008, : 162 - 168
  • [5] AstorCode, 2016, GITH REP IG JKAL
  • [6] Bin Noor T, 2015, 2015 IEEE 1ST INTERNATIONAL WORKSHOP ON SOFTWARE ANALYTICS (SWAN), P13, DOI 10.1109/SWAN.2015.7070482
  • [7] Grid'5000:: A large scale and highly reconfigurable experimental grid testbed
    Bolze, Raphael
    Cappello, Franck
    Caron, Eddy
    Dayde, Michel
    Desprez, Frederic
    Jeannot, Emmanuel
    Jegou, Yvon
    Lanteri, Stephane
    Leduc, Julien
    Melab, Noredine
    Mornet, Guillaume
    Namyst, Raymond
    Primet, Pascale
    Quetier, Benjamin
    Richard, Olivier
    Talbi, El-Ghazali
    Touche, Irea
    [J]. INTERNATIONAL JOURNAL OF HIGH PERFORMANCE COMPUTING APPLICATIONS, 2006, 20 (04) : 481 - 494
  • [8] Cifuentes Cristina, 2009, P 2 INT WORKSHOP DEF, P16, DOI DOI 10.1145/1555860.1555866
  • [9] Dallmeier V., 2007, P 22 IEEE ACM INT C, P433
  • [10] Debroy Vidroha, 2010, Proceedings of the Third IEEE International Conference on Software Testing, Verification and Validation (ICST 2010), P65, DOI 10.1109/ICST.2010.66