A Web-based Visualization Tool for Analyzing Modern Code Review Dataset

Patanamon Thongtanunam
Xin Yang, Norihiro Yoshida, Raula Gaikovina Kula,
Ana Erika Camargo Cruz, Kenji Fujiwara, Hajimu Iida

1Modern Code Review is a tool-based, and occurs
regularly in practice nowadays at companies and OSS
projects [Bacchelli et. al.]GerritCode Review

Rietveld2Modern Code Review

Developer3Modern Code Review

Code change

GerritCode Review

Developer3Modern Code Review

Code change

GerritCode Review

Developer3Modern Code Review

Code change

GerritCode Review

Developer

Reviewers3Modern Code Review

Code change

GerritCode Review

Developer
Determine
Quality
FindDefects

Comment

Reviewers3Modern Code Review

Code change

GerritCode Review

Developer
Determine
Quality

Patch Sets (Commits)

FindDefects

Comment

Reviewers3Modern Code Review

Code change

GerritCode Review

Developer
Determine
Quality

Patch Sets (Commits)

Find
Defects

Comment

Modified Files

Reviewers3Modern Code Review

Code change

GerritCode Review

Developer

Review Scores

Determine
Quality

Patch Sets (Commits)

Find
Defects

Comment

Modified Files

Reviewers3Modern Code Review

Code change

GerritCode Review

Developer

Review Scores

Determine
Quality

Patch Sets (Commits)FindDefects

Comment

Modified Files
CommentsReviewers
3Modern Code Review

4Modern Code Review&NewRichceruos4Modern Code Review&NewRichceruosCodeQuality

4Modern Code Review&NewRichceruosCode
Qualityr

Popula4Modern Code Review&
NewRichceruos?

Code
Qualityr

PopulaReliable?

4Modern Code Review&NewRichceruos?

CodeQualityr

PopulaReliable?

“Publicly available data from support tools is arich source on mining, various potential perils
should also be taken into consideration.”[Kalliamvakou et. al.]4Modern Code Review&NewRich
ceruos?

CodeQualityr

PopulaReliable?

adnfi“Publicly available data from support
tools is aylisae
rich source on mining,
variouspotential perils
ew into consideration.”n takenshould C
also
abecarachcitsiter?
tes
atade
hin t

[Kalliamvakou et. al.]4

is for facilitating researchers5

is for facilitating researchers
Extracting a dataset5

is for facilitating researchersExtracting a dataset

Showing basic
statistical summary5

is for facilitating researchers
Extracting a dataset

Observinginteresting patterns& Identify problems

Showing basic
statistical summary

5

provides three visualizations

6

provides three visualizations

Review Statistic

6

provides three visualizations

Review Statistic

Activity Statistic

6

provides three visualizations

Review Statistic

Activity Statistic

Contributor Activities

6

Demo

http://reda.naist.jp

Android Open Source Software Project (AOSP) dataset* Data was captured from October 2008 to January 20127

Example Findings

Android Open Source Software Project (AOSP) dataset
8

Data Observation using

Unusual Peaks in Graphs#1

Reviews without codechanges

Review Statistic

Review Statistic
Activity Statistic
9

Data Observation using

Unusual Peaks in Graphs#1

Reviews without codechanges

Review Statistic

Review Statistic
Activity Statistic
9

Data Observation by

Developers
UnusualPeakmistakesin Graphs#1

Reviews without codechanges

Submit wrong
code version
Accidentallysubmit changes
Review Statistic

Review Statistic
GerritCode Review

Activity Statistic

10

Data Observation by

Developers
UnusualPeakmistakesin Graphs#1

Reviews without codechanges

Submit wrong
code version
Accidentallysubmit changes
Review Statistic

Review Statistic
GerritCode Review

Activity Statistic

11

Data Observation byDevelopers
UnusualPeakmistakesin Graphs
Submit wrong
code version
Accidentallysubmit changes
Review Statistic#1
Reviews related
VCS
Reviews
withouttocode
transactions
changesE.g., Merging branchtransactions

Review Statistic
GerritCode Review

GerritCode Review

Activity Statistic11

F1: 10% of all
Datareviews
Observation
were createdbybut not for#1 code review

Developers
UnusualPeakmistakesin Graphs
Submit wrong
code version
Accidentallysubmit changes
Review Statistic

Reviews related
VCS
Reviews
withouttocode
transactions
changesE.g., Merging branchtransactions

Review Statistic
GerritCode Review

GerritCode Review

Activity Statistic

11

Data Observation using#2

Review Statistic

12

Data Observation using#2

Missing data

Review Statistic

12

Data Observation using

Missing data#2

Git and Gerrit servers
were down.
Reported by Google Developers

Review Statistic

Incomplete dataset canbias the results.
12

F2:
Data
Review
Observation
history inusing
AOSP is incomplete.
#2

Missing data

Git and Gerrit servers
were down.
Reported by Google Developers

Review Statistic

Incomplete dataset canbias the results.
12

Data Observation using

Activity Statistic#3

Contributor
Contributor Activities
13

Data Observation using#3

Low activity number

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using#3

Weekend

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using#3

F3: Developers usually docode reviews on weekdays.

Weekend

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using#3

F3: Developers usually docode reviews on weekdays.

Weekend

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using#3

F3: Developers usually docode reviews on weekdays.
Main
Contributor

Weekend

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using#3

F3: Developers usually docode reviews on weekdays.
Main
Contributor

Weekend

Activity Statistic

Contributor
Contributor Activities
13

Data Observation using
F3: Developers usually docode reviews on weekdays.

#3

F4: Main contributors are from
Google and Android teams.
Main
Contributor

Weekend

Activity StatisticContributor
Contributor Activities13

14Modern Code Review is a tool-based, and occurs
regularly in practice nowadays at companies and OSS
projects [Bacchelli et. al.]GerritCode Review

Rietveld14Modern Code Review is a tool-based, and occurs
regularly in practice nowadays at companies and OSS
projects [Bacchelli et. al.]Modern Code Review&NewRich
cesourGerritCode Review

CodeQualityr

PopulaReliable?

?

nd afiyli
eas

eris

actrahc

atasdeht
tic inet?

“Publicly available data from support tools is arich source on mining, various potential perils
should also be taken into consideration.”

Canwe[Kalliamvakou et. al.]Rietveld414

Modern Code Review is a tool-based, and occurs
regularly in practice nowadays at companies and OSS
projects [Bacchelli et. al.]Modern Code Review&NewRich
cesourGerritCode Review

CodeQualityr

PopulaReliable?

?

nd afi
yli
eas

eris

actr
ahc

atas
deht
tic inet?

“Publicly available data from support tools is arich source on mining, various potential perils
should also be taken into consideration.”

Canwe[Kalliamvakou et. al.]Rietveld4

provides three visualizations

Review Statistic

Activity Statistic

Contributors Activities

14Modern Code Review is a tool-based, and occurs
regularly in practice nowadays at companies and OSS
projects [Bacchelli et. al.]Modern Code Review&NewRich
cesourGerritCode ReviewCode
Qualityr

PopulaReliable?

?

nd afiyli
eas

eris

actr
ahc

atas
deht
tic inet?

“Publicly available data from support tools is arich source on mining, various potential perils
should also be taken into consideration.”Can

we[Kalliamvakou et. al.]Rietveld

4provides three visualizations

Review Statistic

Activity Statistic

Example Findings
from Android Open Source Software Project (AOSP) dataset* Data was captured from October 2008 to January 2012

F1: 10% of all reviews were created but not for code review

GerritContributors Activities

F2: Review history in AOSP is incomplete.
F3: Developers usually do code reviews on weekdays.

F4: Main contributors are from Google and Android teams.
14