中文版 | English
题名

Recommending open source bug reports towards fixing bugs

其他题名
面向修复错误的开源错误报告推荐
姓名
姓名拼音
LI Ziqiang
学号
11930674
学位类型
硕士
学位专业
0809 电子科学与技术
学科门类/专业学位类别
08 工学
导师
Tan
导师单位
计算机科学与工程系
论文答辩日期
2022-05-08
论文提交日期
2022-06-13
学位授予单位
南方科技大学
学位授予地点
深圳
摘要

As the open source community grows, more and more developers share code and discuss in the open source community. The capability and quality of software depends on the use of numerous users, developers code together, and interactions between them, such as suggestions and bug feedback. However, due to the current home office caused by the pandemic and global business development, developers are naturally physically separated on the planet. Their programming abilities also vary, and even experienced developers could make simple mistakes. Software development involves a variety of collaborations between developers, most of which are limited to the current projects being developed. However, because the open source community has a large code repository and open and diverse discussions, developers will find that their newly developed features are likely to have been implemented by similar programs, or newly discovered bugs are likely to have been discussed and resolved by similar projects. By mining and utilizing redundant or similar information between programs in the open source community, it can help developers reproduce defects and repair programs, thereby helping open source developers to improve the efficiency of software defect repair. In this thesis, using code and bug reports (a.k.a. GitHub issues), through some data processing and algorithm analysis, to mine potential correlations between data, filter and collect valuable information for bug fixes patches or relevant bug reports that help developers understand the cause and context of a defect, thereby improving the overall quality of the software. Specifically, a bug report marked as resolved or a pull request that has been merged represents a more detailed solution, which usually includes: the cause of the problem, steps to resolve it, logs, and even a fix patch, which provides an intuitive understanding of the defect the cause and impact. The difficulties of this work mainly lie in the extraction of bug feature and the similarity measure between bug reports, which affects the recall rate of the results and the ranking precision of candidate bug reports. Based on the above inspiration, aiming at the main difficulties, the main work of this thesis is as follows: (1)By analyzing the common features of UI at different levels in Android programs, combined with UI descriptions and codes in bug reports, A tool called BUGINE is proposed. It successfully retrieves bug reports for Android programs with similar UI components on GitHub, helping developers find and fix bugs, and get positive feedback. (2)In order to extend the work on Android to all programs written in the Java language, similar bug reports are collected that are actively associated by developers in the current open source community, and it is analyzed the characteristics of similar bug reports. Based on the analysis, a tool is introduced, CROSSFIX. It avoids the problem of BUGINE being limited to a local database. It constructs retrieval queries containing bug information to obtain candidate bug reports, and then uses pluggable offline similarity analysis and issue quality evaluation to improve bug report ranking performance. In addition, It has analyzed the results and compares the performance with GitHub and two tools based on Stack Overflow.

其他摘要

随着开源社区的发展,越来越多的开发者在开源社区共享代码和讨论。软件的能力和质量依赖于大量用户的使用,开发者共同开发,以及他们之间的互动,比如建议和错误反馈。然而,目前由于疫情导致的居家办公和全球化业务的开展,开发者天然地物理分隔开来。他们的程序编写能力也各不相同,即便有经验的开发者也会犯简单的错误。开发过程涉及开发者之间的多种合作,大多数合作都局限在开发者开发的当前项目中。但是,由于开源社区拥有庞大的代码仓库和包容多样的讨论,开发者会发现新开发的功能很可能已经被类似的程序实现,或者新发现的错误很可能已经被类似的项目讨论并解决。通过挖掘和利用开源社区中程序之间的冗余或相似信息,可以帮助开发者重现故障和修复程序,从而帮助开源开发者提高软件缺陷修复的效率。

 

  在本文中,介绍了利用代码和错误报告(又可被称作 GitHub issue),通过一些数据处理和算法分析,挖掘数据之间的潜在相关性,过滤和收集有重要价值的信息,以获得错误修复补丁或相关的错误报告,帮助开发人员了解缺陷的原因和背景,从而提高软件的整体质量。具体来说:标记为已解决的错误报告或已合并的合并请求代表了更详细的解决方案,其通常包括:问题的原因、解决步骤、参考资料,甚至是补丁,这些都可以直观地理解缺陷的前因后果。本文工作的难点主要在于缺陷特征提取与错误报告之间的相似性度量,这会影响结果的召回率和候选错误报告排名准确性。基于上述启发,针对主要难点,本文的主要工作如下:

(1)通过分析安卓程序中不同层次的用户界面的共同特征,结合错误报告中的 UI 描述和代码,提出了一个工具,BUGINE。在 GitHub 上成功检索具有类似 UI组件的安卓程序的错误报告,帮助开发者发现并解决错误,获得正面反馈。

(2)为了把在安卓上的工作推广到所有 Java 语言编写的程序上,本文收集了当前开源社区中开发者主动关联的相似错误报告,分析其中的相关特征。基于分析,重新设计了一个工具,CROSSFIX。它避免了 BUGINE 受限于有限本地数据库的问题,构造包含错误信息的检索请求来获取候选错误报告,然后使用可扩展的离线相似性分析和错误报告质量评估来提高错误报告的排名性能。此外,本文还对结果进行了分析,并与 GitHub 和基于 Stack Overflow 的工具的性能进行了比较。

关键词
其他关键词
语种
英语
培养类别
独立培养
入学年份
2019
学位授予年份
2022-06
参考文献列表

[1]杨芙清, 梅宏, 吕建, 等. 浅论软件技术发展[J]. 电子学报, 2002, 30(S1): 1901.
[2]IBM. Open source vs closed source software[EB/OL]. 2022. https://www.ibm.com/topics/open­source.
[3]PLANNING S. The economic impacts of inadequate infrastructure for software testing[J]. Na­tional Institute of Standards and Technology, 2002: 1.
[4]SEACORD R C, PLAKOSH D, LEWIS G A. Modernizing legacy systems: software technolo­gies, engineering processes, and business practices[M]. Addison­Wesley Professional, 2003.
[5]KAMARUZZAMAN M. Top 10 in­demand programming languages to learn in 2020[EB/OL].2020. https://towardsdatascience.com/top­10­in­demand­programming­languages­to­learn­in­2020­4462eb7d8d3e.
[6]LI L, BISSYANDÉ T F, LE TRAON Y, et al. Accessing inaccessible android apis: An em­pirical study[C]//2016 IEEE International Conference on Software Maintenance and Evolution(ICSME). IEEE, 2016: 411­422.
[7]XIA H, ZHANG Y, ZHOU Y, et al. How android developers handle evolution­induced apicompatibility issues: A large­scale study[C]//2020 IEEE/ACM 42nd International Conferenceon Software Engineering (ICSE). IEEE, 2020: 886­898.
[8]JEEVANANDAM N. Top 10 programming languages used by github repo contributors in 2021[EB/OL]. 2021. https://analyticsindiamag.com/github­repo­contributors/.
[9]GOUES C L, PRADEL M, ROYCHOUDHURY A. Automated program repair[J]. Communi­cations of the ACM, 2019, 62(12): 56­65.
[10]JONES J A, HARROLD M J, STASKO J. Visualization of test information to assist fault local­ization[C]//Proceedings of the 24th International Conference on Software Engineering. ICSE2002. IEEE, 2002: 467­477.
[11]KOYUNCU A, LIU K, BISSYANDÉ T F, et al. ifixr: Bug report driven program repair[C]//Proceedings of the 2019 27th ACM joint meeting on european software engineering conferenceand symposium on the foundations of software engineering. 2019: 314­325.
[12]LIU C, YANG J, TAN L, et al. R2fix: Automatically generating bug fixes from bug reports[C]//2013 IEEE Sixth international conference on software testing, verification and validation.IEEE, 2013: 282­291.
[13]ROCHA H, VALENTE M T, MARQUES­NETO H, et al. An empirical study on recommen­dations of similar bugs[C]//2016 IEEE 23rd International Conference on Software Analysis,Evolution, and Reengineering (SANER): volume 1. IEEE, 2016: 46­56.
[14]YANG X, LO D, XIA X, et al. Combining word embedding with information retrieval to recom­mend similar bug reports[C]//2016 IEEE 27Th international symposium on software reliabilityengineering (ISSRE). IEEE, 2016: 127­137.59
[15]WANG X, ZHANG L, XIE T, et al. An approach to detecting duplicate bug reports using naturallanguage and execution information[C]//Proceedings of the 30th international conference onSoftware engineering. 2008: 461­470.
[16]SUN C, LO D, KHOO S C, et al. Towards more accurate retrieval of duplicate bug reports[C]//2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE2011). IEEE, 2011: 253­262.
[17]ROCHA H, DE OLIVEIRA G, MARQUES­NETO H, et al. Nextbug: a bugzilla extension forrecommending similar bugs[J]. Journal of Software Engineering Research and Development,2015, 3(1): 3.
[18]COMMITTEE I S C, et al. Ieee standard glossary of software engineering terminology (ieeestd 610.12­1990). los alamitos[J]. CA: IEEE Computer Society, 1990, 169: 132.
[19]TIAN J. Software quality engineering: testing, quality assurance, and quantifiable improvement[M]. John Wiley & Sons, 2005.
[20]PRESSMAN R S. Software engineering: a practitioner’s approach[M]. Palgrave macmillan,2005.
[21]梅宏, 王千祥, 张路, 等. 软件分析技术进展[J]. 计算机学报, 2009, 32(9): 1697­1710.
[22]JONES J A. Semi­automatic fault localization[M]. Georgia Institute of Technology, 2008.
[23]BUGZILLA. Life cycle of a bug[EB/OL]. 2014. https://bugzilla.readthedocs.io/en/latest/using/editing.html#life­cycle­of­a­bug.
[24]POP D. Focus crashes when downloading a media file on google pixel 6 (android 12) ꞏ issue#6346 ꞏ mozilla­mobile/focus­android ꞏ github[EB/OL]. 2022. https://github.com/mozilla­mobile/focus­android/issues/6346.
[25]MUGURELL. Set flag_immutable for all pendingintents starting from android 23 by mugurellꞏ pull request #11669 ꞏ mozilla­mobile/android­components ꞏ github[EB/OL]. 2022. https://github.com/mozilla­mobile/android­components/pull/11669.
[26]JUST R, JALALI D, ERNST M D. Defects4j: A database of existing faults to enable con­trolled testing studies for java programs[C]//Proceedings of the 2014 International Symposiumon Software Testing and Analysis. 2014: 437­440.
[27]MARTINEZ M, DURIEUX T, SOMMERARD R, et al. Automatic repair of real bugs in java:A large­scale experiment on the defects4j dataset[J]. Empirical Software Engineering, 2017, 22(4): 1936­1964.
[28]JIANG J, XIONG Y, XIA X. A manual inspection of defects4j bugs and its implications forautomatic program repair[J]. Science China Information Sciences, 2019, 62(10): 200102.
[29]GAZZOLA L, MICUCCI D, MARIANI L. Automatic software repair: A survey[J]. IEEETransactions on Software Engineering, 2017, 45(1): 34­67.
[30]LE GOUES C, DEWEY­VOGT M, FORREST S, et al. A systematic study of automated pro­gram repair: Fixing 55 out of 105 bugs for $8 each[C]//2012 34th International Conference onSoftware Engineering (ICSE). IEEE, 2012: 3­13.60
[31]ALSHAHWAN N, GAO X, HARMAN M, et al. Deploying search based software engineeringwith sapienz at facebook[C]//International Symposium on Search Based Software Engineering.Springer, 2018: 3­45.
[32]ARTZI S, KIM S, ERNST M D. Recrashj: a tool for capturing and reproducing program crashesin deployed applications[C]//Proceedings of the 7th joint meeting of the European softwareengineering conference and the ACM SIGSOFT symposium on The foundations of softwareengineering. 2009: 295­296.
[33]CAO Y, ZHANG H, DING S. Symcrash: selective recording for reproducing crashes[C]//Proceedings of the 29th ACM/IEEE international conference on Automated software engineer­ing. 2014: 791­802.
[34]XUAN J, XIE X, MONPERRUS M. Crash reproduction via test case mutation: let existingtest cases help[C]//Proceedings of the 2015 10th Joint Meeting on Foundations of SoftwareEngineering. 2015: 910­913.
[35]PACHECO C, ERNST M D.Randoop: feedback­directed random testing for java[C]//Companion to the 22nd ACM SIGPLAN conference on Object­oriented programming systemsand applications companion. 2007: 815­816.
[36]FRASER G, ARCURI A. Evosuite: automatic test suite generation for object­oriented software[C]//Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference onFoundations of software engineering. 2011: 416­419.
[37]TAN S H, YOSHIDA H, PRASAD M R, et al. Anti­patterns in search­based program repair[C]//Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundationsof Software Engineering. 2016: 727­738.
[38]XIN Q, REISS S. Better code search and reuse for better program repair[C]//2019 IEEE/ACMInternational Workshop on Genetic Improvement (GI). IEEE, 2019: 10­17.
[39]KE Y, STOLEE K T, LE GOUES C, et al. Repairing programs with semantic code search(t)[C]//2015 30th IEEE/ACM International Conference on Automated Software Engineering(ASE). IEEE, 2015: 295­306.
[40]LE GOUES C, NGUYEN T, FORREST S, et al. Genprog: A generic method for automaticsoftware repair[J]. Ieee transactions on software engineering, 2011, 38(1): 54­72.
[41]TAN S H, YI J, MECHTAEV S, et al. Codeflaws: a programming competition benchmark forevaluating automated program repair tools[C]//2017 IEEE/ACM 39th International Conferenceon Software Engineering Companion (ICSE­C). IEEE, 2017: 180­182.
[42]LIANG J, HOU Y, ZHOU S, et al. How to explain a patch: An empirical study of patch ex­planations in open source projects[C]//2019 IEEE 30th International Symposium on SoftwareReliability Engineering (ISSRE). IEEE, 2019: 58­69.
[43]TIAN Y, SUN C, LO D. Improved duplicate bug report identification[C]//2012 16th EuropeanConference on Software Maintenance and Reengineering. IEEE, 2012: 385­390.
[44]NGUYEN A T, NGUYEN T T, NGUYEN T N, et al. Duplicate bug report detection witha combination of information retrieval and topic modeling[C]//2012 Proceedings of the 27thIEEE/ACM International Conference on Automated Software Engineering. IEEE, 2012: 70­79.61
[45]SUREKA A, JALOTE P. Detecting duplicate bug report using character n­gram­based features[C]//2010 Asia Pacific Software Engineering Conference. IEEE, 2010: 366­374.
[46]ALIPOUR A, HINDLE A, STROULIA E. A contextual approach towards more accurate dupli­cate bug report detection[C]//2013 10th Working Conference on Mining Software Repositories(MSR). IEEE, 2013: 183­192.
[47]HINDLE A, ONUCZKO C. Preventing duplicate bug reports by continuously querying bugreports[J]. Empirical Software Engineering, 2019, 24(2): 902­936.
[48]BETTENBURG N, PREMRAJ R, ZIMMERMANN T, et al. Duplicate bug reports consideredharmful… really?[C]//2008 IEEE International Conference on Software Maintenance. IEEE,2008: 337­345.
[49]KIM D, NAM J, SONG J, et al. Automatic patch generation learned from human­written patches[C]//2013 35th International Conference on Software Engineering (ICSE). IEEE, 2013: 802­811.
[50]KOYUNCU A, LIU K, BISSYANDÉ T F, et al. Fixminer: Mining relevant fix patterns forautomated program repair[J]. Empirical Software Engineering, 2020: 1­45.
[51]TUFANO M, WATSON C, BAVOTA G, et al. An empirical study on learning bug­fixing patchesin the wild via neural machine translation[J]. ACM Transactions on Software Engineering andMethodology (TOSEM), 2019, 28(4): 1­29.
[52]ZHANG X, ZHU C, LI Y, et al. Precfix: large­scale patch recommendation by mining defect­patch pairs[C]//Proceedings of the ACM/IEEE 42nd International Conference on Software En­gineering: Software Engineering in Practice. 2020: 41­50.
[53]RAGKHITWETSAGUL C, KRINKE J, PAIXAO M, et al. Toxic code snippets on stack over­flow[J]. IEEE Transactions on Software Engineering, 2019.
[54]BÜCH L, ANDRZEJAK A. Learning­based recursive aggregation of abstract syntax trees forcode clone detection[C]//2019 IEEE 26th International Conference on Software Analysis, Evo­lution and Reengineering (SANER). IEEE, 2019: 95­104.
[55]WHITE M, TUFANO M, VENDOME C, et al. Deep learning code fragments for code clonedetection[C]//2016 31st IEEE/ACM International Conference on Automated Software Engi­neering (ASE). IEEE, 2016: 87­98.
[56]DUSTIN E, GARRETT T, GAUF B. Implementing automated software testing: How to savetime and lower costs while raising quality[M]. Pearson Education, 2009.
[57]OLIVEIRA R A, KANEWALA U, NARDI P A. Automated test oracles: State of the art,taxonomies, and trends[M]//Advances in computers: volume 95. Elsevier, 2014: 113­199.
[58]MYERS G J, SANDLER C, BADGETT T. The art of software testing[M]. John Wiley & Sons,2011.
[59]HUMBLE J, FARLEY D. Continuous delivery: Reliable software releases through build, test,and deployment automation (adobe reader)[M]. Pearson Education, 2010.
[60]BERTOLINO A. Software testing research: Achievements, challenges, dreams[C]//2007 Fu­ture of Software Engineering. IEEE Computer Society, 2007: 85­103.62
[61]RAFI D M, MOSES K R K, PETERSEN K, et al. Benefits and limitations of automated soft­ware testing: Systematic literature review and practitioner survey[C]//Proceedings of the 7thInternational Workshop on Automation of Software Test. IEEE Press, 2012: 36­42.
[62]GAROUSI V, MÄNTYLÄ M V. When and what to automate in software testing? a multi­vocalliterature review[J]. Information and Software Technology, 2016, 76: 92­117.
[63]FRASER G, ZELLER A. Mutation­driven generation of unit tests and oracles[J]. IEEE Trans­actions on Software Engineering, 2011, 38(2): 278­292.
[64]STAATS M, GAY G, HEIMDAHL M P. Automated oracle creation support, or: how i learnedto stop worrying about fault propagation and love mutation testing[C]//Proceedings of the 34thInternational Conference on Software Engineering. IEEE Press, 2012: 870­880.
[65]ARCURI A. An experience report on applying software testing academic results in industry:we need usable automated test generation[J]. Empirical Software Engineering, 2018, 23(4):1959­1981.
[66]ZHAO Y, YU T, SU T, et al. Recdroid: automatically reproducing android application crashesfrom bug reports[C]//2019 IEEE/ACM 41st International Conference on Software Engineering(ICSE). IEEE, 2019: 128­139.
[67]LI Z, TAN S H. Bugine: a bug report recommendation system for android apps[C]//Proceedingsof the ACM/IEEE 42nd International Conference on Software Engineering: Companion Pro­ceedings. 2020: 278­279.
[68]JIANG J, XIONG Y, ZHANG H, et al. Shaping program repair space with existing patches andsimilar code[C]//Proceedings of the 27th ACM SIGSOFT international symposium on softwaretesting and analysis. 2018: 298­309.
[69]GAO Q, ZHANG H, WANG J, et al. Fixing recurring crash bugs via analyzing q&a sites (t)[C]//2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).IEEE, 2015: 307­318.
[70]TAN S H, LI Z. Collaborative bug finding for android apps[C]//Proceedings of the ACM/IEEE42nd International Conference on Software Engineering. 2020: 1335­1347.
[71]HU C, NEAMTIU I. Automating gui testing for android applications[C]//Proceedings of the6th International Workshop on Automation of Software Test. ACM, 2011: 77­83.
[72]COELHO R, ALMEIDA L, GOUSIOS G, et al. Exception handling bug hazards in android[J].Empirical Software Engineering, 2016: 1­41.
[73]FICANO N. nficano/humps: Convert strings (and dictionary keys) between snake case, camelcase and pascal case in python. inspired by humps for node[EB/OL]. 2022. https://github.com/nficano/humps.
[74]PROJECT N. Nltk :: Natural language toolkit[EB/OL]. 2022. https://www.nltk.org/.
[75]TECHNOLOGIES R. Gensim: Topic modelling for humans[EB/OL]. 2022. https://radimrehurek.com/gensim/index.html.
[76]Layouts | android developers[EB/OL]. 2022. https://developer.android.com/guide/topics/ui/declaring­layout.63
[77]KOWALSKI G. Information retrieval architecture and algorithms[M]. Springer Science &Business Media, 2010.
[78]JACCARD P. Étude comparative de la distribution florale dans une portion des alpes et des jura[J]. Bull Soc Vaudoise Sci Nat, 1901, 37: 547­579.
[79]DICE L R. Measures of the amount of ecologic association between species[J]. Ecology, 1945,26(3): 297­302.
[80]KONDRAK G. N­gram similarity and distance[C]//International symposium on string process­ing and information retrieval. Springer, 2005: 115­126.
[81]ZIMMERMANN T, PREMRAJ R, BETTENBURG N, et al. What makes a good bug report?[J]. IEEE Transactions on Software Engineering, 2010, 36(5): 618­643.
[82]ZHOU J, ZHANG H, LO D. Where should the bugs be fixed? more accurate informationretrieval­based bug localization based on bug reports[C]//2012 34th International Conferenceon Software Engineering (ICSE). IEEE, 2012: 14­24.
[83]YE X, BUNESCU R, LIU C. Learning to rank relevant files for bug reports using domainknowledge[C]//Proceedings of the 22nd ACM SIGSOFT International Symposium on Founda­tions of Software Engineering. 2014: 689­699.
[84]VOORHEES E M, et al. The trec­8 question answering track report.[C]//Trec: volume 99.1999: 77­82.
[85]LINARES­VÁSQUEZ M, HOLTZHAUER A, POSHYVANYK D. On automatically detectingsimilar android apps[C]//2016 IEEE 24th International Conference on Program Comprehension(ICPC). IEEE, 2016: 1­10.
[86]TAN S H, LI Z, YAN L. Crossfix: Collaborative bug fixing by recommending similar bugs[J/OL]. CoRR, 2021, abs/2103.13453. https://arxiv.org/abs/2103.13453.
[87]MECHTAEV S, YI J, ROYCHOUDHURY A.Angelix: Scalable multiline program patchsynthesis via symbolic analysis[C]//Software Engineering (ICSE), 2016 IEEE/ACM 38th In­ternational Conference on. IEEE, 2016: 691­701.
[88]LONG F, RINARD M. Automatic patch generation by learning correct code[C]//POPL ’16:Proceedings of the 43rd Annual ACM SIGPLAN­SIGACT Symposium on Principles of Pro­gramming Languages. New York, NY, USA: ACM, 2016: 298­312.
[89]MARTINEZ M, DURIEUX T, SOMMERARD R, et al. Automatic repair of real bugs in java:A large­scale experiment on the defects4j dataset[J]. Empirical Software Engineering, 2016:1­29.
[90]WEIMER W, NGUYEN T, LE GOUES C, et al. Automatically finding patches using geneticprogramming[C]//2009 IEEE 31st International Conference on Software Engineering. IEEE,2009: 364­374.
[91]MONPERRUS M. A critical review of ”automatic patch generation learned from human­writtenpatches”: Essay on the problem statement and the evaluation of automatic software repair[C]//ICSE 2014: Proceedings of the 36th International Conference on Software Engineering. NewYork, NY, USA: ACM, 2014: 234­242.64
[92]LIU C, YANG J, TAN L, et al. R2fix: Automatically generating bug fixes from bug reports[C/OL]//Sixth IEEE International Conference on Software Testing, Verification and Validation,ICST 2013, Luxembourg, Luxembourg, March 18­22, 2013. IEEE Computer Society, 2013:282­291. DOI: 10.1109/ICST.2013.24.
[93]KOYUNCU A, LIU K, BISSYANDé T F, et al. IFixR: Bug report driven program repair[C/OL]//ESEC/FSE 2019: 27th ACM Joint Meeting on European Software Engineering Conference(ESEC) and Symposium on the Foundations of Software Engineering (FSE). New York, NY,USA: Association for Computing Machinery, 2019: 314­325. DOI: 10.1145/3338906.3338935.
[94]SINHA S, SHAH H, GöRG C, et al. Fault localization and repair for java runtime exceptions[C/OL]//ISSTA ’09: Proceedings of the Eighteenth International Symposium on Software Test­ing and Analysis. New York, NY, USA: ACM, 2009: 153­164. http://doi.acm.org/10.1145/1572272.1572291.
[95]GU Y, XUAN J, ZHANG H, et al.Does the fault reside in a stack trace? assisting crashlocalization by predicting crashing fault residence[J]. Journal of Systems and Software, 2019,148: 88­104.
[96]WU R, WEN M, CHEUNG S C, et al. Changelocator: locate crash­inducing changes based oncrash reports[J]. Empirical Software Engineering, 2018, 23(5): 2866­2900.
[97]HAN S, DANG Y, GE S, et al. Performance debugging in the large via mining millions of stacktraces[C]//2012 34th International Conference on Software Engineering (ICSE). IEEE, 2012:145­155.
[98]TAN S H, DONG Z, GAO X, et al. Repairing crashes in android apps[C]//2018 IEEE/ACM40th International Conference on Software Engineering (ICSE). IEEE, 2018: 187­198.
[99]Liang J, Hou Y, Zhou S, et al. How to explain a patch: An empirical study of patch explanationsin open source projects[C]//2019 IEEE 30th International Symposium on Software ReliabilityEngineering (ISSRE). 2019: 58­69.
[100] PRECHELT L, MALPOHL G, PHILIPPSEN M, et al. Finding plagiarisms among a set ofprograms with jplag.[J]. J. Univers. Comput. Sci., 2002, 8(11): 1016.
[101] AHTIAINEN A, SURAKKA S, RAHIKAINEN M. Plaggie: Gnu­licensed source code pla­giarism detection engine for java exercises[C]//Proceedings of the 6th Baltic Sea conference onComputing education research: Koli Calling 2006. 2006: 141­142.
[102] LUO L, MING J, WU D, et al. Semantics­based obfuscation­resilient binary code similar­ity comparison with applications to software plagiarism detection[C]//Proceedings of the 22ndACM SIGSOFT International Symposium on Foundations of Software Engineering.2014:389­400.
[103] MARTINS V T, FONTE D, HENRIQUES P R, et al. Plagiarism detection: A tool survey andcomparison[J]. Maria João Varanda Pereira José Paulo Leal, 2014: 143.
[104] LANCASTER T, CULWIN F. A comparison of source code plagiarism detection engines[J].Computer Science Education, 2004, 14(2): 101­112.
[105] SCHLEIMER S, WILKERSON D S, AIKEN A. Winnowing: local algorithms for documentfingerprinting[C]//Proceedings of the 2003 ACM SIGMOD international conference on Man­agement of data. 2003: 76­85.65
[106] RAGKHITWETSAGUL C, KRINKE J, CLARK D. A comparison of code similarity analysers[J]. Empirical Software Engineering, 2018, 23(4): 2464­2519.
[107] NOVAK M. Review of source­code plagiarism detection in academia[C]//2016 39th Interna­tional convention on information and communication technology, electronics and microelec­tronics (MIPRO). IEEE, 2016: 796­801.
[108] Ant vs maven vs gradle: Java build tools comparison[EB/OL]. 2021. https://www.jrebel.com/blog/java­build­tools­comparison.
[109] GRECO C, HADEN T, DAMEVSKI K. Stackintheflow: behavior­driven recommendation sys­tem for stack overflow posts[C]//Proceedings of the 40th International Conference on SoftwareEngineering: Companion Proceeedings. 2018: 5­8.
[110] URLI S, YU Z, SEINTURIER L, et al. How to design a program repair bot? insights from therepairnator project[C]//2018 IEEE/ACM 40th International Conference on Software Engineer­ing: Software Engineering in Practice Track (ICSE­SEIP). IEEE, 2018: 95­104.
[111] GITHUB. Dependabot[EB/OL]. 2022. https://github.com/dependabot.

所在学位评定分委会
计算机科学与工程系
国内图书分类号
TP311.5
来源库
人工提交
成果类型学位论文
条目标识符http://sustech.caswiz.com/handle/2SGJ60CL/335694
专题工学院_计算机科学与工程系
推荐引用方式
GB/T 7714
Li ZQ. Recommending open source bug reports towards fixing bugs[D]. 深圳. 南方科技大学,2022.
条目包含的文件
文件名称/大小 文献类型 版本类型 开放类型 使用许可 操作
11930674-李子强-计算机科学与工(3556KB)学位论文--限制开放CC BY-NC-SA请求全文
个性服务
原文链接
推荐该条目
保存到收藏夹
查看访问统计
导出为Endnote文件
导出为Excel格式
导出为Csv格式
Altmetrics Score
谷歌学术
谷歌学术中相似的文章
[李子强]的文章
百度学术
百度学术中相似的文章
[李子强]的文章
必应学术
必应学术中相似的文章
[李子强]的文章
相关权益政策
暂无数据
收藏/分享
所有评论 (0)
[发表评论/异议/意见]
暂无评论

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。