Font Size: a A A

Research On Code Review Based On Deep Learning

Posted on:2020-03-15Degree:MasterType:Thesis
Country:ChinaCandidate:Y J DuanFull Text:PDF
GTID:2428330605967989Subject:Computer technology
Abstract/Summary:PDF Full Text Request
Code review,refers to the systematic review of software source code during the software development process,of which purpose is to correct errors that were not discovered in the early stages of software development process,and improve software quality and technology of developers.In the software development process,code review is an important guarantee mechanism for software quality,only the code that passes the review will be submitted to the master branch.In the modern code review process,code reviewers are selected primarily by personal experience of the project manager or by inviting other developers in the form of broadcasts.The code reviewer then checks the code to check whether the code is compliant and submits a review report.There are two issues in the existing code review process,on the one hand,the code reviewer's choice is too subjective,inefficient,and lacks accuracy.On the other hand,the code review comments of the reviewer's feedback contain a large amount of meaningless information and lack of effectiveness evaluation analysis.In view of the problems in the code review process,we conducted research on code reviewer allocation and code review comments validity evaluation,then conducted experiments under the real data set to verify the effectiveness of the approaches.The innovations and main work of this paper are as follows:1.Aiming at the low efficiency and inaccuracy of code reviewer allocation in software development,this paper proposes a code reviewer recommendation method based on convolutional neural network and long short-term memory network.The method employs a hybrid network to extract high-level features related to the code reviewer from the process data and code difference data generated in the code submission process.In addition,this paper devises the method based on abstract syntax tree to extract the fine-grained and function-level code modified difference data,which makes the extracted high-level features related to code reviewers recommendation more accurate.2.In view of the fact that the code review opinions in the software development process contain a large amount of meaningless information,in order to realize the validity analysis of the code review opinions and the normative reviewers writing specifications,this paper proposes a code review opinions evaluation model based on long short-term memory networks,which extracts high-level abstract features related to the validity of code review opinions from the code review opinions after word vectorization.3.In order to verify the effectiveness of our proposed method,this paper selected 352 open source community projects from Git Hub as experimental data,and conducted extensive experiments on these projects.The extensive experimental results show that,compared with existing deep learning approach,the code reviewer assignment method proposed in this paper performs better with an average accuracy rate of 84.5%,and it is worth noting that the accuracy in single project is up to 92.3%.In addition,the average accuracy of the code review comments evaluation model proposed in this paper reached 88.4%,which proves that the evaluation model can effectively help developers evaluate the effectiveness of code review comments,thus standardizing the review comments and improving the quality of code review.
Keywords/Search Tags:Software Engineering, Code Review, Deep Learning, Natural Language Processing
PDF Full Text Request
Related items