SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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
Code review is a key part of the
software development process
Programmer
Code reviewer
What does
that code do?
3
The “modern”, lightweight, tool-supported
code review
developer
Code change
gerrit
code review
reworked code
Accepted code
Code repository
reviewers
changed files
Code change description
reviewers
developer
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
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
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
Approach overview: RevRec
8
Reviews history
Search-based Reviewers
Recommendation
(Genetic Algorithm)
Recommended
Reviewers
Review
Request
developer
Reviewer
expertise
Reviewer
collaboration
Reviewer Expertise (RE) model
• For each modified file we consider
− Comments frequency
− Comments recency
9
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
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
GA adaptation
12
0 1 0 1 1 0 1 0 0 1
Dmitry Kirill Andrey Murano Serg Giulio Victor Henar Alexey Jenkins
0 0 1 0 0 1 0
0 1 0 0 1 0 0
Parent 1
Parent 2
Crossover
k=3
Child 1
Child 2
Point cut
0 0 1 0 0 1 0Parent
0 0 1
0 0 1 00 1 0
0 1 0 0
• Solution representation
• Crossover operator
• Mutation operator
0 0 1 0 1 1 0
Mutation
m=6
Fitness function
13
Maximize
Reviewer Expertise
RE
Reviewer Collaboration
RC
Kirill
Serg
Victor
Murano
Stan
32
26
59
45
41
59
126
18
46
Empirical Evaluation
14
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
Studied systems
System Period studied #Reviews #Reviewers #Files
Android 2008-10 ~ 2010-01 5,126 94 26,840
OpenStack 2011-04 ~ 2012-05 6,586 82 16,953
Qt 2011-05 ~ 2012-05 23,810 202 78,401
16
Dataset: http://kin-y.github.io/miningReviewRepo/
Analysis method
• Accuracy
− Precision@k
− Recall@k
• Ranking performance
− Mean Reciprocal Rank (MRR)
17
Top-5 recommended
reviewers
Recommended
reviewer
#1
#2
#3
#4
#5
RQ1. Accuracy results
18
RQ1. Accuracy results
19
RevRec correctly recommends peer
code reviewers with an average of
55% of precision and 70% of recall
RQ2. Expertise vs. Collaboration
20
The social aspect plays an important role
in modern code review
Recall
RQ3. Performance of Genetic Algorithm
21
Precision
Recall
RQ3. Performance of Genetic Algorithm
22
Precision
Population-based search algorithms are more
suitable than local search for the reviewers
recommendation problem
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
24
25
Thank you for your attention!
Questions? Discussions? Suggestions?

Más contenido relacionado

La actualidad más candente

Indicadores de Desempenho para a TI - Módulo 1 - Porque medir
Indicadores de Desempenho para a TI - Módulo 1 - Porque medirIndicadores de Desempenho para a TI - Módulo 1 - Porque medir
Indicadores de Desempenho para a TI - Módulo 1 - Porque medir
CompanyWeb
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
Roberto Grande
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitos
elliando dias
 

La actualidad más candente (20)

UX Research
UX ResearchUX Research
UX Research
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Mercado de Trabalho em TI
Mercado de Trabalho em TIMercado de Trabalho em TI
Mercado de Trabalho em TI
 
Carreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certaCarreira em TI - Começando na direção certa
Carreira em TI - Começando na direção certa
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Engenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia CognitivaEngenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia Cognitiva
 
03 mer2
03 mer203 mer2
03 mer2
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Usabilidad y diseño centrado en la experiencia del usuario
Usabilidad y diseño centrado en la experiencia del usuarioUsabilidad y diseño centrado en la experiencia del usuario
Usabilidad y diseño centrado en la experiencia del usuario
 
UXPA 2021: How do you know your users feel satisfied
UXPA 2021: How do you know your users feel satisfied   UXPA 2021: How do you know your users feel satisfied
UXPA 2021: How do you know your users feel satisfied
 
Modelo de Regressão Linear aplicado à previsão de desempenho de estudantes em...
Modelo de Regressão Linear aplicado à previsão de desempenho de estudantes em...Modelo de Regressão Linear aplicado à previsão de desempenho de estudantes em...
Modelo de Regressão Linear aplicado à previsão de desempenho de estudantes em...
 
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
Sistemas Multimídia - Aula 04 - O Que é Multimídia (Ambientes Multimídia e Pr...
 
Indicadores de Desempenho para a TI - Módulo 1 - Porque medir
Indicadores de Desempenho para a TI - Módulo 1 - Porque medirIndicadores de Desempenho para a TI - Módulo 1 - Porque medir
Indicadores de Desempenho para a TI - Módulo 1 - Porque medir
 
Banco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - ApresentaçãoBanco de Dados II Aula 01 - Apresentação
Banco de Dados II Aula 01 - Apresentação
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de informação para Interface Digital
Arquitetura de informação para Interface DigitalArquitetura de informação para Interface Digital
Arquitetura de informação para Interface Digital
 
Normalização - Banco de Dados
Normalização - Banco de DadosNormalização - Banco de Dados
Normalização - Banco de Dados
 
Apresentação Aula 01
Apresentação  Aula 01Apresentação  Aula 01
Apresentação Aula 01
 
07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico07 Modelagem de banco de dados: Modelo Físico
07 Modelagem de banco de dados: Modelo Físico
 
Princípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de RequisitosPrincípios Fundamentais da Análise de Requisitos
Princípios Fundamentais da Análise de Requisitos
 

Destacado

A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
SAIL_QU
 
The Use of Development History in Software Refactoring Using a Multi-Objectiv...
The Use of Development History in Software Refactoring Using a Multi-Objectiv...The Use of Development History in Software Refactoring Using a Multi-Objectiv...
The Use of Development History in Software Refactoring Using a Multi-Objectiv...
Ali Ouni
 
The Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software QualityThe Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software Quality
Shane McIntosh
 

Destacado (6)

A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony MobileA Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
A Study of the Quality-Impacting Practices of Modern Code Review at Sony Mobile
 
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
Mining the Modern Code Review Repositories: A Dataset of People, Process and ...
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
The Use of Development History in Software Refactoring Using a Multi-Objectiv...
The Use of Development History in Software Refactoring Using a Multi-Objectiv...The Use of Development History in Software Refactoring Using a Multi-Objectiv...
The Use of Development History in Software Refactoring Using a Multi-Objectiv...
 
The Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software QualityThe Impact of Code Review Coverage and Participation on Software Quality
The Impact of Code Review Coverage and Participation on Software Quality
 
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
Modern Code Reviews in Open Source Projects: Which Problems Do They Fix?
 

Similar a ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review

Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
The University of Adelaide
 
PhD Proposal talk
PhD Proposal talkPhD Proposal talk
PhD Proposal talk
Ray Buse
 
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docxName ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
roushhsiu
 

Similar a ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review (20)

Who Should Review My Code?
Who Should Review My Code?  Who Should Review My Code?
Who Should Review My Code?
 
Multi-method Evaluation in Scientific Paper Recommender Systems
Multi-method Evaluation in Scientific Paper Recommender SystemsMulti-method Evaluation in Scientific Paper Recommender Systems
Multi-method Evaluation in Scientific Paper Recommender Systems
 
Process Aspects and Social Dynamics of Contemporary Code Review: Insights fro...
Process Aspects and Social Dynamics of Contemporary Code Review: Insights fro...Process Aspects and Social Dynamics of Contemporary Code Review: Insights fro...
Process Aspects and Social Dynamics of Contemporary Code Review: Insights fro...
 
Using HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review AnalyticsUsing HPC Resources to Exploit Big Data for Code Review Analytics
Using HPC Resources to Exploit Big Data for Code Review Analytics
 
CROSSMINER Project at OW2con'19
CROSSMINER Project at OW2con'19CROSSMINER Project at OW2con'19
CROSSMINER Project at OW2con'19
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
 
Partitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code reviewPartitioning composite code changes to facilitate code review
Partitioning composite code changes to facilitate code review
 
Ph.D. Thesis Defense: Studying Reviewer Selection and Involvement in Modern ...
Ph.D. Thesis Defense:  Studying Reviewer Selection and Involvement in Modern ...Ph.D. Thesis Defense:  Studying Reviewer Selection and Involvement in Modern ...
Ph.D. Thesis Defense: Studying Reviewer Selection and Involvement in Modern ...
 
PhD Proposal talk
PhD Proposal talkPhD Proposal talk
PhD Proposal talk
 
A Step Towards Reproducibility in R
A Step Towards Reproducibility in RA Step Towards Reproducibility in R
A Step Towards Reproducibility in R
 
Software Project Management Presentation Final
Software Project Management Presentation FinalSoftware Project Management Presentation Final
Software Project Management Presentation Final
 
A Review Of Code Reviewer Recommendation Studies Challenges And Future Direc...
A Review Of Code Reviewer Recommendation Studies  Challenges And Future Direc...A Review Of Code Reviewer Recommendation Studies  Challenges And Future Direc...
A Review Of Code Reviewer Recommendation Studies Challenges And Future Direc...
 
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
How Do I Refactor This? An Empirical Study on Refactoring Trends and Topics i...
 
Benchmarking Software Estimation Methods
Benchmarking Software Estimation MethodsBenchmarking Software Estimation Methods
Benchmarking Software Estimation Methods
 
Alleman coonce-agile-2017 may2
Alleman coonce-agile-2017 may2Alleman coonce-agile-2017 may2
Alleman coonce-agile-2017 may2
 
Mining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowMining Testing Questions on Stack Overflow
Mining Testing Questions on Stack Overflow
 
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docxName ID Number Section 1 SummaryAt least 250 words as counted.docx
Name ID Number Section 1 SummaryAt least 250 words as counted.docx
 
Solo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 UpcSolo Requisitos 2008 - 07 Upc
Solo Requisitos 2008 - 07 Upc
 
Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)Testing Throughout the Software Life Cycle (2013)
Testing Throughout the Software Life Cycle (2013)
 
A task-based scientific paper recommender system for literature review and ma...
A task-based scientific paper recommender system for literature review and ma...A task-based scientific paper recommender system for literature review and ma...
A task-based scientific paper recommender system for literature review and ma...
 

Más de Ali Ouni (6)

Third-Party Software Library Reuse : From Adoption to Migration
Third-Party Software Library Reuse : From Adoption to MigrationThird-Party Software Library Reuse : From Adoption to Migration
Third-Party Software Library Reuse : From Adoption to Migration
 
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
ICGSE2020: On the Detection of Community Smells Using Genetic Programming-bas...
 
Web Service Antipatterns Detection Using Genetic Programming
Web Service Antipatterns Detection Using Genetic ProgrammingWeb Service Antipatterns Detection Using Genetic Programming
Web Service Antipatterns Detection Using Genetic Programming
 
A Multi-Objective Refactoring Approach to Introduce Design Patterns and Fix A...
A Multi-Objective Refactoring Approach to Introduce Design Patterns and Fix A...A Multi-Objective Refactoring Approach to Introduce Design Patterns and Fix A...
A Multi-Objective Refactoring Approach to Introduce Design Patterns and Fix A...
 
A Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software RefactoringA Mono- and Multi-objective Approach for Recommending Software Refactoring
A Mono- and Multi-objective Approach for Recommending Software Refactoring
 
Recommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software EnginneringRecommending Software Refactoring Using Search-based Software Enginnering
Recommending Software Refactoring Using Search-based Software Enginnering
 

Último

Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Marc Lester
 

Último (20)

Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Transformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with LinksTransformer Neural Network Use Cases with Links
Transformer Neural Network Use Cases with Links
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Jax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined DeckJax, FL Admin Community Group 05.14.2024 Combined Deck
Jax, FL Admin Community Group 05.14.2024 Combined Deck
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
Optimizing Operations by Aligning Resources with Strategic Objectives Using O...
 
From Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST APIFrom Theory to Practice: Utilizing SpiraPlan's REST API
From Theory to Practice: Utilizing SpiraPlan's REST API
 
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
Abortion Clinic In Polokwane ](+27832195400*)[ 🏥 Safe Abortion Pills in Polok...
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 

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?
  • 3. 3 The “modern”, lightweight, tool-supported code review developer Code change gerrit code review reworked code Accepted code Code repository reviewers
  • 4. changed files Code change description reviewers developer
  • 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
  • 8. Approach overview: RevRec 8 Reviews history Search-based Reviewers Recommendation (Genetic Algorithm) Recommended Reviewers Review Request developer Reviewer expertise Reviewer collaboration
  • 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
  • 12. GA adaptation 12 0 1 0 1 1 0 1 0 0 1 Dmitry Kirill Andrey Murano Serg Giulio Victor Henar Alexey Jenkins 0 0 1 0 0 1 0 0 1 0 0 1 0 0 Parent 1 Parent 2 Crossover k=3 Child 1 Child 2 Point cut 0 0 1 0 0 1 0Parent 0 0 1 0 0 1 00 1 0 0 1 0 0 • Solution representation • Crossover operator • Mutation operator 0 0 1 0 1 1 0 Mutation m=6
  • 13. Fitness function 13 Maximize Reviewer Expertise RE Reviewer Collaboration RC Kirill Serg Victor Murano Stan 32 26 59 45 41 59 126 18 46
  • 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
  • 16. Studied systems System Period studied #Reviews #Reviewers #Files Android 2008-10 ~ 2010-01 5,126 94 26,840 OpenStack 2011-04 ~ 2012-05 6,586 82 16,953 Qt 2011-05 ~ 2012-05 23,810 202 78,401 16 Dataset: http://kin-y.github.io/miningReviewRepo/
  • 17. Analysis method • Accuracy − Precision@k − Recall@k • Ranking performance − Mean Reciprocal Rank (MRR) 17 Top-5 recommended reviewers Recommended reviewer #1 #2 #3 #4 #5
  • 19. RQ1. Accuracy results 19 RevRec correctly recommends peer code reviewers with an average of 55% of precision and 70% of recall
  • 20. RQ2. Expertise vs. Collaboration 20 The social aspect plays an important role in modern code review
  • 21. Recall RQ3. Performance of Genetic Algorithm 21 Precision
  • 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
  • 24. 24
  • 25. 25 Thank you for your attention! Questions? Discussions? Suggestions?