RevRec: A two-layer reviewer recommendation algorithm in pull-based development model

Cheng Yang , Xun-hui Zhang , Ling-bin Zeng , Qiang Fan , Tao Wang , Yue Yu , Gang Yin , Huai-min Wang

Journal of Central South University ›› 2018, Vol. 25 ›› Issue (5) : 1129 -1143.

PDF
Journal of Central South University ›› 2018, Vol. 25 ›› Issue (5) : 1129 -1143. DOI: 10.1007/s11771-018-3812-x
Article

RevRec: A two-layer reviewer recommendation algorithm in pull-based development model

Author information +
History +
PDF

Abstract

Code review is an important process to reduce code defects and improve software quality. In social coding communities like GitHub, as everyone can submit Pull-Requests, code review plays a more important role than ever before, and the process is quite time-consuming. Therefore, finding and recommending proper reviewers for the emerging Pull-Requests becomes a vital task. However, most of the current studies mainly focus on recommending reviewers by checking whether they will participate or not without differentiating the participation types. In this paper, we develop a two-layer reviewer recommendation model to recommend reviewers for Pull-Requests (PRs) in GitHub projects from the technical and managerial perspectives. For the first layer, we recommend suitable developers to review the target PRs based on a hybrid recommendation method. For the second layer, after getting the recommendation results from the first layer, we specify whether the target developer will technically or managerially participate in the reviewing process. We conducted experiments on two popular projects in GitHub, and tested the approach using PRs created between February 2016 and February 2017. The results show that the first layer of our recommendation model performs better than the previous work, and the second layer can effectively differentiate the types of participation.

Keywords

Pull-Request / code reviewer recommendation / GitHub / open source community

Cite this article

Download citation ▾
Cheng Yang, Xun-hui Zhang, Ling-bin Zeng, Qiang Fan, Tao Wang, Yue Yu, Gang Yin, Huai-min Wang. RevRec: A two-layer reviewer recommendation algorithm in pull-based development model. Journal of Central South University, 2018, 25(5): 1129-1143 DOI:10.1007/s11771-018-3812-x

登录浏览全文

4963

注册一个新账户 忘记密码

References

[1]

BoehmB, RombachH D, ZelkowitzM V. Software defect reduction top 10 list [M]. Foundations of Empirical Software Engineering: the Legacy of Victor R, 2005

[2]

ThongtanunamP, TantithamthavornC, KulaR G, YoshidaV, IidaH, MatsumotoK I. Who should review my code? A file location-based code-reviewer recommendation approach for modern code review [C]. Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on. IEEE, 2015141150

[3]

KollanusS, KoskinenJ. Survey of software inspection research [J]. The Open Software Engineering Journal, 2009, 3(1): 15-34

[4]

RigbyP C, StoreyM A. Understanding broadcast based peer review on open source software projects [C]. Proceedings of the 33rd International Conference on Software Engineering. ACM, 2011541550

[5]

BalachandranV. Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation [C]. Software Engineering (ICSE), 2013 35th International Conference on. IEEE, 2013931940

[6]

JeongG, KimS, ZimmermannT, YiK. Improving code review by predicting reviewers and acceptance of patches [M]. Research on Software Analysis for Error-free Computing Center Tech-Memo (ROSAEC MEMO 2009-006), 2009118

[7]

YuY, WangH, YinG, WangT. Reviewer recommendation for pull-requests in GitHub: What can we learn from code review and bug assignment? [J]. Information and Software Technology, 2016, 74: 204-218

[8]

BroyM, DenertEPioneers and their contributions to software engineering [M], 2001, Berlin Heidelberg, Springer

[9]

MclntoshS, KameiY, AdamsB, HassanA E. The impact of code review coverage and code review participation on software quality: A case study of the qt, vtk, and itk projects [C]. Proceedings of the 11th Working Conference on Mining Software Repositories, 2014192201

[10]

McintoshS, KameiY, AdamsB, HassanA E. An empirical study of the impact of modern code review practices on software quality [J]. Empirical Software Engineering, 2016, 21(5): 2146-2189

[11]

BosuA, CarverJ C. Peer code review to prevent security vulnerabilities: An empirical evaluation [C]. Software Security and Reliability-Companion (SERE-C), 2013 IEEE 7th International Conference on. IEEE, 2013229230

[12]

MoralesR, MclntoshS, KhomhF. Do code review practices impact design quality? a case study of the qt, vtk, and itk projects [C]. Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on. IEEE, 2015171180

[13]

MukadamM, BirdC, RigbyP C. Gerrit software code review data from android [C]. Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on. IEEE, 20134548

[14]

GousiosG, ZaidmanA, StoreyM A v, DeursenA. Work practices and challenges in pull-based development: the integrator's perspective [C]. Proceedings of the 37th International Conference on Software Engineering: Volume 1. IEEE, 2015358368

[15]

PhamR, SingerL, LiskinO, FigueirafilhoF, SchneiderK. Creating a shared understanding of testing culture on a social coding site [C]. Software Engineering (ICSE), 2013 35th International Conference on. IEEE, 2013112121

[16]

ZhuJ, ZhouM, MockusA. Effectiveness of code contribution: From patch-based to pull-request-based tools [C]. Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. ACM, 2016871882

[17]

YuY, WangH, YinG, LingC X. Reviewer recommender of pull-requests in GitHub [C]. Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on. IEEE, 2014609612

[18]

YANG C, ZHANG X, ZENG L, FAN Q, YIN G, WANG H. An empirical study of reviewer recommendation in pull-based development model [C]// Proceedings of the 9th Asia-Pacific Symposium on Internetware. ACM, 2017: 14.

[19]

JeongG, KimS, ZimmermannT. Improving bug triage with bug tossing graphs [C]. Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM, 2009111120

[20]

KagdiH, PoshyvanykD. Who can help me with this change request? [C]. Program Comprehension, 2009. ICPC'09. IEEE 17th International Conference on. IEEE, 2009273277

[21]

BhattacharyaP, NeamtiuI. Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging [C]. Software Maintenance (ICSM), 2010 IEEE International Conference on. IEEE, 2010110

[22]

CanforaG, CeruloL. Supporting change request assignment in open source development [C]. Proceedings of the 2006 ACM Symposium on Applied Computing. ACM, 200617671772

[23]

Linares-VásquezM, HossenK, DangH, KagdiH, GethersM, PoshyvanykD. Triaging incoming change requests: Bug or commit history, or code authorship? [C]. Software Maintenance (ICSM), 2012 28th IEEE International Conference on. IEEE, 2012451460

[24]

JonssonL, BorgM, BromanD, SandahlK, EldhS, RunesonP. Automated bug assignment: Ensemble-based machine learning in large scale industrial contexts [J]. Empirical Software Engineering, 2016, 21(4): 1533-1578

[25]

TamrawiA, NguyenT T, Al-KofahiJ M, NguyenT N. Fuzzy set and cache-based approach for bug triaging [C]. Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM, 2011365375

[26]

XuanJ, JiangH, RenZ, YanJ, LuoZAutomatic bug triage using semi-supervised text classification [J], 2017

[27]

HanD, ZhuoH, XiaL, LiL. Permission and role automatic assigning of user in role-based access control [J]. Journal of Central South University, 2012, 19(4): 1049-1056

[28]

AnvikJ, HiewL, MurphyG C. Who should fix this bug? [C]. Proceedings of the 28th International Conference on Software Engineering. ACM, 2006361370

[29]

ShokripourR, AnvikJ, KasirunZ M, ZamaniS. Improving automatic bug assignment using time-metadata in term-weighting [J]. IET Software, 2014, 8(6): 269-278

[30]

ZhangX, WangT, YinG, YangC, YuY, WangH. DevRec: A developer recommendation system for open source repositories [C]. International Conference on Software Reuse, 2017311

[31]

ZHANG X, WANG T, YIN G, YANG C, WANG H. Who will be interested in? A contributor recommendation approach for open source projects [C]// Proceedings of the 29th International Conference on Software Engineering & Knowledge Engineering, 10.182931SEKE2017-067.

[32]

ThongtanunamP, KulaR G, CruzA E C, YoshidaN, IidaH. Improving code review effectiveness through reviewer recommendations [C]. Proceedings of the 7th International Workshop on Cooperative and Human Aspects of Software Engineering. ACM, 2014119122

[33]

RahmanM M, RoyC K, CollinsJ A. CoRReCT: Code reviewer recommendation in GitHub based on cross-project and technology experience [C]. Software Engineering Companion (ICSE-C), IEEE/ACM International Conference on. IEEE, 2016222231

[34]

YuY, WangH, YinG, LingC X. Who should review this pull-request: Reviewer recommendation to expedite crowd collaboration [C]. Software Engineering Conference (APSEC), 2014 21st Asia-Pacific. IEEE, 2014, 1: 335-342

[35]

ZanjaniM B, KagdiH, BirdC. Automatically recommending peer reviewers in modern code review [J]. IEEE Transactions on Software Engineering, 2016, 42(6): 530-543

[36]

XiaZ, SunH, JiangJ, WangX, LiuX. A hybrid approach to code reviewer recommendation with collaborative filtering [C]. 2017 6th International Workshop on Software Mining (Software Mining). IEEE, 20172431

AI Summary AI Mindmap
PDF

128

Accesses

0

Citation

Detail

Sections
Recommended

AI思维导图

/