intro done by YY

This commit is contained in:
Fisher Yu 2017-03-05 23:05:19 +08:00
parent f3e8e902d4
commit 0fee766192
2 changed files with 110 additions and 60 deletions

View File

@ -2,85 +2,101 @@
\section{Introduction}
%Pull request
The pull-based development model is becoming increasingly popular in distributed collaboration
for open source project development~\cite{Barr:2012,Gousios:2014,Gousios:2014b,gousios2016work}.
On GitHub~\footnote{\url{https://github.com/}} alone,
the largest social coding community, nearly half of collaborative projects
The pull-based development model is becoming increasingly popular in distributed collaboration
for Open Source Software (OSS) development~\cite{Barr:2012,Gousios:2014,Gousios:2014b,gousios2016work}.
On GitHub~\footnote{\url{https://github.com/}} alone,
the largest social coding community, nearly half of collaborative projects
(already over 1 million~\cite{Gousios:2016} until January 2016) have adopted this model.
In the context of pull-based development,
In the context of pull-based development,
any contributor can freely \emph{fork} (\ie clone) the interested public project
and modify the forked repository locally (\eg fixing bugs and adding new features),
without asking for the access to the central repository.
When the changes are ready to merge back into the master branch,
the contributor submit a \emph{pull-request},
the contributor submit a \emph{pull-request},
and then a rigorous quality evaluation process would be triggered before the pull-request get accepted.
%Review
Integragors(\ie core members of a project) are responsible to review and integrate the submitted changes~\cite{Tsay:2014a,Gousios:2014b,Marlow:2013}.
If they doubt about the appropriateness of the problem the pull-request tends
to resolve, they can ask the contributors to prove the value of this
contribution by showing some use case or just refuse to accept it.
If they are not content with the resolution integrators also expect contributors to improve the implementation, sometimes with suggestion,
%Review
Integrators, core members of a project, are responsible to review and integrate
the submitted changes into the main repositories~\cite{Tsay:2014a,Gousios:2014b,Marlow:2013,yu2015wait}.
If they doubt about the appropriateness of the problem that the pull-request tends
to resolve, they can ask the contributors to prove the value of this
contribution by showing some use case or just refuse to accept it.
If they are not content with the resolution, integrators also expect contributors
to improve the implementation, sometimes with suggestion,
or directly provide more excellent alternatives.
Occasionally, community audience (neither an integrator or the pull-request submitter) would
express their opinions and influence the decision process through community or company support.
After receiving the review comments, contributors tend to respond positively and
update their pull-request for another round review.
Finally, integrators and contributors will reach a consensus after iterative reviews and
discussions.
With pull-requests becoming increasingly popular,
most of large OSS projects enable the crowdsourcing of pull-request reviews
to a large number of external developers~\cite{Yu:2015,yu2014reviewer},
who are concerned about the development of the corresponding project,
to reduce integrators' workload.
For a pull-request, those crowd reviewers can help to find potential bugs,
add documentations or discuss their opinions with the contributor and core members.
After receiving the review comments, the contributor tend to respond positively and
update the pull-request for another round review.
Finally, the responsible integrator would make a decision that accept the pull-request or reject it,
by taking all above judgements and changes into consideration.
%引出 大目标 -》 小目标
%先说 对 comments 的 well understanding 大的贡献是啥, 然后说第一步是先分类
%参考 Assessing MCR Discussion Usefulness using Semantic Similarity
In this review-driven development process, review comments are of significant research value.
Prior research has studied on relationship between number of review comments and
pull-request acceptance.
To the best of our knowledge, the influence of review comment on reviewer recommendation~\cite{Yu:2015,Thongtanunam:2015,jiang:2015}
and pull-request prioritization~\cite{Veen:2015} has not been well understood.
%During the evaluation process of pull-request,
%In this review-driven development process, review comments are of significant research value.
Code Review, the well-established software quality practice,
is the most significant stage in the context of pull-based development,
to ensure that only high-quality code can be accepted.
%This human organized by core team
Prior work has show that the code review process exert a great influence on
pull-request acceptance~\cite{Tsay:2014b,Yu:2016} and latency~\cite{yu2015wait},
and the software release quality~\cite{t2015cq}.
Thus, OSS projects need various kinds of tools,
\ie reviewer recommender~\cite{Yu:2015,rahman2016correct} and prioritizer~\cite{Veen:2015}
to support this process running more efficiently and effectively.
%To the best of our knowledge, the influence of review comment on reviewer recommendation~\cite{Yu:2015,Thongtanunam:2015,jiang:2015}
%and pull-request prioritization~\cite{Veen:2015} has not been well understood.
%comments 种类多
Various stakeholders are involved in the review process from different perspectives.
Familiarity of changed files, understanding of the projects roadmap,
social relationship with the contributor and many other factors
influence their focus on the discussion.
Some of them care about the
contribution appropriateness (\eg whether this contribution is necessary),
some pay attention to
code quality (\eg perfection of functionality or performance) and
some inspect
projects norm consistence (\eg programming convention).
% Lots of valuable information is contained in the review comments.
Our long-term research objective is to improve reviewer recommendation and
pull-request prioritization based on the varity of review comments.
To investigate this, a necessary first step requires a well understanding
of review comments.
%Various stakeholders are involved in the review process from different perspectives.
%Familiarity of changed files, understanding of the projects roadmap,
%social relationship with the contributor and many other factors
%influence their focus on the discussion.
%Some of them care about the contribution appropriateness (\eg whether this contribution is necessary),
%some pay attention to code quality (\eg perfection of functionality or performance) and
%some inspect projects norm consistence (\eg programming convention).
% Lots of valuable information is contained in the review comments.
%Our long-term research objective is to improve reviewer recommendation and
%pull-request prioritization based on the varity of review comments.
%To investigate this, a necessary first step requires a well understanding
%of review comments.
%What we have done
In this paper,
We frist conduct a case study of three popular open source projects hosted in GitHub,
and construct a fine grained multi-level taxonomy for review comments
And then,
we manually labeled a set of review comments according to the defined taxonomy.
Based on this dataset,
we proposed a Two-stage Hybrid Classification(\TSHC) algorithm to
automatically classifies review comments using rule-based and machine learning (ML) techniques
In this paper, we conduct a case study of three popular OSS projects hosted in GitHub,
to deeply understand the types of review comments from various stakeholders.
Firstly, we construct a fine grained taxonomy covering typical motivations that reviewers join the discussion.
Then, we manually labeled a large set of review comments according to the defined categories.
Based on this dataset, we proposed a Two-stage Hybrid Classification(\TSHC) algorithm to
automatically classifies review comments by combining rule-based and machine learning (ML) techniques.
%Our contribution
% 一个分类体系
% 一份标注集
% 一个自动分类算法
The key contributions of this paper include:
The key contributions of this paper includes:
\begin{itemize}
\item A fine grained multi-level taxonomy for review comments in pull-based development model.
\item A dataset of manually labeld review comments which can be accessed via web page~\footnote{https://www.trustie.net/.***} and used in further studies.
\item An automatic classification algorithm for reveiew comments.
\item A fine grained and multi-level taxonomy for review comments in pull-based development model,
relating to technical, management and social aspects.
\item A high-quality labeled dataset of review comments, which can be accessed via web page~\footnote{We will publish it after the paper has been accepted.} and used in further studies.
\item An high performance automatic classification approach for review comments.
\end{itemize}
To the best of our knowledge, we are the first to study
how to categorize review comments of pull-request in a fine grained level,
which is a fundamental work for further studying the best practices
in the socialized code review process.
The rest of paper is organized as follows:
Section~\ref{sec:bg} illustrates the background.
Section~\ref{sec:approach} presents the approach of our study in detail, and
The rest of paper is organized as follows:
Section~\ref{sec:bg} illustrates the background.
Section~\ref{sec:approach} presents the approach of our study in detail, and
Section~\ref{sec:result} elaborates the research result.
% Section~\ref{sec:Pattern} depicts a preliminary but typical analysis results mined from review comments.
% Section~\ref{sec:Pattern} depicts a preliminary but typical analysis results mined from review comments.
% Threats and related work can be found in Section~\ref{sec:Threats} and Section~\ref{sec:RelatedW}.
Related work can be found in Section~\ref{sec:RelatedW}.
Finally, we draw our conclusion in section~\ref{sec:Concl}.

View File

@ -1,11 +1,27 @@
@article{Yu:2015,
title={Reviewer recommendation for pull-requests in GitHub},
title={Reviewer recommendation for pull-requests in GitHub: What can we learn from code review and bug assignment?},
author={Yu, Yue and Wang, Huaimin and Yin, Gang and Wang, Tao},
journal={Information \& Software Technology},
journal={Information and Software Technology},
volume={74},
number={C},
pages={204-218},
pages={204--218},
year={2016},
publisher={Elsevier}
}
@inproceedings{yu2014reviewer,
title={Reviewer recommender of pull-requests in GitHub},
author={Yu, Yue and Wang, Huaimin and Yin, Gang and Ling, Charles X},
booktitle={2014 IEEE International Conference on Software Maintenance and Evolution (ICSME)},
pages={609--612},
year={2014},
organization={IEEE}
}
@inproceedings{yu2015wait,
title={Wait For It: Determinants of Pull Request Evaluation Latency on GitHub},
author={Yu, Yue and Wang, Huaimin and Filkov, Vladimir and Devanbu, Premkumar and Vasilescu, Bogdan},
booktitle={MSR},
year={2015}
}
@inproceedings{Barr:2012,
@ -92,6 +108,24 @@
year={2015},
}
@inproceedings{t2015cq,
title={Investigating code review practices in defective files: an empirical study of the Qt system},
author={Thongtanunam, Patanamon and McIntosh, Shane and Hassan, Ahmed E and Iida, Hajimu},
booktitle={Proceedings of the 12th Working Conference on Mining Software Repositories},
pages={168--179},
year={2015},
organization={IEEE Press}
}
@inproceedings{rahman2016correct,
title={CoRReCT: code reviewer recommendation in GitHub based on cross-project and technology experience},
author={Rahman, Mohammad Masudur and Roy, Chanchal K and Collins, Jason A},
booktitle={Proceedings of the 38th International Conference on Software Engineering Companion},
pages={222--231},
year={2016},
organization={ACM}
}
@article{jiang:2015,
title={CoreDevRec: Automatic Core Member Recommendation for Contribution Evaluation},
author={Jiang, Jing and He, Jia Huan and Chen, Xue Yuan},