基于CodeCollaborator和Reviewboard的代码审工具试用对比说明.docx
- 文档编号:3960114
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:22
- 大小:1.21MB
基于CodeCollaborator和Reviewboard的代码审工具试用对比说明.docx
《基于CodeCollaborator和Reviewboard的代码审工具试用对比说明.docx》由会员分享,可在线阅读,更多相关《基于CodeCollaborator和Reviewboard的代码审工具试用对比说明.docx(22页珍藏版)》请在冰豆网上搜索。
基于CodeCollaborator和Reviewboard的代码审工具试用对比说明
CodeCollaborator和ReviewBoard试用说明
代码评审(CodeReview)是敏捷开发很重要的一环,是保证软件质量的最佳实践之一。
要做好代码评审,就需要有一套简单,高效,功能完善且界面友好的工具,来支持代码审查审查流程。
目前部门还没有采用PairProgramming那种时时刻刻都在review代码的工作方式,代码Review多采用走查方式,即代码写完后召开一个CodeReview的Meeting,集中时间和经验丰富的人力对重点代码进行筛查,这种方式的代码Review有利,但也有弊。
其弊端在于低效和覆盖面小。
做一次走查需要N多人参与若干个小时,而在这段时间里不是每个参与者都能极其高效的参与到走查中的,实践证明只有少数几个人能真正在一次代码审查会议上起到关键的作用。
另外走查一次能覆盖的代码范围又较小,一些看似不重要却很可能带来BUG的代码在走查会上很容易被遗漏。
CodeCollaborator和CodeReview等工具是对代码审查是一种很好的补充。
CodeCollaborator是一款收费工具,目前我部门ANM2000专项正在使用,效果较好。
当前比较流行的开源CodeReview工具有ReviewBoard、CodeStriker等。
依据我《代码审查流程》,综合分析,备选的两款工具分别是:
CodeCollaborator(代码合作者)和Reviewboard(评审委员会)。
在完成两款工具的使用对比后,根据试用的实际情况对两款工具进行比较见下表:
⏹【基于CodeCollaborator和Reviewboard的代码审工具试用对比表】
两款工具的安装与试用说明见:
⏹附件一:
《基于ReivewBoard的代码审查平台搭建简要说明》
⏹附件二:
《基于CodeCollaborator的代码审查平台搭建简要说明》
【基于CodeCollaborator和Reviewboard的代码审工具试用对比表】
要素
CodeCollaborator解决方案
ReviewBoard
解决方案
优点
缺点
优点
缺点
1.安装
安装简便,不易出错。
支持Windows、Linux、MaxOSX、Solaris、BSD上安装。
收费
软件,故成本高
开源软件,成本低。
官方推荐在Linux和Windows下安装
ReivewBoard(开源工具)的安装的确有些让人头痛,一堆互相依赖的软件包,版本稍有差异就很可能导致安装运行失败。
而且失败的原因还很难得知。
目前安装时仍有不稳定现象出现(一般报错有两种:
error1:
Downloaderrorforhttp:
//www.pycrypto.org/files/pycrypto-2.3.tar.gz:
<10065,'Noroutetohost'>
error2:
Setupscriptexitedwitherror:
PythonwasbuiltwithVisualStudio2003;
extensionsmustbebuiltwithacompilerthancangeneratecompatiblebinaries.
VisualStudio2003wasnotfoundonthissystem.IfyouhaveCygwininstalled,youcantrycomilingwithMingW32,bypassing"-cmingw32"tosetup.py.)
安装最后创建出来的站点的时区是默认的美国太平洋时间,而不是北京时间。
尝试在站点配置页面修改时区的时候,整个站点就挂了。
2.中文支持
对中文支持较好,试用期间没有发现问题
按照默认的步骤安装和配置后,输入和保存英文均没有问题。
但是一旦输入中文,保存后页面显示的都是乱码,甚至某些时候在保存中文数据时ReivewBoard还提示错误。
3.版本控制系统
支持集成许多版本控制系统,包括SVN,CVS,Clearcase,
VisualSourceSafe、等。
一个叫做“提交审查”的工具被用来和SCM系统进行连接(当前支持SVN、CVS、Perforce、Git和Mercurial等)
4.用户基础界面信息
1.多个同时评论
2.工作流支持评论/被许多作家在不同时区分开
3.版本控制集成
4.缺陷跟踪与严重程度,类型,分类,清单,和外部的问题跟踪器集成
5.全方面的度量指标,报告和数据出口
6.项目和角色为基础的规则和报告
7.基于Web的客户端和命令行跨平台客户端
8.命令行API的集成,扩展,自动化,并触发
1.在本地检出的代码的修改。
2.通过公布diff、编写描述和选择一些审查者来创建一个审查请求。
3.审查请求中点击“发布”并等待审查者看到它。
4.其他人看了你的审查请求。
5.你根据他们的评论更新了你的代码。
6.你公布了更新后的diff,以及对他们评论的解答以指明你修改了什么(或者你要说明为什么你不打算按照他们的建议修改代码)。
7.大家看了你更新后的代码,并请你继续。
8.你将修改提交到仓库中。
9.你在审查请求中点击“设置为已提交”来从其他人的面板中移除你的审查请求。
5.实时问题沟通
基于Web的即时“聊天”界面。
基于Web的即时“聊天”界面。
6.审查对象
不仅仅是文本文件,还可以是图片、HTML、WIKI网页、文件托管在Intranet或基于Web的文档管理系统。
(测试用例也可以评)
仅是文本文件
7.度量
自动收集在审查花费时间、缺陷数据(缺陷密度,和缺陷数),可定制输出审计报告
有数据统计,但不可定制
8.邮件
无问题
ReivewBoard的Mail通知设置问题,公司采用SSL协议加密Mail,ReivewBoard仅支持TSL,在网上查了一下这两个协议应该是兼容的,但是设置后就是无法将Mail发送出去。
9.可定制的工作流程
可配置不同类型的审查规则。
“自我检查”审查可能只要求看在他提交自己的文件。
“正式的”审查可能需要一个主持人,作家及多个审查者,并记录。
可配置的角色让你可以注明每个人的期望检查和控制每个用户可以做什么和发表评论。
每个用户在流程控制允许标记评论,也可以选择哪些事件将重新审查或审查相关通知更新。
不可定制工作流程
10.数据库支持
支持微软SQLServe和Oracle数据库等。
支持三种数据库服务器:
MySQL、PostgreSQL、SQLite
11.其它
中文的学习资料还比较少
中文的学习资料较少;
如果有代码是在UnixGBK环境下开发的,所有源代码文件都是以GBK编码格式存储。
一旦提交了这些源文件的diff,在ReivewBoard中“ViewDiff”时看到的中文将全是乱码,更严重的是某些时候ReivewBoard显示的代码差异的位置与真实代码修改的位置不符合。
附件一:
《基于ReivewBoard的代码审查平台搭建简要说明》
1.ReviewBoard简介
ReviewBoard(简称RB)起源于VMware的一些开发者,是基于Django的网络应用,界面友好,功能也非常强大,包含一套完整的Review流程,支持现在几种流行的SCM工具和数据库。
令人高兴的是它提供了在diffs里进行语法彩色编码,使得代码阅读变得简便。
此外,它还实现了基于Lucene的搜索来帮助管理较大的diffs组。
2.服务器安装
RB可以安装在多种平台。
本文是在WinXPSP3上安装,其他平台请参考其他文档。
需要先安装Python2.5和ApacheHttpServer2.2,安装完成后,必须要先保证“C:
\Python25;C:
\Python25\Scripts”在你的环境变量里。
其他软件(针对Python2.5)我已打包,见附件安装包。
1)安装和Python相关的一些工具
在软件包中,安装mod_python,PIL,setuptools。
这几个都是双击之后,一路NEXT即可。
2)安装memcachedforwindows(在软件包中)
先使用命令行memcached.exe-dinstall安装服务,再去WinXP服务管理界面启动该服务。
然后用命令行easy_installpython-memcached安装python-memcached.(NOTE:
最近发现easy_install也被墙了,所以用easy_install时可能有点问题。
如果是那样,请找个代理,然后设置HTTP_PROXY环境变量翻墙)。
3)安装数据库
RB支持三种数据库服务器:
MySQL、PostgreSQL、SQLite。
4)安装GNUpatch(在软件包中)
它的安装也是一路NEXT。
安装完成之后,把它EXE所在的路径放到PATH里。
5)安装SVN
安装SVN,建立SVN仓库,创建用户名和密码。
6)安装RB
RB团队已经把它放到easy_install的源里了,所以可以用easy_installReviewBoard安装,该装的都完成了,下一站就是建站。
3.建站
在命令行中打一句命令:
rb-siteinstall"站名"
之后,它会问你一会问题,比如用什么数据库,什么HttpServer,请按之前的安装回答。
还会让你输入管理员密码之类的。
命令完成之后,会在当前工作路径下成一个的站名一样的目录。
请到里面找到conf\apache-modpython.txt,这里面是一段apacheserver配置的片断,请把这片断复制到真正的httpd.conf里。
4.RB中添加Repository
在建站完成后,你应该可以访问到RBweb页面。
添加Repository,需要用admin用户。
然后是Perforce的配置。
首先有你在建站时用的admin用户登录,然后就会进入到Admin的页面(最上面有一个Admin的链接)。
点击Repositories进入到SCM的配置页面。
然后“AddRepository",输入Perforce的相关参数。
保存之后,Perforce就配置完成了。
RB的Admin页面做得还算友好,其他方面的配置,比如Email,站点信息之类的,需要进一步使用验证。
也可以到官网去看Manual,学习如何使用ReviewBoard。
5.如何发布一个ReviewRequest
简单说ReviewBoard支持两种ReviewCode的模式,一种是在code没有commit之前提交diff/patch文件进行review,叫做pre-commitreview,另外一种则是在codecommit之后,由工具自动根据提交的版本号生成diff/patch文件,并形成一条新的ReviewRequest,这种模式也叫post-commitreview。
先说pre-commitreview模式。
生成pre-commitreviewrequest有两种方法,第一种就是通过页面手工提交patch/diff文件的方法:
首先通过界面设置好你的svnrepository,比如:
svn:
//10.78.13.228:
3344;然后在你的DashBoard中“NewReviewRequest",有三个字段需要填写:
Repository:
/*选择你刚才配置的repository的id*/
BaseDiffPath:
/*如果你checkout出来的proj的svnurl是svn:
//10.78.13.228:
3344/trunk/testproj,那么这个字段填的就是/trunk/testproj*/
Diff:
/*你生成的diff文件的路径,在Windows上可以用TortoiseSVN的creatpatch工具直接生成某个源文件的diff格式文件*/
填好后,提交,这时你就会看到一个处于draft状态的Request,继续编辑它,指定Reviewer,然后Publish这个Request,这样你指定的Reviewer就能看到这个Request了。
这块如果你设置了Email通知,Publish过程会有一定延迟,特别是如果你的Email设置出错了,那Publish将一直处于ing状态,你刷新一下页面后,实际上你的Request已经publish结束了。
另外一种提交pre-commitreviewrequest的方法是通过一个名为“Post-Review”的python脚本实现的。
这个脚本在RBTools工具包中,较为好用,只要用这个post-review加上checklist-id就OK了。
配置这个工具(有些是专门针对Perforce的配置):
1)保证SVN连接的情况下,用“easy_install-URBTools”安装post-review工具
2)修改post-review的相关脚本(下载修改分三步,第一,到C:
/Python25/Scripts,删掉post-review.py,post-review.bat,post-review.exe;第二,拷贝压缩包里的文件到C:
/Python25/Scripts);第三,打开post-review.py,然后修改REVIEWBOARD_URL那一行,用真实的URL替换。
3)安装GNUDiff,这是用来生成diff文件的时候用的。
要把diff加到PATH里,一般是这个路径"C:
/Programfiles/GnuWin32/bin"。
关于post-review的更多用法,可阅读官方的Manual。
ReviewBoard功能还算强大,Review时你可以针对每行代码写Comments,这种ReviewCode的方式给你足够时间去思考,只要你认真对待,就不会出现盲区、死角,所以新提交的代码就都能被Review到。
6.postreview
1)在你建的RB上,注册一个新账号;
2)打开cmd,用命令"post-reviewPendingChangelistId-o"
3)第一次用这个命令,它会让你输入username和passwd,以后就不会了。
4)上传DIFF之后,它会用默认的浏览器打开网页,显示你刚上传的Request,这时它处于draft状态。
5)加上一些必要的信息,比如谁来review之类的,然后就Pulish吧!
7.总结
RB的基础配置就这么多,它的英文网站上还有更丰富的内容,包括其他代码服务器的配置,RB升级,搬移等等。
ReviewBoard的使用理念主要基于“ReviewRequest”。
开发人员提交一个补丁,同时生成一个ReviewRequest;其他人针对这个补丁提供Review意见(可以对特定代码行发表Review意见,并且可以对Review意见进行回复讨论)。
也可以利用ReviewBoard提供的RBTools包中的post-review指令从代码库中指定几个版本自动生成一个ReviewRequest。
总体来说,利用ReviewBoard组织基于互联网的远距离协同开发还是不错的,可以有一个方便的界面对代码开展讨论。
但是ReivewBoard(开源工具)的安装的确有些让人头痛,一堆互相依赖的软件包,版本稍有差异就很可能导致安装运行失败。
而且失败的原因还很难得知。
再则对中文的支持也比较差,按照默认的步骤安装和配置后,输入和保存英文均没有问题。
但是一旦输入中文,保存后页面显示的都是乱码,甚至某些时候在保存中文数据时ReivewBoard还提示错误。
为了使用好此工具,项目组要形成一套与之协作代码审查工作流程,并通过一定时间(参照网上其他项目组的经验,大概3到6个月)的持续改进来固化和部署。
附件二:
《基于CodeCollaborator的代码审查平台搭建简要说明》
1.安装CodeCollaboratorV6.0
安装程序在:
http:
//10.78.11.19/
第一步首先安装并配置IIS;
第二步安装安装配置MySQL;
第三步接着安装Windows服务器安装程序;
a,欢迎页,欢迎您到这个屏幕的安装过程,点击下一步继续;
b,License许可协议,阅读许可协议,选择我接受协议,然后再点击下一步;
c,选择目录地址进行服务器安装,确保该目录至少5GB空间可用;
d,开始菜单创建快捷方式;
e,配置Web服务器,进入一个开放的端口号,不与任何现有的服务冲突。
端口8080是标准的端口,我们将默认。
单击下一步,安装程序尝试连接到这个端口。
如果该端口正在使用中,会出现一个警告信息,你必须指定一个不同的端口或免费注册所需的端口;
g,配置数据库类型MySQL,填写详细配置使用数据库的用户名和密码,用户名和密码;
h,选择下列认证类型之一:
内部:
在维护自己的数据库用户名和密码。
LDAP的:
您可以使用LDAP身份验证,这将不要求你维护用户名和密码。
如果选择此选项,则下一屏幕允许您配置LDAP集成。
由于这种配置是有点麻烦。
第四步登录到Web浏览器客户端,
当您在安装完成后,Web浏览器会自动打开,将用来管理服务器的一部分。
a,数据库初始化。
当第一次打开配置服务器的网络浏览器,“需要数据库初始化”显示出来,点击初始化数据库继续。
b,内部验证。
如果您选择在安装过程中内部认证前,指定“管理员”作为用户名,密码字段留空白。
点击登录。
第五步,首次运行初始化,一旦你作为管理员登录,下图会要求您提供必要的信息设置服务器。
最初的几个用户,下图将帮助您开始填写用户列表。
你应该提供这部分至少有两个用户名。
通常情况下,管理员登录仅用于管理目的,因此建议您输入的个人用户名是以进行自己的代码审查的目的。
第六步,首页。
在第一次运行的初始化将进入主页。
一个绿色的提示框,提醒您可以配置您的服务器,或建立一个新的审查等,在主菜单链接处,默认情况下,不允许管理员创建评语。
下图是管理站
一旦你点击Admin链接,浏览器会指示您到管理部分。
在管理部分是在这里您可以根据自己的喜好配置设置。
屏幕的左侧黄色框是管理菜单,其中包含了有用的链接数,通过不同的配置指导子类别。
第七步,许可
ID:
找到8个字符节点的“许可证“编号。
ID是独一无二的,每次安装,由ID授权码激活您的许可证。
第八步服务器设置开通用户权限,并发布给用户;
用户客户端安装过Windows客户端安装程序后,登陆设置服务器地址、用户名和密码后,见下图。
然后设置与SVN连接后即完成安装并可以使用CodeCollaborator进行代码审查的流程。
所需的各安装程序名称见下图:
2.CodeCollaborator使用见Owner'sManual:
3.登录到客户端Web浏览器。
输入您的登录名和密码。
(用户名和密码,通常是由管理员提供的,但如果你的管理员允许用户创建登录,您可以创建自己的登录名和密码)一旦你登录,您可以检查您的行动项目,看看是否有任何指定评论。
您还可以通过点击编辑在屏幕上的菜单栏右设置。
4.创建作为一个代码审查请求:
有几种选择创建一个审查。
a,在菜单栏上单击新”NewReview”
b,在屏幕上创建一个审查,填写基本信息和选择审查参加者在屏幕上创建一个审查
c,单击Apply。
这一步是必要的;
d,在客户端允Web浏览器支持下,创建一个审查和修改列表。
d,单击ApplyandBeginReview,开始审查,并发出通知给参与审查人员。
5.添加审查意见和标注缺陷
有人邀请你去审查,您收到一封电子邮件通知,并根据任务清单进行审查。
点击将其打开。
单击一个文件,外部的diff查看器会将将其打开,并且您将可以在这里直接添加评论和标注缺陷。
评论:
点击就行了(文本文件)或地区(在支持文档)你想评论,然后键入您的评论。
评论是嵌入个被绑缚到一个特定的代码行的谈话,未读的评论是黄色标记。
提示:
您可以单击接受或清除标记已读未读评论。
标记已读只是表明你已经看到了评论。
当您查看文件多次,如果你不想重新读取相同的意见,这是有益的。
一旦这个按钮被使用,会出现一个绿色的对勾通知。
缺陷:
当你发现一个缺陷,点击这一行(文本文件)或区域中单击(在支持文档)缺陷。
确保新增缺陷标签被选中,并撰写你对缺陷的描述。
一旦一个缺陷被创建,您可以标记为已解决的缺陷,编辑或删除的缺陷,或者用它在评论框底部的链接一个外部的缺陷。
如果输入缺陷,作者应该修复的缺陷和上传修复和评论修改后的代码,直到代码是可以接受的。
请注意,直到所有的缺陷得到解决:
要么标记为已解决的,删除,或追踪外部,否者审查活动将不会关闭。
6.完成审查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CodeCollaborator Reviewboard 代码 工具 试用 对比 说明