SlideShare a Scribd company logo
Review Participation
in Modern Code Review
— Journal First Paper —
Patanamon (Pick)
Thongtanunam
Shane
McIntosh
Ahmed E.
Hassan
Hajimu Iida
patanamon-t@is.naist.jp @pamonpatanamon.thongtanunam@adelaide.edu.au @pamon
1
Software code review is a well-established 

software quality practice
Poor Software Quality 

(e.g., Defects, Errors)
Poor Design Quality 

(e.g., Spaghetti code)
2
In large and modern software organizations, 

code review is performed through tools
Modern software development practices
Collaboration between
developers is asynchronous
Teams are globally
distributed
Modern Code Review (MCR):
A tool-based code review process
3
The value derived from MCR is dependent
on the participation of team members
Upload a
patch
A code review tool
(e.g. Gerrit)
An author
4
The value derived from MCR is dependent
on the participation of team members
Upload a
patch
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
4
The value derived from MCR is dependent
on the participation of team members
Address the
feedback
Upload a
patch
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
4
The value derived from MCR is dependent
on the participation of team members
Address the
feedback
Upload a
patch
Integrate a clean patch into
software repositories
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
4
A poor review participation has
an impact on software quality
Address the
feedback
Upload a
patch
Integrate a clean patch into
software repositories
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
5
A poor review participation has
an impact on software quality
Address the
feedback
Upload a
patch
Integrate a clean patch into
software repositories
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
Reviews of files that will be defective in the
future are less rigorous than clean files
[Thongtanunam et al., MSR2015]
5
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedback
6
Properties
e.g., Size, Description
length of code changes
History
e.g., Past tendency, #days
since the last modification
Environment
e.g., Review workload
Past Involvement
e.g., Past involvement of an
author and reviewers
Extracting 20 patch characteristics grouped
along 4 dimensions
7
Measure patch
characteristics
STEP 1
Training statistical models to explain
the relationship
History EnvironmentProperties Past Involvement
8
Measure patch
characteristics
STEP 1
Train a
prediction model
STEP 2
x
Assess the risk of receiving
poor review participation
Relax the linear assumption
of the relationship
Non-linear logistic regression model
Probability
x x
x
x
Training statistical models to explain
the relationship
9
Measure patch
characteristics
STEP 1
Train a
prediction model
STEP 2 STEP 3
Assess the fitness
of the model
Discrimination Ability 

(AUC)
Stability 

(AUC Optimism)
Model performance
Training statistical models to explain
the relationship
10
Measure patch
characteristics
STEP 1
Train a
prediction model
STEP 2 STEP 3
Assess the fitness
of the model
Interpret model
STEP 4
Explanatory power

(Wald χ2 statistics)
Plot the relationship with the risk of
receiving poor review collaboration
Observe patch characteristics
Increasing
Relationship
Inverse
Relationship
or
Training statistical models to explain
the relationship
11
Using the large-scale data of 196,712 patches spread
across the Android, Qt, and OpenStack projects
2008/10 - 2014/12
(6 Years)
2011/5 - 2014/12
(4 Years)
2011/7 - 2014/12
(4 Years)
51,721 patches 99,286 patches 136,343 patches
12
No reviewer
participation
No review
discussion
Slow initial feedback
0.72 0.70 0.74
AUC
Optimism
AUC
0.002 0.001 0.001
0.70 0.72 0.78
AUC
Optimism
AUC
0.002 0.001 0.001
0.66 0.61 0.61
AUC
Optimism
AUC
0.004 0.002 0.001
Our statistical models are accurate and
stable enough for interpretation
13
No reviewer
participation
No review
discussion
Slow initial feedback
History and properties metrics contribute a
large amount of explanatory power
History EnvironmentProperties Past Involvement
Description
Length
Past
tendency
Description
Length
Past
tendency
Patch
purpose
Past
tendency
1 3
2
2
1
2 1
Past involvement
of an author &
reviewers
3
#Prior patches
of an author
— —
—
—
14
No reviewer
participation
No review
discussion
Slow initial feedback
History and properties metrics contribute a
large amount of explanatory power
History EnvironmentProperties Past Involvement
Description
Length
Past
tendency
Description
Length
Past
tendency
Patch
purpose
Past
tendency
1 3
2
2
1
2 1
Past involvement
of an author &
reviewers
3
#Prior patches
of an author
— —
—
—
15
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
16
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
High chance that a new
patch will receive poor
review participation
Low chance that a new
patch will receive poor
review participation
17
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
The relationship between
the observed characteristic
and the odds
18
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
Less data support the
relationship in the broad
confidence interval
Confident
interval
19
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
20
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
20
Oddsofreceivingpoor
reviewparticipationPast tendency and description length share an
inverse relationship with poor review participation
Oddsofreceivingpoor
reviewparticipation
History Properties
#Reviewers of prior patches
(Past tendency)
Description Length
20
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedback
21
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedbackPatches whose prior patches received poor
review participation, and that are not
descriptive are not likely to receive reviewers
nor discussion
22
No reviewer
participation
No review
discussion
Slow initial feedback
History and properties metrics contribute a
large amount of explanatory power
History EnvironmentProperties Past Involvement
Description
Length
Past
tendency
Description
Length
Past
tendency
Patch
purpose
Past
tendency
1 3
2
2
1
2 1
Past involvement
of an author &
reviewers
3
#Prior patches
of an author
— —
—
—R
23
The purpose of introducing new features increase
the likelihood of receiving slow initial feedback
Oddsofreceivingpoor
reviewparticipation
Feature
introduction
B
ug-fix
Oddsofreceivingpoor
reviewparticipation
Feature
introduction
D
ocum
entation
16-29% 12-40%
24
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedbackPatches whose prior patches received poor
review participation, and that are not
descriptive are not likely to receive reviewers
nor discussion
25
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedback
Patches whose prior patches received poor
review participation, and that are not
descriptive are not likely to receive reviewers
nor discussion
Patches are likely to
receive slow initial
feedback if the purpose
is to introduces new
features
26
Wrap-up
27
A poor review participation has
an impact on software quality
Address the
feedback
Select reviewers
Upload a
patch
Integrate a clean patch into
software repositories
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
Reviews of files that will be defective in the
future are less rigorous than clean files
[Thongtanunam et al., MSR2015]
28
Properties
e.g., Size, Description
length of code changes
History
e.g., Past tendency, #days
since the last modification
Environment
e.g., Review workload
Past Involvement
e.g., Past involvement of an
author and reviewers
Extracting 20 patch characteristics grouped
along 4 dimensions
29
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedback
Patches whose prior patches received poor
review participation, and that are not
descriptive are not likely to receive reviewers
nor discussion
Patches are likely to
receive slow initial
feedback if the purpose
is to introduces new
features
30
Patanamon (Pick) Thongtanunam
Patches with such characteristics should be
given more attention to increase review
participation, which will likely lead to a more
responsive review process
patanamon.thongtanunam@adelaide.edu.au
http://patanamon.com
Review Participation in Modern Code Review
P. Thongtanunam, S. McIntosh, A. E. Hassan, and H. Iida, “Review Participation in Modern Code
Review,” Empirical Software Engineering (EMSE)., vol. 22, no. 2, pp. 768–817, 2017.
31
A poor review participation has
an impact on software quality
Address the
feedback
Select reviewers
Upload a
patch
Integrate a clean patch into
software repositories
A code review tool
(e.g. Gerrit)
Examine source code &
provide feedback
An author
Reviews of files that will be defective in the
future are less rigorous than clean files
[Thongtanunam et al., MSR2015]
Properties
e.g., Size, Description
length of code changes
History
e.g., Past tendency, #days
since the last modification
Environment
e.g., Review workload
Past Involvement
e.g., Past involvement of an
author and reviewers
Extracting 20 patch characteristics grouped
along 4 dimensions
Investigating the characteristics of patches
that suffer from poor review participation
No reviewer
participation
No review
discussion
Slow initial
feedback
Patches whose prior patches received poor
review participation, and that are not
descriptive are not likely to receive reviewers
nor discussion
Patches are likely to
receive slow initial
feedback if the purpose
is to introduces new
features
Patanamon (Pick) Thongtanunam
Patches with such characteristics should be
given more attention to increase review
participation, which will likely lead to a more
responsive review process
patanamon.thongtanunam@adelaide.edu.au
http://patanamon.com
Review Participation in Modern Code Review
P. Thongtanunam, S. McIntosh, A. E. Hassan, and H. Iida, “Review Participation in Modern Code
Review,” Empirical Software Engineering (EMSE)., vol. 22, no. 2, pp. 768–817, 2017.
32

More Related Content

What's hot

Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Debdoot Mukherjee
 
An Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source ProjectsAn Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source Projects
Pavneet Singh Kochhar
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
Ptidej Team
 
Python - code quality and production monitoring
Python - code quality and production monitoringPython - code quality and production monitoring
Python - code quality and production monitoring
David Melamed
 
Euro python 2015 writing quality code
Euro python 2015   writing quality codeEuro python 2015   writing quality code
Euro python 2015 writing quality code
radek_j
 
When Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review TestsWhen Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review Tests
Delft University of Technology
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code Quality
Dmytro Patserkovskyi
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
Samsung Open Source Group
 
Mining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software ArtifactsMining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software Artifacts
Preetha Chatterjee
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub Projects
Pavneet Singh Kochhar
 
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
Yida Tao
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
Roopesh Jhurani
 
Python code profiling - Jackson Isaac
Python code profiling - Jackson IsaacPython code profiling - Jackson Isaac
Python code profiling - Jackson Isaac
Jackson Isaac
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
University of Hawai‘i at Mānoa
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Understanding, measuring and improving code quality in JavaScript
Understanding, measuring and improving code quality in JavaScriptUnderstanding, measuring and improving code quality in JavaScript
Understanding, measuring and improving code quality in JavaScript
Mark Daggett
 
IDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal ToolIDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal Tool
University of Hawai‘i at Mānoa
 
[India Merge World Tour] Coverity
[India Merge World Tour] Coverity[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
Perforce
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Raffi Khatchadourian
 

What's hot (20)

Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
 
An Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source ProjectsAn Empirical Study of Adoption of Software Testing in Open Source Projects
An Empirical Study of Adoption of Software Testing in Open Source Projects
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 
Cser13.ppt
Cser13.pptCser13.ppt
Cser13.ppt
 
Python - code quality and production monitoring
Python - code quality and production monitoringPython - code quality and production monitoring
Python - code quality and production monitoring
 
Euro python 2015 writing quality code
Euro python 2015   writing quality codeEuro python 2015   writing quality code
Euro python 2015 writing quality code
 
When Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review TestsWhen Testing Meets Code Review: Why and How Developers Review Tests
When Testing Meets Code Review: Why and How Developers Review Tests
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code Quality
 
Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
 
Mining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software ArtifactsMining Code Examples with Descriptive Text from Software Artifacts
Mining Code Examples with Descriptive Text from Software Artifacts
 
Revisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub ProjectsRevisiting Assert Use in GitHub Projects
Revisiting Assert Use in GitHub Projects
 
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
 
Early Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software DevelopmentEarly Detection of Collaboration Conflicts & Risks in Software Development
Early Detection of Collaboration Conflicts & Risks in Software Development
 
Python code profiling - Jackson Isaac
Python code profiling - Jackson IsaacPython code profiling - Jackson Isaac
Python code profiling - Jackson Isaac
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...On the Distribution of Test Smells in Open Source Android Applications: An Ex...
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Understanding, measuring and improving code quality in JavaScript
Understanding, measuring and improving code quality in JavaScriptUnderstanding, measuring and improving code quality in JavaScript
Understanding, measuring and improving code quality in JavaScript
 
IDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal ToolIDEAL: An Open-Source Identifier Name Appraisal Tool
IDEAL: An Open-Source Identifier Name Appraisal Tool
 
[India Merge World Tour] Coverity
[India Merge World Tour] Coverity[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
 
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...Proactive Empirical Assessment of New Language Feature Adoption via Automated...
Proactive Empirical Assessment of New Language Feature Adoption via Automated...
 

Similar to Review Participation in Modern Code Review: An Empirical Study of the Android, Qt, and OpenStack Projects

ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code ReviewICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
Ali Ouni
 
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessment
Pooja Rani
 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
The Linux Foundation
 
poster_3.0
poster_3.0poster_3.0
poster_3.0
Stefano Sansone
 
PhD Proposal talk
PhD Proposal talkPhD Proposal talk
PhD Proposal talk
Ray Buse
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code Audit
Xebia IT Architects
 
Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
Delft University of Technology
 
From requirements quality to requirements authoring
From requirements quality to requirements authoringFrom requirements quality to requirements authoring
From requirements quality to requirements authoring
The REUSE Company
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3
REHAN IJAZ
 
CodeInsight-SCAM2015
CodeInsight-SCAM2015CodeInsight-SCAM2015
CodeInsight-SCAM2015
Masud Rahman
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
Masud Rahman
 
Effects of Ownership on Software Quality
 Effects of Ownership on Software Quality Effects of Ownership on Software Quality
Effects of Ownership on Software Quality
Md. Shafiuzzaman Hira
 
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
ESEM 2014
 
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...
JeffCarver32
 
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Raffi Khatchadourian
 
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Debdoot Mukherjee
 
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
Margaret-Anne Storey
 
Action-based Recommendation in Pull-request Development
Action-based Recommendation in Pull-request DevelopmentAction-based Recommendation in Pull-request Development
Action-based Recommendation in Pull-request Development
Sebastiano Panichella
 
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
 
Code review prediction
Code review predictionCode review prediction
Code review prediction
Kishor Datta Gupta
 

Similar to Review Participation in Modern Code Review: An Empirical Study of the Android, Qt, and OpenStack Projects (20)

ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code ReviewICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
ICSME 2016: Search-Based Peer Reviewers Recommendation in Modern Code Review
 
Speculative analysis for comment quality assessment
Speculative analysis for comment quality assessmentSpeculative analysis for comment quality assessment
Speculative analysis for comment quality assessment
 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
 
poster_3.0
poster_3.0poster_3.0
poster_3.0
 
PhD Proposal talk
PhD Proposal talkPhD Proposal talk
PhD Proposal talk
 
Software Quality Architecture And Code Audit
Software Quality Architecture And Code AuditSoftware Quality Architecture And Code Audit
Software Quality Architecture And Code Audit
 
Practices and Tools for Better Software Testing
Practices and Tools for  Better Software TestingPractices and Tools for  Better Software Testing
Practices and Tools for Better Software Testing
 
From requirements quality to requirements authoring
From requirements quality to requirements authoringFrom requirements quality to requirements authoring
From requirements quality to requirements authoring
 
Programming Fundamentals lecture 3
Programming Fundamentals lecture 3Programming Fundamentals lecture 3
Programming Fundamentals lecture 3
 
CodeInsight-SCAM2015
CodeInsight-SCAM2015CodeInsight-SCAM2015
CodeInsight-SCAM2015
 
Code-Review-COW56-Meeting
Code-Review-COW56-MeetingCode-Review-COW56-Meeting
Code-Review-COW56-Meeting
 
Effects of Ownership on Software Quality
 Effects of Ownership on Software Quality Effects of Ownership on Software Quality
Effects of Ownership on Software Quality
 
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
52 - The Impact of Test Ownership and Team Structure on the Reliability and E...
 
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...
 
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
Actor Concurrency Bugs: A Comprehensive Study on Symptoms, Root Causes, API U...
 
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
 
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
Publish or Perish: Questioning the Impact of Our Research on the Software Dev...
 
Action-based Recommendation in Pull-request Development
Action-based Recommendation in Pull-request DevelopmentAction-based Recommendation in Pull-request Development
Action-based Recommendation in Pull-request Development
 
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
 
Code review prediction
Code review predictionCode review prediction
Code review prediction
 

Recently uploaded

DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 

Recently uploaded (20)

DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 

Review Participation in Modern Code Review: An Empirical Study of the Android, Qt, and OpenStack Projects

  • 1. Review Participation in Modern Code Review — Journal First Paper — Patanamon (Pick) Thongtanunam Shane McIntosh Ahmed E. Hassan Hajimu Iida patanamon-t@is.naist.jp @pamonpatanamon.thongtanunam@adelaide.edu.au @pamon 1
  • 2. Software code review is a well-established 
 software quality practice Poor Software Quality (e.g., Defects, Errors) Poor Design Quality (e.g., Spaghetti code) 2
  • 3. In large and modern software organizations, 
 code review is performed through tools Modern software development practices Collaboration between developers is asynchronous Teams are globally distributed Modern Code Review (MCR): A tool-based code review process 3
  • 4. The value derived from MCR is dependent on the participation of team members Upload a patch A code review tool (e.g. Gerrit) An author 4
  • 5. The value derived from MCR is dependent on the participation of team members Upload a patch A code review tool (e.g. Gerrit) Examine source code & provide feedback An author 4
  • 6. The value derived from MCR is dependent on the participation of team members Address the feedback Upload a patch A code review tool (e.g. Gerrit) Examine source code & provide feedback An author 4
  • 7. The value derived from MCR is dependent on the participation of team members Address the feedback Upload a patch Integrate a clean patch into software repositories A code review tool (e.g. Gerrit) Examine source code & provide feedback An author 4
  • 8. A poor review participation has an impact on software quality Address the feedback Upload a patch Integrate a clean patch into software repositories A code review tool (e.g. Gerrit) Examine source code & provide feedback An author 5
  • 9. A poor review participation has an impact on software quality Address the feedback Upload a patch Integrate a clean patch into software repositories A code review tool (e.g. Gerrit) Examine source code & provide feedback An author Reviews of files that will be defective in the future are less rigorous than clean files [Thongtanunam et al., MSR2015] 5
  • 10. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedback 6
  • 11. Properties e.g., Size, Description length of code changes History e.g., Past tendency, #days since the last modification Environment e.g., Review workload Past Involvement e.g., Past involvement of an author and reviewers Extracting 20 patch characteristics grouped along 4 dimensions 7
  • 12. Measure patch characteristics STEP 1 Training statistical models to explain the relationship History EnvironmentProperties Past Involvement 8
  • 13. Measure patch characteristics STEP 1 Train a prediction model STEP 2 x Assess the risk of receiving poor review participation Relax the linear assumption of the relationship Non-linear logistic regression model Probability x x x x Training statistical models to explain the relationship 9
  • 14. Measure patch characteristics STEP 1 Train a prediction model STEP 2 STEP 3 Assess the fitness of the model Discrimination Ability (AUC) Stability (AUC Optimism) Model performance Training statistical models to explain the relationship 10
  • 15. Measure patch characteristics STEP 1 Train a prediction model STEP 2 STEP 3 Assess the fitness of the model Interpret model STEP 4 Explanatory power (Wald χ2 statistics) Plot the relationship with the risk of receiving poor review collaboration Observe patch characteristics Increasing Relationship Inverse Relationship or Training statistical models to explain the relationship 11
  • 16. Using the large-scale data of 196,712 patches spread across the Android, Qt, and OpenStack projects 2008/10 - 2014/12 (6 Years) 2011/5 - 2014/12 (4 Years) 2011/7 - 2014/12 (4 Years) 51,721 patches 99,286 patches 136,343 patches 12
  • 17. No reviewer participation No review discussion Slow initial feedback 0.72 0.70 0.74 AUC Optimism AUC 0.002 0.001 0.001 0.70 0.72 0.78 AUC Optimism AUC 0.002 0.001 0.001 0.66 0.61 0.61 AUC Optimism AUC 0.004 0.002 0.001 Our statistical models are accurate and stable enough for interpretation 13
  • 18. No reviewer participation No review discussion Slow initial feedback History and properties metrics contribute a large amount of explanatory power History EnvironmentProperties Past Involvement Description Length Past tendency Description Length Past tendency Patch purpose Past tendency 1 3 2 2 1 2 1 Past involvement of an author & reviewers 3 #Prior patches of an author — — — — 14
  • 19. No reviewer participation No review discussion Slow initial feedback History and properties metrics contribute a large amount of explanatory power History EnvironmentProperties Past Involvement Description Length Past tendency Description Length Past tendency Patch purpose Past tendency 1 3 2 2 1 2 1 Past involvement of an author & reviewers 3 #Prior patches of an author — — — — 15
  • 20. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length 16
  • 21. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length High chance that a new patch will receive poor review participation Low chance that a new patch will receive poor review participation 17
  • 22. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length The relationship between the observed characteristic and the odds 18
  • 23. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length Less data support the relationship in the broad confidence interval Confident interval 19
  • 24. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length 20
  • 25. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length 20
  • 26. Oddsofreceivingpoor reviewparticipationPast tendency and description length share an inverse relationship with poor review participation Oddsofreceivingpoor reviewparticipation History Properties #Reviewers of prior patches (Past tendency) Description Length 20
  • 27. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedback 21
  • 28. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedbackPatches whose prior patches received poor review participation, and that are not descriptive are not likely to receive reviewers nor discussion 22
  • 29. No reviewer participation No review discussion Slow initial feedback History and properties metrics contribute a large amount of explanatory power History EnvironmentProperties Past Involvement Description Length Past tendency Description Length Past tendency Patch purpose Past tendency 1 3 2 2 1 2 1 Past involvement of an author & reviewers 3 #Prior patches of an author — — — —R 23
  • 30. The purpose of introducing new features increase the likelihood of receiving slow initial feedback Oddsofreceivingpoor reviewparticipation Feature introduction B ug-fix Oddsofreceivingpoor reviewparticipation Feature introduction D ocum entation 16-29% 12-40% 24
  • 31. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedbackPatches whose prior patches received poor review participation, and that are not descriptive are not likely to receive reviewers nor discussion 25
  • 32. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedback Patches whose prior patches received poor review participation, and that are not descriptive are not likely to receive reviewers nor discussion Patches are likely to receive slow initial feedback if the purpose is to introduces new features 26
  • 34. A poor review participation has an impact on software quality Address the feedback Select reviewers Upload a patch Integrate a clean patch into software repositories A code review tool (e.g. Gerrit) Examine source code & provide feedback An author Reviews of files that will be defective in the future are less rigorous than clean files [Thongtanunam et al., MSR2015] 28
  • 35. Properties e.g., Size, Description length of code changes History e.g., Past tendency, #days since the last modification Environment e.g., Review workload Past Involvement e.g., Past involvement of an author and reviewers Extracting 20 patch characteristics grouped along 4 dimensions 29
  • 36. Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedback Patches whose prior patches received poor review participation, and that are not descriptive are not likely to receive reviewers nor discussion Patches are likely to receive slow initial feedback if the purpose is to introduces new features 30
  • 37. Patanamon (Pick) Thongtanunam Patches with such characteristics should be given more attention to increase review participation, which will likely lead to a more responsive review process patanamon.thongtanunam@adelaide.edu.au http://patanamon.com Review Participation in Modern Code Review P. Thongtanunam, S. McIntosh, A. E. Hassan, and H. Iida, “Review Participation in Modern Code Review,” Empirical Software Engineering (EMSE)., vol. 22, no. 2, pp. 768–817, 2017. 31
  • 38. A poor review participation has an impact on software quality Address the feedback Select reviewers Upload a patch Integrate a clean patch into software repositories A code review tool (e.g. Gerrit) Examine source code & provide feedback An author Reviews of files that will be defective in the future are less rigorous than clean files [Thongtanunam et al., MSR2015] Properties e.g., Size, Description length of code changes History e.g., Past tendency, #days since the last modification Environment e.g., Review workload Past Involvement e.g., Past involvement of an author and reviewers Extracting 20 patch characteristics grouped along 4 dimensions Investigating the characteristics of patches that suffer from poor review participation No reviewer participation No review discussion Slow initial feedback Patches whose prior patches received poor review participation, and that are not descriptive are not likely to receive reviewers nor discussion Patches are likely to receive slow initial feedback if the purpose is to introduces new features Patanamon (Pick) Thongtanunam Patches with such characteristics should be given more attention to increase review participation, which will likely lead to a more responsive review process patanamon.thongtanunam@adelaide.edu.au http://patanamon.com Review Participation in Modern Code Review P. Thongtanunam, S. McIntosh, A. E. Hassan, and H. Iida, “Review Participation in Modern Code Review,” Empirical Software Engineering (EMSE)., vol. 22, no. 2, pp. 768–817, 2017. 32