skip to main content
research-article

Reliable Fix Patterns Inferred from Static Checkers for Automated Program Repair

Published:26 May 2023Publication History
Skip Abstract Section

Abstract

Fix pattern-based patch generation is a promising direction in automated program repair (APR). Notably, it has been demonstrated to produce more acceptable and correct patches than the patches obtained with mutation operators through genetic programming. The performance of pattern-based APR systems, however, depends on the fix ingredients mined from fix changes in development histories. Unfortunately, collecting a reliable set of bug fixes in repositories can be challenging. In this article, we propose investigating the possibility in an APR scenario of leveraging fix patterns inferred from code changes that address violations detected by static analysis tools. To that end, we build a fix pattern-based APR tool, Avatar, which exploits fix patterns of static analysis violations as ingredients for the patch generation of repairing semantic bugs. Evaluated on four benchmarks (i.e., Defects4J, Bugs.jar, BEARS, and QuixBugs), Avatar presents the potential feasibility of fixing semantic bugs with the fix patterns inferred from the patches for fixing static analysis violations and can correctly fix 26 semantic bugs when Avatar is implemented with the normal program repair pipeline. We also find that Avatar achieves performance metrics that are comparable to that of the closely related approaches in the literature. Compared with CoCoNut, Avatar can fix 18 new bugs in Defects4J and 3 new bugs in QuixBugs. When compared with HDRepair, JAID, and SketchFix, Avatar can newly fix 14 Defects4J bugs. In terms of the number of correctly fixed bugs, Avatar is also comparable to the program repair tools with the normal fault localization setting and presents better performance than most program repair tools. These results imply that Avatar is complementary to current program repair approaches. We further uncover that Avatar can present different bug-fixing performances when it is configured with different fault localization tools, and the stack trace information from the failed executions of test cases can be exploited to improve the bug-fixing performance of Avatar by fixing more bugs with fewer generated patch candidates. Overall, our study highlights the relevance of static bug-finding tools as indirect contributors of fix ingredients for addressing code defects identified with functional test cases (i.e., dynamic information).

REFERENCES

  1. [1] Abreu Rui, Zoeteweij Peter, and Gemund Arjan J. C. Van. 2007. On the accuracy of spectrum-based fault localization. In Proceedings of the Testing: Academic and Industrial Conference—Practice and Research Techniques-MUTATION. IEEE, 8998.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. [2] Avgustinov Pavel, Baars Arthur I., Henriksen Anders S., Lavender Greg, Menzel Galen, Moor Oege de, Schäfer Max, and Tibble Julian. 2015. Tracking static analysis violations over time to capture developer characteristics. In Proceedings of the 37th International Conference on Software Engineering. ACM, 437447.Google ScholarGoogle ScholarCross RefCross Ref
  3. [3] Campos José, Riboira André, Perez Alexandre, and Abreu Rui. 2012. GZoltar: An eclipse plug-in for testing and debugging. In Proceedings of the 27th ACM International Conference on Automated Software Engineering. ACM, 378381.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. [4] Chen Liushan, Pei Yu, and Furia Carlo A.. 2017. Contract-based program repair without the contracts. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. IEEE, 637647.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. [5] Durieux Thomas, Madeiral Fernanda, Martinez Matias, and Abreu Rui. 2019. Empirical review of Java program repair tools: A large-scale experiment on 2,141 bugs and 23,551 repair attempts. In Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. ACM, 302313.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. [6] Durieux Thomas and Monperrus Martin. 2016. DynaMoth: Dynamic code synthesis for automatic program repair. In Proceedings of the 11th International Workshop in Automation of Software Test. ACM, 8591.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. [7] Falleri Jean-Rémy, Morandat Floréal, Blanc Xavier, Martinez Matias, and Monperrus Martin. 2014. Fine-grained and accurate source code differencing. In Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. ACM, 313324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. [8] Fontana Francesca Arcelli, Mariani Elia, Mornioli Andrea, Sormani Raul, and Tonello Alberto. 2011. An experience report on using code smells detection tools. In Proceedings of the 4th International Conference on Software Testing, Verification and Validation Workshops. IEEE, 450457.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. [9] Ghanbari Ali, Benton Samuel, and Zhang Lingming. 2019. Practical program repair via bytecode mutation. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 1930.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. [10] Habib Andrew and Pradel Michael. 2018. How many of all bugs do we find? A study of static bug detectors. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM, 317328.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. [11] Heckman Sarah and Williams Laurie. 2008. On establishing a benchmark for evaluating static analysis alert prioritization and classification techniques. In Proceedings of the 2nd ACM-IEEE International Symposium on Empir. Softw. Eng. Measur. ACM, 4150.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. [12] Herzig Kim and Zeller Andreas. 2013. The impact of tangled code changes. In Proceedings of the 10th Working Conference on Mining Software Repositories. ACM, 121130.Google ScholarGoogle ScholarCross RefCross Ref
  13. [13] Hovemeyer David and Pugh William. 2004. Finding bugs is easy. ACM SIGPLAN Not. 39, 12 (2004), 92106.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Hua Jinru, Zhang Mengshi, Wang Kaiyuan, and Khurshid Sarfraz. 2018. Towards practical program repair with on-demand candidate generation. In Proceedings of the 40th International Conference on Software Engineering. ACM, 1223.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Jiang Jiajun, Ren Luyao, Xiong Yingfei, and Zhang Lingming. 2019. Inferring program transformations from singular examples via big code. In Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering. IEEE, 255266.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Jiang Jiajun, Xiong Yingfei, Zhang Hongyu, Gao Qing, and Chen Xiangqun. 2018. Shaping program repair space with existing patches and similar code. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 298309.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Just René, Jalali Darioush, and Ernst Michael D.. 2014. Defects4J: A database of existing faults to enable controlled testing studies for Java programs. In Proceedings of the 23rd International Symposium on Software Testing and Analysis. ACM, 437440.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Kim Dongsun, Nam Jaechang, Song Jaewoo, and Kim Sunghun. 2013. Automatic patch generation learned from human-written patches. In Proceedings of the 35th International Conference on Software Engineering. IEEE, 802811.Google ScholarGoogle ScholarCross RefCross Ref
  19. [19] Kim Jindae and Kim Sunghun. 2019. Automatic patch generation with context-based change application. Empir. Softw. Eng. 24, 6 (2019), 40714106.Google ScholarGoogle ScholarCross RefCross Ref
  20. [20] Koyuncu Anil, Bissyandé Tegawendé F., Kim Dongsun, Klein Jacques, Monperrus Martin, and Traon Yves Le. 2017. Impact of tool support in patch construction. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 237248.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. [21] Koyuncu Anil, Liu Kui, Bissyandé Tegawendé F., Kim Dongsun, Klein Jacques, Monperrus Martin, and Traon Yves Le. 2020. FixMiner: Mining relevant fix patterns for automated program repair. Empir. Softw. Eng. 25, 3 (2020), 19802024.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. [22] Le Xuan-Bach D., Bao Lingfeng, Lo David, Xia Xin, Li Shanping, and Pasareanu Corina. 2019. On reliability of patch correctness assessment. In Proceedings of the 41st International Conference on Software Engineering. IEEE, 524535.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Le Xuan-Bach D., Le Quang Loc, Lo David, and Goues Claire Le. 2016. Enhancing automated program repair with deductive verification. In Proceedings of the International Conference on Software Maintenance and Evolution. IEEE, 428432.Google ScholarGoogle ScholarCross RefCross Ref
  24. [24] Le Xuan Bach D., Lo David, and Goues Claire Le. 2016. History driven program repair. In Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering. IEEE, 213224.Google ScholarGoogle ScholarCross RefCross Ref
  25. [25] Goues Claire Le, Nguyen ThanhVu, Forrest Stephanie, and Weimer Westley. 2012. GenProg: A generic method for automatic software repair. IEEE Trans. Softw. Eng. 38, 1 (2012), 5472.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Li Yi, Wang Shaohua, and Nguyen Tien N.. 2020. DLFix: Context-based code transformation learning for automated program repair. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. ACM, 602614.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Liu Kui, Kim Dongsun, Bissyandé Tegawendé F., Yoo Shin, and Traon Yves Le. 2018. Mining fix patterns for findbugs violations. IEEE Trans. Softw. Eng. 47, 1 (2018).Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Liu Kui, Kim Dongsun, Koyuncu Anil, Li Li, Bissyandé Tegawendé F., and Traon Yves Le. 2018. A closer look at real-world patches. In Proceedings of the 34th International Conference on Software Maintenance and Evolution. IEEE, 275286.Google ScholarGoogle ScholarCross RefCross Ref
  29. [29] Liu Kui, Koyuncu Anil, Bissyandé Tegawendé F., Kim Dongsun, Klein Jacques, and Traon Yves Le. 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 IEEE International Conference on Software Testing, Verification and Validation. IEEE, 102113.Google ScholarGoogle ScholarCross RefCross Ref
  30. [30] Liu Kui, Koyuncu Anil, Kim Dongsun, and Bissyandé Tegawendé F.. 2019. AVATAR: Fixing semantic bugs with fix patterns of static analysis violations. In Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering. IEEE, 456467.Google ScholarGoogle ScholarCross RefCross Ref
  31. [31] Liu Kui, Koyuncu Anil, Kim Dongsun, and Bissyandé Tegawendé F.. 2019. TBar: Revisiting template-based automated program repair. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 3142.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. [32] Liu Kui, Koyuncu Anil, Kim Kisub, Kim Dongsun, and Bissyandé Tegawendé F.. 2018. LSRepair: Live search of fix ingredients for automated program repair. In Proceedings of the 25th Asia-Pacific Software Engineering Conference ERA Track. IEEE, 658662.Google ScholarGoogle ScholarCross RefCross Ref
  33. [33] Liu Kui, Li Li, Koyuncu Anil, Kim Dongsun, Liu Zhe, Klein Jacques, and Bissyandé Tegawendé F.. 2020. A critical review on the evaluation of automated program repair systems. J. Syst. Softw. 171 (2020).Google ScholarGoogle Scholar
  34. [34] Liu Kui, Wang Shangwen, Koyuncu Anil, Bissyandé Tegawendé F., Kim Dongsun, Wu Peng, Klein Jacques, Mao Xiaoguang, and Traon Yves Le. 2020. On the efficiency of test suite based program repair: A systematic assessment of 16 automated repair systems for Java programs. In Proceedings of the 42nd International Conference on Software Engineering. ACM, 625627.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. [35] Long Fan, Amidon Peter, and Rinard Martin. 2017. Automatic inference of code transforms for patch generation. In Proceedings of the 11th Joint Meeting on Foundations of Software Engineering. ACM, 727739.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. [36] Long Fan and Rinard Martin. 2015. Staged program repair with condition synthesis. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering. ACM, 166178.Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. [37] Long Fan and Rinard Martin. 2016. An analysis of the search spaces for generate and validate patch generation systems. In Proceedings of the 38th International Conference on Software Engineering. IEEE, 702713.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. [38] Long Fan and Rinard Martin. 2016. Automatic patch generation by learning correct code. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, 298312.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Lutellier Thibaud, Pham Hung Viet, Pang Lawrence, Li Yitong, Wei Moshi, and Tan Lin. 2020. CoCoNuT: Combining context-aware neural translation models using ensemble for program repair. In Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. ACM, 101114.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Madeiral Fernanda, Urli Simon, Maia Marcelo, and Monperrus Martin. 2019. BEARS: An extensible Java bug benchmark for automatic program repair studies. In Proceedings of the 26th International Conference on Software Analysis, Evolution and Reengineering. IEEE, 468478.Google ScholarGoogle ScholarCross RefCross Ref
  41. [41] Martinez Matias, Durieux Thomas, Sommerard Romain, Xuan Jifeng, and Monperrus Martin. 2017. Automatic repair of real bugs in Java: A large-scale experiment on the Defects4J dataset. Empir. Softw. Eng. 22, 4 (2017), 19361964.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. [42] Martinez Matias and Monperrus Martin. 2016. ASTOR: A program repair library for Java (demo). In Proceedings of the 25th International Symposium on Software Testing and Analysis. ACM, 441444.Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. [43] Martinez Matias and Monperrus Martin. 2018. Ultra-large repair search space with automatically mined templates: The Cardumen mode of Astor. In Proceedings of the 10th International Symposium on Search Based Software Engineering. Springer, 6586.Google ScholarGoogle ScholarCross RefCross Ref
  44. [44] Martinez Matias, Weimer Westley, and Monperrus Martin. 2014. Do the fix ingredients already exist? An empirical inquiry into the redundancy assumptions of program repair approaches. In Proceedings of the 36th International Conference on Software Engineering. ACM, 492495.Google ScholarGoogle Scholar
  45. [45] Matsugu Masakazu, Mori Katsuhiko, Mitari Yusuke, and Kaneda Yuji. 2003. Subject independent facial expression recognition with robust face detection using a convolutional neural network. Neural Netw. 16, 5-6 (2003), 555559.Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Mechtaev Sergey, Nguyen Manh-Dung, Noller Yannic, Grunske Lars, and Roychoudhury Abhik. 2018. Semantic program repair using a reference implementation. In Proceedings of the 40th International Conference on Software Engineering. ACM, 298309.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Moha Naouel, Gueheneuc Yann-Gael, Duchien Anne-Fran, et al. 2010. DECOR: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36, 1 (2010), 2036.Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Monperrus Martin. 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 International Conference on Software Engineering. ACM, 234242.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. [49] Monperrus Martin. 2018. Automatic software repair: A bibliography. Comput. Surv. 51, 1 (2018), 17:1–17:24.Google ScholarGoogle Scholar
  50. [50] Nguyen Hoang Duong Thien, Qi Dawei, Roychoudhury Abhik, and Chandra Satish. 2013. SemFix: Program repair via semantic analysis. In Proceedings of the 35th International Conference on Software Engineering. IEEE, 772781.Google ScholarGoogle ScholarCross RefCross Ref
  51. [51] Pan Kai, Kim Sunghun, and Whitehead E. James. 2009. Toward an understanding of bug fix patterns. Empir. Softw. Eng. 14, 3 (2009), 286315.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. [52] Pearson Spencer, Campos José, Just René, Fraser Gordon, Abreu Rui, Ernst Michael D., Pang Deric, and Keller Benjamin. 2017. Evaluating and improving fault localization. In Proceedings of the 39th International Conference on Software Engineering. ACM, 609620.Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Qi Zichao, Long Fan, Achour Sara, and Rinard Martin. 2015. An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In Proceedings of the 24th International Symposium on Software Testing and Analysis. ACM, 2436.Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. [54] Rolim Reudismam, Soares Gustavo, Gheyi Rohit, and D’Antoni Loris. 2018. Learning quick fixes from code repositories. arXiv preprint arXiv:1803.03806 (2018).Google ScholarGoogle Scholar
  55. [55] Saha Ripon, Lyu Yingjun, Lam Wing, Yoshida Hiroaki, and Prasad Mukul. 2018. Bugs.jar: A large-scale, diverse dataset of real-world Java bugs. In Proceedings of the 15th IEEE/ACM International Conference on Mining Software Repositories. ACM, 1013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Saha Ripon K., Lyu Yingjun, Yoshida Hiroaki, and Prasad Mukul R.. 2017. ELIXIR: Effective object-oriented program repair. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. IEEE, 648659.Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Saha Seemanta, Saha Ripon K., and Prasad Mukul R.. 2019. Harnessing evolution for multi-hunk program repair. In Proceedings of the 41st International Conference on Software Engineering. IEEE, 1324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Smith Edward K., Barr Earl T., Goues Claire Le, and Brun Yuriy. 2015. Is the cure worse than the disease? Overfitting in automated program repair. In Proceedings of the 10th Joint Meeting on Foundations of Software Engineering. ACM, 532543.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Steimann Friedrich, Frenkel Marcus, and Abreu Rui. 2013. Threats to the validity and value of empirical assessments of the accuracy of coverage-based fault locators. In Proceedings of the International Symposium on Software Testing and Analysis. ACM, 314324.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Tan Shin Hwei, Yoshida Hiroaki, Prasad Mukul R., and Roychoudhury Abhik. 2016. Anti-patterns in search-based program repair. In Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 727738.Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Tufano Michele, Watson Cody, Bavota Gabriele, Penta Massimiliano Di, White Martin, and Poshyvanyk Denys. 2018. An empirical investigation into learning bug-fixing patches in the wild via neural machine translation. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. ACM, 832837.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. [62] Weimer Westley, Nguyen ThanhVu, Goues Claire Le, and Forrest Stephanie. 2009. Automatically finding patches using genetic programming. In Proceedings of the 31st International Conference on Software Engineering. IEEE, 364374.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. [63] Wen Ming, Chen Junjie, Wu Rongxin, Hao Dan, and Cheung Shing-Chi. 2018. Context-aware patch generation for better automated program repair. In Proceedings of the 40th International Conference on Software Engineering. ACM, 111.Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. [64] White Martin, Tufano Michele, Martinez Matias, Monperrus Martin, and Poshyvanyk Denys. 2019. Sorting and transforming program repair ingredients via deep learning code similarities. In Proceedings of the IEEE 26th International Conference on Software Analysis, Evolution and Reengineering. IEEE, 479490.Google ScholarGoogle ScholarCross RefCross Ref
  65. [65] Xie Xiaoyuan, Chen Tsong Yueh, Kuo Fei-Ching, and Xu Baowen. 2013. A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization. ACM Trans. Softw. Eng. Methodol 22, 4 (2013), 31.Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. [66] Xin Qi and Reiss Steven P.. 2017. Leveraging syntax-related code for automated program repair. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. IEEE, 660670.Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. [67] Xiong Yingfei, Liu Xinyuan, Zeng Muhan, Zhang Lu, and Huang Gang. 2018. Identifying patch correctness in test-based program repair. In Proceedings of the 40th International Conference on Software Engineering. ACM, 789799.Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. [68] Xiong Yingfei, Wang Jie, Yan Runfa, Zhang Jiachen, Han Shi, Huang Gang, and Zhang Lu. 2017. Precise condition synthesis for program repair. In Proceedings of the 39th IEEE/ACM International Conference on Software Engineering. IEEE, 416426.Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. [69] Xu Xuezheng, Sui Yulei, Yan Hua, and Xue Jingling. 2019. VFix: Value-flow-guided precise program repair for null pointer dereferences. In Proceedings of the 41st International Conference on Software Engineering. IEEE, 512523.Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. [70] Xuan Jifeng, Martinez Matias, Demarco Favio, Clement Maxime, Marcote Sebastian Lamelas, Durieux Thomas, Berre Daniel Le, and Monperrus Martin. 2017. Nopol: Automatic repair of conditional statement bugs in java programs. IEEE Trans. Softw. Eng. 43, 1 (2017), 3455.Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] Xuan Jifeng and Monperrus Martin. 2014. Learning to combine multiple ranking metrics for fault localization. In Proceedings of the IEEE International Conference on Software Maintenance and Evolution. IEEE, 191200.Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. [72] Xuan Jifeng and Monperrus Martin. 2014. Test case purification for improving fault localization. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 5263.Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. [73] Yamashita Aiko and Moonen Leon. 2013. Do developers care about code smells? An exploratory survey. In Proceedings of the 20th Working Conference on Reverse Engineering. IEEE, 242251.Google ScholarGoogle ScholarCross RefCross Ref
  74. [74] Yang Jinqiu, Zhikhartsev Alexey, Liu Yuefei, and Tan Lin. 2017. Better test cases for better automated program repair. In Proceedings of the 11th Joint Meeting on Foundations of Software Engineering. ACM, 831841.Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Ye He, Martinez Matias, Durieux Thomas, and Monperrus Martin. 2019. A comprehensive study of automatic program repair on the QuixBugs benchmark. In Proceedings of the 1st International Workshop on Intelligent Bug Fixing. IEEE, 110.Google ScholarGoogle ScholarCross RefCross Ref
  76. [76] Yuan Yuan and Banzhaf Wolfgang. 2018. ARJA: Automated repair of Java programs via multi-objective genetic programming. IEEE Trans. Softw. Eng. 46, 10 (2018).Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Reliable Fix Patterns Inferred from Static Checkers for Automated 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

    Full Access

    • Published in

      cover image ACM Transactions on Software Engineering and Methodology
      ACM Transactions on Software Engineering and Methodology  Volume 32, Issue 4
      July 2023
      938 pages
      ISSN:1049-331X
      EISSN:1557-7392
      DOI:10.1145/3599692
      • Editor:
      • Mauro Pezzè
      Issue’s Table of Contents

      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 the author(s) 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: 26 May 2023
      • Online AM: 20 January 2023
      • Accepted: 19 November 2022
      • Revised: 3 August 2022
      • Received: 1 June 2021
      Published in tosem Volume 32, Issue 4

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    View Full Text