ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
1. Search-Based Peer Reviewers
Recommendation in Modern
Code Review
32nd IEEE International Conference on Software Maintenance and Evolution (ICSME) 2016
October 5-7, 2016, Raleigh, North Carolina, USA
Ali Ouni Raula Gaikovina Kula Katsuro Inoue
2. 2
Code review is a key part of the
software development process
Programmer
Code reviewer
What does
that code do?
5. Code reviewers assignment problem
âWho should review my code?â
⢠Identifying appropriate reviewers is a hard task
â A code change involve multiple files
â A file is edited by multiple developers and reviewer
my multiple reviewers
⢠Reviewer assignment problem [Patanamon et al., SANER 2015]
â delays acceptance : 12 days
â sometimes patches are completely forgotten
5
6. State of the art
⢠ReviewBot [Balachandran, ICSE 2013]
â based on the modification history of source code using
static analysis tools to find experienced reviewers
⢠RevFinder [Patanamon et al., SANER 2015]
â based on the past reviews of files with similar names
and paths to build an expertise model
⢠cHRev [Zanjani et al., TSE 2015]
â based on a reviewer expertise model
â combines a quantification of review comments and their
time
6
7. Problem Statement
⢠Single/independent reviewers
â A change might require many reviewers
⢠Focus only on reviewer expertise
â Expertise change over time (increase or decrease)
⢠No consideration of the socio-technical aspect
â âPeerâ code review
â human process = personal + social aspects
7
Combinatorial search problem while considering
both expertise and social aspects
THAT LINE OF CODE
GIVES ME GAS
9. Reviewer Expertise (RE) model
⢠For each modified file we consider
â Comments frequency
â Comments recency
9
10. Reviewer Collaboration (RC) model
⢠Social network: each reviewer may have a review
collaboration with
â developer
â other reviewers
⢠Graph representation
â sub-graph connectivity
â weights count on the edges
(comments count)
Kirill
Serg
Victor
Murano
Stan
32
26
59
45
41
59
126
18
46
11. Genetic algorithm (GA)
11
Population of
solutions
Evaluation
Selection
Crossover
Mutation
Optimal or
âgoodâ solution
found ?
Recommended
reviewers
Yes
No
START
END
⢠Key elements
â Solution representation
â Change operators
â Fitness function
â Selection
â Creation of the initial
population
15. Three research questions
⢠RQ1. How accurate is RevRec in recommending
peer reviewers for code changes?
⢠RQ2. What are the effects of each of the reviewers
expertise and collaboration on the accuracy of
RevRec?
⢠RQ3. How does GA compared to random search
(RS) and other popular search algorithms, SA and
PSO?
15
22. Recall
RQ3. Performance of Genetic Algorithm
22
Precision
Population-based search algorithms are more
suitable than local search for the reviewers
recommendation problem
23. Summary
⢠We proposed an automated approach for peer
reviewers recommendation
â Genetic algorithm
â Combine reviewers expertise and social aspect
⢠Empirical evaluation on 3 open-source projects using
Gerrit code review
â Promising accuracy results: 55% of precision and 70% of recall
â Social aspect plays an important role in modern code review
⢠Future work
â Consider industrial and open source projects
â Integrate the commit history in the expertise model
â Other aspects to improve accuracy
23