skip to main content
10.1145/3338906.3338935acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections

iFixR: bug report driven program repair

Published:12 August 2019Publication History

ABSTRACT

Issue tracking systems are commonly used in modern software development for collecting feedback from users and developers. An ultimate automation target of software maintenance is then the systematization of patch generation for user-reported bugs. Although this ambition is aligned with the momentum of automated program repair, the literature has, so far, mostly focused on generate-and- validate setups where fault localization and patch generation are driven by a well-defined test suite. On the one hand, however, the common (yet strong) assumption on the existence of relevant test cases does not hold in practice for most development settings: many bugs are reported without the available test suite being able to reveal them. On the other hand, for many projects, the number of bug reports generally outstrips the resources available to triage them. Towards increasing the adoption of patch generation tools by practitioners, we investigate a new repair pipeline, iFixR, driven by bug reports: (1) bug reports are fed to an IR-based fault localizer; (2) patches are generated from fix patterns and validated via regression testing; (3) a prioritized list of generated patches is proposed to developers. We evaluate iFixR on the Defects4J dataset, which we enriched (i.e., faults are linked to bug reports) and carefully-reorganized (i.e., the timeline of test-cases is naturally split). iFixR generates genuine/plausible patches for 21/44 Defects4J faults with its IR-based fault localizer. iFixR accurately places a genuine/plausible patch among its top-5 recommendation for 8/13 of these faults (without using future test cases in generation-and-validation).

References

  1. 2019. D&C. https://github.com/d-and-c/d-and-c. 2019. NTLK framework. https://www.nltk.org/.Google ScholarGoogle Scholar
  2. Rui Abreu, Arjan JC Van Gemund, and Peter Zoeteweij. 2007. On the accuracy of spectrum-based fault localization. In Proceedings of TAICPART-MUTATION. IEEE, 89–98. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Rui Abreu, Peter Zoeteweij, Rob Golsteijn, and Arjan JC Van Gemund. 2009. A practical evaluation of spectrum-based fault localization. JSS 82, 11 (2009), 1780–1792. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Rui Abreu, Peter Zoeteweij, and Arjan JC Van Gemund. 2009. Spectrum-based multiple fault localization. In Proceedings of the 24th ASE. IEEE, 88–99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. John Anvik, Lyndon Hiew, and Gail C Murphy. 2006. Who should fix this bug?. In Proceedings of the 28th ICSE. ACM, 361–370. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Kent Beck. 2003. Test-driven development: by example. Addison-Wesley Professional. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Moritz Beller, Georgios Gousios, Annibale Panichella, and Andy Zaidman. 2015. When, how, and why developers (do not) test in their IDEs. In Proceedings of the 10th FSE. ACM, 179–190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Sahil Bhatia, Pushmeet Kohli, and Rishabh Singh. 2018. Neuro-symbolic program corrector for introductory programming assignments. In Proceedings of the 40th ICSE. ACM, 60–70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Tegawendé F Bissyandé. 2015. Harvesting Fix Hints in the History of Bugs. arXiv preprint arXiv:1507.05742 (2015).Google ScholarGoogle Scholar
  10. Marcel Böhme, Ezekiel O Soremekun, Sudipta Chattopadhyay, Emamurho Ugherughe, and Andreas Zeller. 2017. Where is the bug and how is it fixed? an experiment with practitioners. In Proceedings of the 11th FSE. ACM, 117–128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. José Campos, André Riboira, Alexandre Perez, and Rui Abreu. 2012. Gzoltar: an eclipse plug-in for testing and debugging. In Proceedings of the 27th ASE. IEEE/ACM, 378–381. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Liushan Chen, Yu Pei, and Carlo A Furia. 2017. Contract-based program repair without the contracts. In Proceedings of the 32nd ASE. IEEE, 637–647. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Zack Coker and Munawar Hafiz. 2013. Program transformations to fix C integers. In Proceedings of the 35th ICSE. IEEE/ACM, 792–801. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Thomas Durieux, Benoit Cornu, Lionel Seinturier, and Martin Monperrus. 2017. Dynamic patch generation for null pointer exceptions using metaprogramming. In Proceedings of the 24th SANER. IEEE, 349–358.Google ScholarGoogle ScholarCross RefCross Ref
  15. Michael Fischer, Martin Pinzger, and Harald Gall. 2003. Populating a release history database from version control and bug tracking systems. In Proceeding of the 19th ICSM. IEEE, 23–32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Rahul Gupta, Soham Pal, Aditya Kanade, and Shirish Shevade. 2017. DeepFix: Fixing Common C Language Errors by Deep Learning. In Proceedings of the 31st AAAI. AAAI Press, 1345–1351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Pieter Hooimeijer and Westley Weimer. 2007. Modeling bug report quality. In Proceedings of the 22nd ASE. ACM, 34–43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Jinru Hua, Mengshi Zhang, Kaiyuan Wang, and Sarfraz Khurshid. 2018. Towards practical program repair with on-demand candidate generation. In Proceedings of the 40th ICSE. ACM, 12–23. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jiajun Jiang, Yingfei Xiong, Hongyu Zhang, Qing Gao, and Xiangqun Chen. 2018. Shaping Program Repair Space with Existing Patches and Similar Code. In Proceedings of the 27th ISSTA. ACM, 298–309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. James A Jones and Mary Jean Harrold. 2005. Empirical evaluation of the tarantula automatic fault-localization technique. In Proceedings of the 20th ASE. ACM, 273–282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. René Just, Darioush Jalali, and Michael D Ernst. 2014. Defects4J: A database of existing faults to enable controlled testing studies for Java programs. In Proceedings of the 23rd ISSTA. ACM, 437–440. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. René Just, Chris Parnin, Ian Drosos, and Michael D Ernst. 2018. Comparing developer-provided to user-provided tests for fault localization and automated program repair. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 287–297. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Natalia Juristo Juzgado, Ana María Moreno, and Wolfgang Strigel. 2006. Guest editors’ introduction: Software testing practices in industry. IEEE Software 23, 4 (2006), 19–21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Wahiba Ben Abdessalem Karaa and Nidhal Gribâa. 2013. Information retrieval with porter stemmer: a new version for English. In Advances in computational science, engineering and information technology. Springer, 243–254.Google ScholarGoogle Scholar
  25. Yalin Ke, Kathryn T Stolee, Claire Le Goues, and Yuriy Brun. 2015. Repairing programs with semantic code search (t). In Proceedings of the 30th ASE. IEEE, 295–306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Dongsun Kim, Jaechang Nam, Jaewoo Song, and Sunghun Kim. 2013. Automatic patch generation learned from human-written patches. In Proceedings of the 35th ICSE. IEEE, 802–811. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Pavneet Singh Kochhar, Tegawendé F Bissyandé, David Lo, and Lingxiao Jiang. 2013. An empirical study of adoption of software testing in open source projects. In Proceedings of the 13th QRS. IEEE, 103–112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. N. Kolmogorov and S. V. Fomin. 1999. Elements of the Theory of Functions and Functional Analysis (dover books on mathematics edition ed.). Dover Publications, Mineola, NY.Google ScholarGoogle Scholar
  29. Anil Koyuncu, Tegawendé F Bissyandé, Dongsun Kim, Jacques Klein, Martin Monperrus, and Yves Le Traon. 2017. Impact of tool support in patch construction. In Proceedings of the 26th ISSTA. ACM, 237–248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Anil Koyuncu, Tegawendé F Bissyandé, Dongsun Kim, Kui Liu, Jacques Klein, Martin Monperrus, and Yves Le Traon. 2019. D&C: A Divide-and-Conquer Approach to IR-based Bug Localization. arXiv preprint arXiv:1902.02703 (2019).Google ScholarGoogle Scholar
  31. Anil Koyuncu, Kui Liu, Tegawendé F. Bissyandé, Dongsun Kim, Jacques Klein, Martin Monperrus, and Yves Le Traon. 2018. FixMiner: Mining Relevant Fix Patterns for Automated Program Repair. arXiv preprint arXiv:1810.01791 (2018).Google ScholarGoogle Scholar
  32. Xuan-Bach D Le, Duc-Hiep Chu, David Lo, Claire Le Goues, and Willem Visser. 2017. S3: syntax-and semantic-guided repair synthesis via programming by examples. In Proceedings of the 11th FSE. ACM, 593–604. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Xuan-Bach D Le, Quang Loc Le, David Lo, and Claire Le Goues. 2016. Enhancing automated program repair with deductive verification. In Proceedings of the 32nd ICSME. IEEE, 428–432.Google ScholarGoogle ScholarCross RefCross Ref
  34. Xuan Bach D Le, Ferdian Thung, David Lo, and Claire Le Goues. 2018. Overfitting in semantics-based automated program repair. EMSE Journal (2018), 1–27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Xuan-Bach D. Le, Lingfeng Bao, David Lo, Xin Xia, and Shanping Li. 2019. On Reliability of Patch Correctness Assessment. In Proceedings of the 41st ICSE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Xuan-Bach D. Le, David Lo, and Claire Le Goues. 2016. History Driven Program Repair. In Proceedings of the 23rd SANER, Vol. 1. IEEE, 213–224.Google ScholarGoogle ScholarCross RefCross Ref
  37. Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, and Westley Weimer. 2012. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In Proceedings of the 34th ICSE. IEEE, 3–13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. 2012. GenProg: A generic method for automatic software repair. TSE 38, 1 (2012), 54–72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Claire Le Goues and Westley Weimer. 2009. Specification mining with few false positives. In Proceedings of the 15th TACAS. Springer, 292–306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Jaekwon Lee, Dongsun Kim, Tegawendé F Bissyandé, Woosung Jung, and Yves Le Traon. 2018. Bench4bl: reproducibility study on the performance of ir-based bug localization. In Proceedings of the 27th ISSTA. ACM, 61–72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Ben Liblit, Mayur Naik, Alice X Zheng, Alex Aiken, and Michael I Jordan. 2005. Scalable statistical bug isolation. In Proceedings of the 26th PLDI. ACM, 15–26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Chen Liu, Jinqiu Yang, Lin Tan, and Munawar Hafiz. 2013. R2Fix: Automatically generating bug fixes from bug reports. In Proceedings of the 6th ICST. IEEE, 282–291. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Kui Liu, Koyuncu Anil, Kisub Kim, Dongsun Kim, and Tegawendé F. Bissyandé. 2018. LSRepair: Live Search of Fix Ingredients for Automated Program Repair. In Proceedings of the 25th APSEC. IEEE, 658–662.Google ScholarGoogle Scholar
  44. Kui Liu, Dongsun Kim, Tegawendé F. Bissyandé, Taeyoung Kim, Kisub Kim, Anil Koyuncu, Suntae Kim, and Yves Le Traon. 2019. Learning to Spot and Refactor Inconsistent Method Names. In Proceedings of the 41st ICSE. IEEE, 1–12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Kui Liu, Dongsun Kim, Tegawendé F Bissyandé, Shin Yoo, and Yves Le Traon. 2018. Mining fix patterns for findbugs violations. TSE (2018).Google ScholarGoogle Scholar
  46. Kui Liu, Dongsun Kim, Anil Koyuncu, Li Li, Tegawendé F Bissyandé, and Yves Le Traon. 2018. A closer look at real-world patches. In Proceedings of the 34th ICSME. IEEE, 275–286.Google ScholarGoogle ScholarCross RefCross Ref
  47. Kui Liu, Anil Koyuncu, Tegawendé F. Bissyandé, Dongsun Kim, Jacques Klein, and Yves Le Traon. 2019. You Cannot Fix What You Cannot Find! An Investigation of Fault Localization Bias in Benchmarking Automated Program Repair Systems. In Proceedings of the 12th ICST. IEEE, 102–113.Google ScholarGoogle ScholarCross RefCross Ref
  48. Kui Liu, Anil Koyuncu, Dongsun Kim, and Tegawendé F. Bissyandé. 2019. AVATAR: Fixing Semantic Bugs with Fix Patterns of Static Analysis Violations. In Proceedings of the 26th SANER. IEEE, 1–12.Google ScholarGoogle Scholar
  49. Kui Liu, Anil Koyuncu, Dongsun Kim, and Tegawendé F. Bissyandé. 2019. TBar : Revisiting Template-based Automated Program Repair. In Proceedings of the 28th ISSTA. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Xuliang Liu and Hao Zhong. 2018. Mining stackoverflow for program repair. In Proceedings of the 25th SANER. IEEE, 118–129.Google ScholarGoogle ScholarCross RefCross Ref
  51. Fan Long, Peter Amidon, and Martin Rinard. 2017. Automatic inference of code transforms for patch generation. In Proceedings of the 11th FSE. ACM, 727–739. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Fan Long and Martin Rinard. 2015. Staged program repair with condition synthesis. In Proceedings of the 10th FSE. ACM, 166–178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Fan Long and Martin Rinard. 2016. An analysis of the search spaces for generate and validate patch generation systems. In Proceedings of the 38th ICSE. ACM, 702–713. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Fan Long and Martin Rinard. 2016. Automatic patch generation by learning correct code. In Proceedings of the 43rd POPL. ACM, 298–312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Lucia LUCIA, Ferdian Thung, David Lo, and Lingxiao Jiang. 2012. Are Faults Localizable?. In Proceedings of the 9th MSR. 74–77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Stacy K Lukins, Nicholas A Kraft, and Letha H Etzkorn. 2010. Bug localization using latent Dirichlet allocation. IST 52, 9 (2010), 972–990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Xiaoguang Mao, Yan Lei, Ziying Dai, Yuhua Qi, and Chengsong Wang. 2014. Slice-based statistical fault localization. JSS 89 (2014), 51–62.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Matias Martinez and Martin Monperrus. 2016. Astor: A program repair library for java. In Proceedings of the 25th ISSTA. ACM, 441–444. ESEC/FSE ’19, August 26–30, 2019, Tallinn, Estonia Koyuncu, Liu, Bissyandé, Kim, Monperrus, Klein, and Le Traon Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Matias Martinez and Martin Monperrus. 2018. Ultra-Large Repair Search Space with Automatically Mined Templates: The Cardumen Mode of Astor. In Proceedings of the 10th SSBSE. Springer, 65–86.Google ScholarGoogle ScholarCross RefCross Ref
  60. Sergey Mechtaev, Manh-Dung Nguyen, Yannic Noller, Lars Grunske, and Abhik Roychoudhury. 2018. Semantic Program Repair Using a Reference Implementation. In Proceedings of the 40th ICSE. ACM, 298–309. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Sergey Mechtaev, Jooyong Yi, and Abhik Roychoudhury. 2015. Directfix: Looking for simple program repairs. In Proceedings of the 37th ICSE. IEEE Press, 448–458. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Martin Monperrus. 2014. A critical review of automatic patch generation learned from human-written patches: essay on the problem statement and the evaluation of automatic software repair. In Proceedings of the 36th ICSE. ACM, 234–242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Mathieu Nayrolles and Abdelwahab Hamou-Lhadj. 2018. CLEVER: combining code metrics with clone detection for just-in-time fault prevention and resolution in large industrial projects. In Proceedings of the 15th MSR. ACM, 153–164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, and Satish Chandra. 2013. SemFix: program repair via semantic analysis. In Proceedings of the 35th ICSE. IEEE, 772–781. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Yoann Padioleau, Julia Lawall, René Rydhof Hansen, and Gilles Muller. 2008. Documenting and automating collateral evolutions in Linux device drivers. In Proceedings of 3rd EuroSys, Vol. 42. ACM, 247–260. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Chris Parnin and Alessandro Orso. 2011. Are automated debugging techniques actually helping programmers?. In Proceedings of the 20th ISSTA. ACM, 199–209. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Jean Petrić, Tracy Hall, and David Bowes. 2018. How Effectively Is Defective Code Actually Tested?: An Analysis of JUnit Tests in Seven Open Source Systems. In Proceedings of the 14th PROMISE. ACM, 42–51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Zichao Qi, Fan Long, Sara Achour, and Martin Rinard. 2015. An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In Proceedings of the 24th ISSTA. ACM, 24–36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. Reudismam Rolim, Gustavo Soares, Loris D’Antoni, Oleksandr Polozov, Sumit Gulwani, Rohit Gheyi, Ryo Suzuki, and Björn Hartmann. 2017. Learning syntactic program transformations from examples. In Proceedings of the 39th ICSE. IEEE/ACM, 404–415. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Ripon Saha, Yingjun Lyu, Wing Lam, Hiroaki Yoshida, and Mukul Prasad. 2018. Bugs.jar: a large-scale, diverse dataset of real-world java bugs. In Proceedings of the 15th MSR. IEEE, 10–13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Ripon K Saha, Matthew Lease, Sarfraz Khurshid, and Dewayne E Perry. 2013. Improving bug localization using structured information retrieval. In Proceedings of the 28th ASE. IEEE, 345–355. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Ripon K Saha, Yingjun Lyu, Hiroaki Yoshida, and Mukul R Prasad. 2017. ELIXIR: Effective object-oriented program repair. In Proceedings of the 32nd ASE. IEEE, 648–659. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Eric Schulte, Zachary P Fry, Ethan Fast, Westley Weimer, and Stephanie Forrest. 2014. Software mutational robustness. Genetic Programming and Evolvable Machines 15, 3 (2014), 281–312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Andrew Scott, Johannes Bader, and Satish Chandra. 2019. Getafix: Learning to fix bugs automatically. arXiv preprint arXiv:1902.06111 (2019).Google ScholarGoogle Scholar
  75. Edward K Smith, Earl T Barr, Claire Le Goues, and Yuriy Brun. 2015. Is the cure worse than the disease? Overfitting in automated program repair. In Proceedings of the 10th FSE. ACM, 532–543. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Mauricio Soto and Claire Le Goues. 2018. Using a probabilistic model to predict bug fixes. In Proceedings of the 25th SANER. IEEE, 221–231.Google ScholarGoogle ScholarCross RefCross Ref
  77. Stephen W Thomas, Meiyappan Nagappan, Dorothea Blostein, and Ahmed E Hassan. 2013. The impact of classifier configuration and classifier combination on bug localization. TSE 39, 10 (2013), 1427–1443. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Simon Urli, Zhongxing Yu, Lionel Seinturier, and Martin Monperrus. 2018. How to design a program repair bot?: insights from the repairnator project. In Proceedings of the 40th ICSE. ACM, 95–104. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Qianqian Wang, Chris Parnin, and Alessandro Orso. 2015. Evaluating the usefulness of IR-based fault localization techniques. In Proceedings of the 24th ISSTA. ACM, 1–11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Shaowei Wang and David Lo. 2014. Version History, Similar Report, and Structure: Putting Them Together for Improved Bug Localization. In Proceedings of the 22nd ICPC. ACM, 53–63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Yi Wei, Yu Pei, Carlo A Furia, Lucas S Silva, Stefan Buchholz, Bertrand Meyer, and Andreas Zeller. 2010. Automated fixing of programs with contracts. In Proceedings of the 19th ISSTA. ACM, 61–72. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. 2009. Automatically finding patches using genetic programming. In Proceedings of the 31st ICSE. IEEE, 364–374. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Ming Wen, Junjie Chen, Rongxin Wu, Dan Hao, and Shing-Chi Cheung. 2018. Context-Aware Patch Generation for Better Automated Program Repair. In Proceedings of the 40th ICSE. IEEE/ACM, 1–11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Ming Wen, Rongxin Wu, and Shing-Chi Cheung. 2016. Locus: Locating bugs from software changes. In Proceedings of the 31st ASE. IEEE, 262–273. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Martin White, Michele Tufano, Matias Martinez, Martin Monperrus, and Denys Poshyvanyk. 2019. Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities. In Proceedings of the 26th SANER. IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  86. Chu-Pan Wong, Yingfei Xiong, Hongyu Zhang, Dan Hao, Lu Zhang, and Hong Mei. 2014. Boosting Bug-Report-Oriented Fault Localization with Segmentation and Stack-Trace Analysis. In Proceedings of the 30th ICSME. IEEE, 181–190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. W Eric Wong, Ruizhi Gao, Yihao Li, Rui Abreu, and Franz Wotawa. 2016. A survey on software fault localization. TSE 42, 8 (2016), 707–740. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. Qi Xin and Steven P Reiss. 2017. Identifying test-suite-overfitted patches through test case generation. In Proceedings of the 26th ISSTA. ACM, 226–236. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Qi Xin and Steven P Reiss. 2017. Leveraging syntax-related code for automated program repair. In Proceedings of the 32nd ASE. IEEE/ACM, 660–670. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Yingfei Xiong, Xinyuan Liu, Muhan Zeng, Lu Zhang, and Gang Huang. 2018. Identifying patch correctness in test-based program repair. In Proceedings of the 40th ICSE. ACM, 789–799. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Yingfei Xiong, Jie Wang, Runfa Yan, Jiachen Zhang, Shi Han, Gang Huang, and Lu Zhang. 2017. Precise condition synthesis for program repair. In Proceedings of the 39th ICSE. IEEE/ACM, 416–426. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Jifeng Xuan, Matias Martinez, Favio DeMarco, Maxime Clement, Sebastian Lamelas Marcote, Thomas Durieux, Daniel Le Berre, and Martin Monperrus. 2017.Google ScholarGoogle Scholar
  93. Nopol: Automatic repair of conditional statement bugs in java programs. TSE 43, 1 (2017), 34–55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Jinqiu Yang, Alexey Zhikhartsev, Yuefei Liu, and Lin Tan. 2017. Better test cases for better automated program repair. In Proceedings of the 11th FSE. ACM, 831–841. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Shin Yoo and Mark Harman. 2012. Regression testing minimization, selection and prioritization: a survey. STVR 22, 2 (2012), 67–120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Klaus Changsun Youm, June Ahn, and Eunseok Lee. 2017. Improved bug localization based on code change histories and bug reports. IST 82 (2017), 177–192.Google ScholarGoogle Scholar
  97. Zhongxing Yu, Matias Martinez, Benjamin Danglot, Thomas Durieux, and Martin Monperrus. 2017. Test case generation for program repair: A study of feasibility and effectiveness. arXiv preprint arXiv:1703.00198 (2017).Google ScholarGoogle Scholar
  98. Zhongxing Yu, Matias Martinez, Benjamin Danglot, Thomas Durieux, and Martin Monperrus. 2018. Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the Nopol repair system. EMSE Journal (2018), 1–35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. Jian Zhou, Hongyu Zhang, and David Lo. 2012. Where should the bugs be fixed? more accurate information retrieval-based bug localization based on bug reports. In Proceedings of the 34th ICSE. IEEE, 14–24. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. iFixR: bug report driven program repair

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
      August 2019
      1264 pages
      ISBN:9781450355728
      DOI:10.1145/3338906

      Copyright © 2019 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 12 August 2019

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate112of543submissions,21%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader