{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,13]],"date-time":"2026-06-13T02:01:15Z","timestamp":1781316075997,"version":"3.54.1"},"reference-count":62,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2022,1,28]],"date-time":"2022-01-28T00:00:00Z","timestamp":1643328000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,1,28]],"date-time":"2022-01-28T00:00:00Z","timestamp":1643328000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2022,3]]},"DOI":"10.1007\/s10664-021-10087-1","type":"journal-article","created":{"date-parts":[[2022,1,28]],"date-time":"2022-01-28T07:02:46Z","timestamp":1643353366000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":16,"title":["Mining Python fix patterns via analyzing fine-grained source code changes"],"prefix":"10.1007","volume":"27","author":[{"given":"Yilin","family":"Yang","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Tianxing","family":"He","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7477-3642","authenticated-orcid":false,"given":"Yang","family":"Feng","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Shaoying","family":"Liu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Baowen","family":"Xu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2022,1,28]]},"reference":[{"key":"10087_CR1","doi-asserted-by":"crossref","unstructured":"\u00c5kerblom B, Stendahl J, Tumlin M, Wrigstad T (2014) Tracing dynamic features in python programs. In: Proceedings of the 11th working conference on mining software repositories. pp 292\u2013295","DOI":"10.1145\/2597073.2597103"},{"issue":"11","key":"10087_CR2","doi-asserted-by":"publisher","first-page":"1180","DOI":"10.3390\/math9111180","volume":"9","author":"EN Akimova","year":"2021","unstructured":"Akimova E N, Bersenev A Y, Deikov A A, Kobylkin K S, Konygin A V, Mezentsev I P, Misilov V E (2021) A survey on software defect prediction using deep learning. Mathematics 9(11):1180","journal-title":"Mathematics"},{"key":"10087_CR3","unstructured":"Cadar C, Dunbar D, Engler D R, et al. (2008) Klee: unassisted and automatic generation of high-coverage tests for complex systems programs. In: OSDI, vol 8, pp 209\u2013224"},{"key":"10087_CR4","unstructured":"Chakraborty S, Allamanis M, Ray B (2018) Tree2tree neural translation model for learning source code changes. arXiv:181000314"},{"issue":"1","key":"10087_CR5","doi-asserted-by":"publisher","first-page":"012107","DOI":"10.1007\/s11432-017-9153-3","volume":"61","author":"Z Chen","year":"2018","unstructured":"Chen Z, Ma W, Lin W, Chen L, Li Y, Xu B (2018) A study on the changes of dynamic feature code when fixing bugs: towards the benefits and costs of python dynamic features. Science Chin Inf Sci 61(1):012107","journal-title":"Science Chin Inf Sci"},{"key":"10087_CR6","doi-asserted-by":"crossref","unstructured":"Cotroneo D, De Simone L, Iannillo A K, Natella R, Rosiello S, Bidokhti N (2019) Analyzing the context of bug-fixing changes in the openstack cloud computing platform, IEEE","DOI":"10.1109\/ISSRE.2019.00041"},{"issue":"4","key":"10087_CR7","doi-asserted-by":"publisher","first-page":"405","DOI":"10.1007\/s10664-005-3861-2","volume":"10","author":"H Do","year":"2005","unstructured":"Do H, Elbaum S, Rothermel G (2005) Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empir. Softw. Eng. 10(4):405\u2013435","journal-title":"Empir. Softw. Eng."},{"key":"10087_CR8","doi-asserted-by":"crossref","unstructured":"Durieux T, Cornu B, Seinturier L, Monperrus M (2017) Dynamic patch generation for null pointer exceptions using metaprogramming. In: 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 349\u2013358","DOI":"10.1109\/SANER.2017.7884635"},{"issue":"5","key":"10087_CR9","doi-asserted-by":"publisher","first-page":"378","DOI":"10.1037\/h0031619","volume":"76","author":"JL Fleiss","year":"1971","unstructured":"Fleiss J L (1971) Measuring nominal scale agreement among many raters. Psychol Bull 76(5):378","journal-title":"Psychol Bull"},{"issue":"11","key":"10087_CR10","doi-asserted-by":"publisher","first-page":"725","DOI":"10.1109\/TSE.2007.70731","volume":"33","author":"B Fluri","year":"2007","unstructured":"Fluri B, Wursch M, PInzger M, Gall H (2007) Change distilling: Tree differencing for fine-grained source code change extraction. IEEE Trans Softw Eng 33(11):725\u2013743","journal-title":"IEEE Trans Softw Eng"},{"key":"10087_CR11","doi-asserted-by":"crossref","unstructured":"Fluri B, Giger E, Gall HC (2008) Discovering patterns of change types. In: 2008 23rd IEEE\/ACM international conference on automated software engineering. IEEE, pp 463\u2013466","DOI":"10.1109\/ASE.2008.74"},{"key":"10087_CR12","doi-asserted-by":"crossref","unstructured":"Habib A, Pradel M (2018) How many of all bugs do we find? a study of static bug detectors, IEEE","DOI":"10.1145\/3238147.3238213"},{"issue":"1","key":"10087_CR13","doi-asserted-by":"publisher","first-page":"23","DOI":"10.20982\/tqmp.08.1.p023","volume":"8","author":"KA Hallgren","year":"2012","unstructured":"Hallgren K A (2012) Computing inter-rater reliability for observational data: an overview and tutorial. Tutor Quant Methods Psychol 8(1):23","journal-title":"Tutor Quant Methods Psychol"},{"key":"10087_CR14","doi-asserted-by":"crossref","unstructured":"Hanam Q, Brito FSdM, Mesbah A (2016) Discovering bug patterns in javascript. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering. pp 144\u2013156","DOI":"10.1145\/2950290.2950308"},{"key":"10087_CR15","doi-asserted-by":"crossref","unstructured":"Higo Y, Hayashi S, Hata H, Nagappan M (2020) Ammonia: an approach for deriving project-specific bug patterns. Empir Softw Eng :1\u201329","DOI":"10.1007\/s10664-020-09807-w"},{"issue":"5","key":"10087_CR16","doi-asserted-by":"publisher","first-page":"122","DOI":"10.1145\/2902362","volume":"59","author":"A Hindle","year":"2016","unstructured":"Hindle A, Barr E T, Gabel M, Su Z, Devanbu P (2016) On the naturalness of software. Commun. ACM 59(5):122\u2013131","journal-title":"Commun. ACM"},{"key":"10087_CR17","unstructured":"Holkner A, Harland J (2009) Evaluating the dynamic behaviour of python applications. In: Proceedings of the thirty-second australasian conference on computer science-volume 91, pp 19\u201328"},{"issue":"2","key":"10087_CR18","doi-asserted-by":"publisher","first-page":"377","DOI":"10.1016\/j.jss.2012.08.063","volume":"86","author":"S Hong","year":"2013","unstructured":"Hong S, Kim M (2013) Effective pattern-driven concurrency bug detection for operating systems. J. Syst. Softw. 86(2):377\u2013388","journal-title":"J. Syst. Softw."},{"key":"10087_CR19","doi-asserted-by":"crossref","unstructured":"Hu M, Zhang Y (2020) The python\/c api: Evolution, usage statistics, and bug patterns, IEEE","DOI":"10.1109\/SANER48275.2020.9054835"},{"key":"10087_CR20","doi-asserted-by":"crossref","unstructured":"Hua J, Zhang M, Wang K, Khurshid S (2018) Towards practical program repair with on-demand candidate generation. In: Proceedings of the 40th international conference on software engineering. pp 12\u201323","DOI":"10.1145\/3180155.3180245"},{"key":"10087_CR21","doi-asserted-by":"crossref","unstructured":"Jiang L, Su Z (2009) Automatic mining of functionally equivalent code fragments via random testing. In: Proceedings of the eighteenth international symposium on Software testing and analysis. pp 81\u201392","DOI":"10.1145\/1572272.1572283"},{"key":"10087_CR22","doi-asserted-by":"crossref","unstructured":"Kim D, Nam J, Song J, Kim S (2013) Automatic patch generation learned from human-written patches, IEEE","DOI":"10.1109\/ICSE.2013.6606626"},{"key":"10087_CR23","doi-asserted-by":"crossref","unstructured":"Le Goues C, Dewey-Vogt M, Forrest S, Weimer W (2012) A systematic study of automated program repair: Fixing 55 out of 105 bugs for 8 each, IEEE","DOI":"10.1109\/ICSE.2012.6227211"},{"key":"10087_CR24","doi-asserted-by":"crossref","unstructured":"Lin D, Koppel J, Chen A, Solar-Lezama A (2017) Quixbugs: A multi-lingual program repair benchmark set based on the quixey challenge. In: Proceedings Companion of the 2017 ACM SIGPLAN international conference on systems, programming, languages, and applications: software for humanity, pp 55\u201356","DOI":"10.1145\/3135932.3135941"},{"key":"10087_CR25","unstructured":"Liu K, Kim D, Bissyand\u00e9 TF, Yoo S, Le Traon Y (2018) Mining fix patterns for findbugs violations. IEEE Trans Softw Eng"},{"key":"10087_CR26","doi-asserted-by":"crossref","unstructured":"Liu K, Koyuncu A, Kim D, Bissyand\u00e9 TF (2019a) Avatar: Fixing semantic bugs with fix patterns of static analysis violations, IEEE","DOI":"10.1109\/SANER.2019.8667970"},{"key":"10087_CR27","doi-asserted-by":"crossref","unstructured":"Liu K, Koyuncu A, Kim D, Bissyand\u00e9 TF (2019b) Tbar: revisiting template-based automated program repair. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis. pp 31\u201342","DOI":"10.1145\/3293882.3330577"},{"key":"10087_CR28","doi-asserted-by":"crossref","unstructured":"Liu X, Zhong H (2018) Mining stackoverflow for program repair, IEEE","DOI":"10.1109\/SANER.2018.8330202"},{"key":"10087_CR29","doi-asserted-by":"crossref","unstructured":"Long F, Rinard M (2016) An analysis of the search spaces for generate and validate patch generation systems, IEEE","DOI":"10.1145\/2884781.2884872"},{"key":"10087_CR30","doi-asserted-by":"crossref","unstructured":"Long F, Amidon P, Rinard M (2017) Automatic inference of code transforms for patch generation. In: Proceedings of the 2017 11th joint meeting on foundations of software engineering. pp 727\u2013739","DOI":"10.1145\/3106237.3106253"},{"key":"10087_CR31","doi-asserted-by":"crossref","unstructured":"Mechtaev S, Yi J, Roychoudhury A (2015) Directfix: Looking for simple program repairs. In: 2015 IEEE\/ACM 37th IEEE international conference on software engineering, vol 1. IEEE, pp 448\u2013458","DOI":"10.1109\/ICSE.2015.63"},{"key":"10087_CR32","doi-asserted-by":"crossref","unstructured":"Mechtaev S, Yi J, Roychoudhury A (2016) Angelix: Scalable multiline program patch synthesis via symbolic analysis. In: Proceedings of the 38th international conference on software engineering. pp 691\u2013701","DOI":"10.1145\/2884781.2884807"},{"key":"10087_CR33","unstructured":"Monat R, Ouadjaout A, Min\u00e9 A (2020), Static type analysis by abstract interpretation of python programs. ECOOP (LIPIcs). To appear"},{"key":"10087_CR34","doi-asserted-by":"crossref","unstructured":"Negara S, Codoban M, Dig D, Johnson RE (2014) Mining fine-grained code changes to detect unknown change patterns. In: Proceedings of the 36th international conference on software engineering. pp 803\u2013813","DOI":"10.1145\/2568225.2568317"},{"key":"10087_CR35","doi-asserted-by":"crossref","unstructured":"Nguyen H A, Nguyen A T, Nguyen T T, Nguyen T N, Rajan H (2013a) A study of repetitiveness of code changes in software evolution, IEEE","DOI":"10.1109\/ASE.2013.6693078"},{"key":"10087_CR36","doi-asserted-by":"crossref","unstructured":"Nguyen H D T, Qi D, Roychoudhury A, Chandra S (2013b) Semfix: Program repair via semantic analysis, IEEE","DOI":"10.1109\/ICSE.2013.6606623"},{"key":"10087_CR37","doi-asserted-by":"crossref","unstructured":"Noda K, Nemoto Y, Hotta K, Tanida H, Kikuchi S (2020) Experience report: How effective is automated program repair for industrial software?, IEEE","DOI":"10.1109\/SANER48275.2020.9054829"},{"issue":"1","key":"10087_CR38","doi-asserted-by":"publisher","first-page":"790","DOI":"10.1007\/s10664-019-09772-z","volume":"25","author":"YS Nugroho","year":"2020","unstructured":"Nugroho Y S, Hata H, Matsumoto K (2020) How different are different diff algorithms in git? Empir. Softw. Eng. 25(1):790\u2013823","journal-title":"Empir. Softw. Eng."},{"issue":"3","key":"10087_CR39","doi-asserted-by":"publisher","first-page":"286","DOI":"10.1007\/s10664-008-9077-5","volume":"14","author":"K Pan","year":"2009","unstructured":"Pan K, Kim S, Whitehead E J (2009) Toward an understanding of bug fix patterns. Empir. Softw. Eng. 14(3):286\u2013315","journal-title":"Empir. Softw. Eng."},{"issue":"1","key":"10087_CR40","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/2699485","volume":"40","author":"M Pawlik","year":"2015","unstructured":"Pawlik M, Augsten N (2015) Efficient computation of the tree edit distance. ACM Trans Database Syst (TODS) 40(1):1\u201340","journal-title":"ACM Trans Database Syst (TODS)"},{"key":"10087_CR41","doi-asserted-by":"publisher","first-page":"157","DOI":"10.1016\/j.is.2015.08.004","volume":"56","author":"M Pawlik","year":"2016","unstructured":"Pawlik M, Augsten N (2016) Tree edit distance: Robust and memory-efficient. Inf. Syst. 56:157\u2013173","journal-title":"Inf. Syst."},{"key":"10087_CR42","doi-asserted-by":"crossref","unstructured":"Qi Z, Long F, Achour S, Rinard M (2015) An analysis of patch plausibility and correctness for generate-and-validate patch generation systems. In: Proceedings of the 2015 international symposium on software testing and analysis. pp 24\u201336","DOI":"10.1145\/2771783.2771791"},{"key":"10087_CR43","doi-asserted-by":"crossref","unstructured":"Saha S, et al. (2019) Harnessing evolution for multi-hunk program repair. In: 2019 IEEE\/ACM 41st international conference on software engineering (ICSE). IEEE, pp 13\u201324","DOI":"10.1109\/ICSE.2019.00020"},{"issue":"1","key":"10087_CR44","first-page":"57","volume":"17","author":"MF Sanner","year":"1999","unstructured":"Sanner M F, et al. (1999) Python: a programming language for software integration and development. J Mol Graph Model 17(1):57\u201361","journal-title":"J Mol Graph Model"},{"issue":"4","key":"10087_CR45","doi-asserted-by":"publisher","first-page":"557","DOI":"10.1109\/32.799955","volume":"25","author":"CB Seaman","year":"1999","unstructured":"Seaman C B (1999) Qualitative methods in empirical studies of software engineering. IEEE Trans Softw Eng 25(4):557\u2013572","journal-title":"IEEE Trans Softw Eng"},{"issue":"2","key":"10087_CR46","doi-asserted-by":"publisher","first-page":"420","DOI":"10.1037\/0033-2909.86.2.420","volume":"86","author":"PE Shrout","year":"1979","unstructured":"Shrout P E, Fleiss J L (1979) Intraclass correlations: uses in assessing rater reliability. Psychol Bull 86(2):420","journal-title":"Psychol Bull"},{"key":"10087_CR47","doi-asserted-by":"publisher","first-page":"149","DOI":"10.1016\/S0065-2458(09)01205-4","volume":"77","author":"L Tratt","year":"2009","unstructured":"Tratt L (2009) Dynamically typed languages. Adv. Comput. 77:149\u2013184","journal-title":"Adv. Comput."},{"key":"10087_CR48","unstructured":"Van Rossum G, Drake FL Jr (1995) Python tutorial, vol 620. Centrum voor Wiskunde en Informatica Amsterdam"},{"key":"10087_CR49","doi-asserted-by":"crossref","unstructured":"Vasilescu B, Yu Y, Wang H, Devanbu P, Filkov V (2015) Quality and productivity outcomes relating to continuous integration in github. In: Proceedings of the 2015 10th joint meeting on foundations of software engineering. pp 805\u2013816","DOI":"10.1145\/2786805.2786850"},{"key":"10087_CR50","doi-asserted-by":"crossref","unstructured":"Wang B, Chen L, Ma W, Chen Z, Xu B (2015) An empirical study on the impact of python dynamic features on change-proneness. In: SEKE. pp 134\u2013139","DOI":"10.18293\/SEKE2015-097"},{"key":"10087_CR51","doi-asserted-by":"crossref","unstructured":"Wang Y, Meng N, Zhong H (2018) An empirical study of multi-entity changes in real bug fixes, IEEE","DOI":"10.1109\/ICSME.2018.00038"},{"key":"10087_CR52","doi-asserted-by":"crossref","unstructured":"Weimer W, Nguyen T, Le Goues C, Forrest S (2009) Automatically finding patches using genetic programming. In: 2009 IEEE 31st international conference on software engineering. IEEE, pp 364\u2013374","DOI":"10.1109\/ICSE.2009.5070536"},{"key":"10087_CR53","doi-asserted-by":"crossref","unstructured":"Weimer W, Fry Z P, Forrest S (2013) Leveraging program equivalence for adaptive program repair: Models and first results, IEEE","DOI":"10.1109\/ASE.2013.6693094"},{"key":"10087_CR54","doi-asserted-by":"crossref","unstructured":"Wen M, Wu R, Cheung S C (2016) Locus: Locating bugs from software changes, IEEE","DOI":"10.1145\/2970276.2970359"},{"key":"10087_CR55","doi-asserted-by":"crossref","unstructured":"Wen M, Chen J, Wu R, Hao D, Cheung SC (2018) Context-aware patch generation for better automated program repair, IEEE","DOI":"10.1145\/3180155.3180233"},{"key":"10087_CR56","doi-asserted-by":"crossref","unstructured":"Widyasari R, Sim SQ, Lok C, Qi H, Phan J, Tay Q, Tan C, Wee F, Tan JE, Yieh Y, et al. (2020) Bugsinpy: a database of existing bugs in python programs to enable controlled testing and debugging studies. In: Proceedings of the 28th ACM joint meeting on european software engineering conference and symposium on the foundations of software engineering. pp 1556\u20131560","DOI":"10.1145\/3368089.3417943"},{"key":"10087_CR57","doi-asserted-by":"crossref","unstructured":"Xia X, Wan Z, Kochhar P S, Lo D (2019) How practitioners perceive coding proficiency, IEEE","DOI":"10.1109\/ICSE.2019.00098"},{"key":"10087_CR58","doi-asserted-by":"crossref","unstructured":"Xin Q, Reiss SP (2017) Identifying test-suite-overfitted patches through test case generation. In: Proceedings of the 26th ACM SIGSOFT international symposium on software testing and analysis. pp 226\u2013236","DOI":"10.1145\/3092703.3092718"},{"key":"10087_CR59","doi-asserted-by":"crossref","unstructured":"Xu Z, Liu P, Zhang X, Xu B (2016) Python predictive analysis for bug detection. In: Proceedings of the 2016 24th ACM SIGSOFT international symposium on foundations of software engineering. pp 121\u2013132","DOI":"10.1145\/2950290.2950357"},{"issue":"1","key":"10087_CR60","doi-asserted-by":"publisher","first-page":"34","DOI":"10.1109\/TSE.2016.2560811","volume":"43","author":"J Xuan","year":"2016","unstructured":"Xuan J, Martinez M, Demarco F, Clement M, Marcote S L, Durieux T, Le Berre D, Monperrus M (2016) Nopol: Automatic repair of conditional statement bugs in java programs. IEEE Trans. Softw. Eng. 43(1):34\u201355","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10087_CR61","doi-asserted-by":"publisher","first-page":"110825","DOI":"10.1016\/j.jss.2020.110825","volume":"171","author":"H Ye","year":"2021","unstructured":"Ye H, Martinez M, Durieux T, Monperrus M (2021) A comprehensive study of automatic program repair on the quixbugs benchmark. J. Syst. Softw. 171:110825","journal-title":"J. Syst. Softw."},{"key":"10087_CR62","doi-asserted-by":"crossref","unstructured":"Zhang Y, Chen Y, Cheung SC, Xiong Y, Zhang L (2018) An empirical study on tensorflow program bugs. In: Proceedings of the 27th ACM SIGSOFT international symposium on software testing and analysis. pp 129\u2013140","DOI":"10.1145\/3213846.3213866"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10087-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-021-10087-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-021-10087-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,4,12]],"date-time":"2022-04-12T13:24:17Z","timestamp":1649769857000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-021-10087-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,1,28]]},"references-count":62,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2022,3]]}},"alternative-id":["10087"],"URL":"https:\/\/doi.org\/10.1007\/s10664-021-10087-1","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,1,28]]},"assertion":[{"value":"8 November 2021","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"28 January 2022","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"48"}}