基于Code-Collaborator和Review-board的代码审工具试用对比说明.doc_第1页
基于Code-Collaborator和Review-board的代码审工具试用对比说明.doc_第2页
基于Code-Collaborator和Review-board的代码审工具试用对比说明.doc_第3页
基于Code-Collaborator和Review-board的代码审工具试用对比说明.doc_第4页
基于Code-Collaborator和Review-board的代码审工具试用对比说明.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Code Collaborator和Review Board试用说明代码评审(Code Review)是敏捷开发很重要的一环,是保证软件质量的最佳实践之一。要做好代码评审, 就需要有一套简单,高效,功能完善且界面友好的工具,来支持代码审查审查流程。目前部门还没有采用Pair Programming那种时时刻刻都在review代码的工作方式,代码Review多采用走查方式,即代码写完后召开一个Code Review的Meeting,集中时间和经验丰富的人力对重点代码进行筛查,这种方式的代码Review有利,但也有弊。其弊端在于低效和覆盖面小。做一次走查需要N多人参与若干个小时,而在这段时间里不是每个参与者都能极其高效的参与到走查中的,实践证明只有少数几个人能真正在一次代码审查会议上起到关键的作用。另外走查一次能覆盖的代码范围又较小,一些看似不重要却很可能带来BUG的代码在走查会上很容易被遗漏。Code Collaborator 和Code Review等工具是对代码审查是一种很好的补充。Code Collaborator是一款收费工具,目前我部门ANM2000专项正在使用,效果较好。当前比较流行的开源Code Review工具有Review Board、CodeStriker等。依据我代码审查流程,综合分析,备选的两款工具分别是:Code Collaborator(代码合作者)和Review board(评审委员会)。在完成两款工具的使用对比后,根据试用的实际情况对两款工具进行比较见下表:n 【基于Code Collaborator和Review board的代码审工具试用对比表】两款工具的安装与试用说明见:n 附件一:基于ReivewBoard的代码审查平台搭建简要说明n 附件二:基于Code Collaborator的代码审查平台搭建简要说明【基于Code Collaborator和Review board的代码审工具试用对比表】要 素Code Collaborator解决方案ReviewBoard解决方案优点缺点优点缺点1.安装安装简便,不易出错。支持Windows、Linux、Max OS X、Solaris、BSD上安装。收费软件,故成本高开源软件,成本低。官方推荐在Linux和 Windows下安装ReivewBoard(开源工具)的安装的确有些让人头痛,一堆互相依赖的软件包,版本稍有差异就很可能导致安装运行失败。而且失败的原因还很难得知。目前安装时仍有不稳定现象出现(一般报错有两种:error1: Download error for /files/pycrypto-2.3.tar.gz:error2: Setup script exited with error: Python was built with Visual Studio 2003;extensions must be built with a compiler than can generate compatible binaries.Visual Studio 2003 was not found on this system.If you have Cygwin installed,you can try comiling with MingW32,by passing -c mingw32to setup.py.)安装最后创建出来的站点的时区是默认的美国太平洋时间,而不是北京时间。尝试在站点配置页面修改时区的时候,整个站点就挂了。2.中文支持对中文支持较好,试用期间没有发现问题按照默认的步骤安装和配置后,输入和保存英文均没有问题。但是一旦输入中文,保存后页面显示的都是乱码,甚至某些时候在保存中文数据时ReivewBoard还提示错误。3.版本控制系统支持集成许多版本控制系统,包括SVN, CVS,Clearcase,Visual SourceSafe 、等。一个叫做“提交审查”的工具被用来和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.数据库支持支持微软SQL Serve和Oracle数据库等。支持三种数据库服务器:MySQL、PostgreSQL 、SQLite11.其 它中文的学习资料还比较少中文的学习资料较少;如果有代码是在Unix GBK环境下开发的,所有源代码文件都是以GBK编码格式存储。一旦提交了这些源文件的diff,在ReivewBoard中“View Diff”时看到的中文将全是乱码,更严重的是某些时候ReivewBoard显示的代码差异的位置与真实代码修改的位置不符合。附件一:基于ReivewBoard的代码审查平台搭建简要说明1. Review Board简介Review Board(简称RB)起源于VMware的一些开发者,是基于Django的网络应用,界面友好,功能也非常强大,包含一套完整的Review流程,支持现在几种流行的SCM工具和数据库。令人高兴的是它提供了在diffs里进行语法彩色编码,使得代码阅读变得简便。此外,它还实现了基于Lucene的搜索来帮助管理较大的diffs组。2. 服务器安装RB可以安装在多种平台。本文是在WinXP SP3上安装,其他平台请参考其他文档。 需要先安装Python 2.5和Apache Http Server 2.2,安装完成后,必须要先保证“C:Python25;C:Python25Scripts”在你的环境变量里 。其他软件(针对Python2.5)我已打包,见附件安装包。1)安装和Python相关的一些工具在软件包中,安装mod_python,PIL,setuptools。这几个都是双击之后,一路NEXT即可。2)安装memcached for windows(在软件包中)先使用命令行memcached.exe -d install安装服务,再去WinXP服务管理界面启动该服务。然后用命令行easy_install python-memcached安装python-memcached. (NOTE: 最近发现easy_install也被墙了,所以用easy_install时可能有点问题。如果是那样,请找个代理,然后设置HTTP_PROXY环境变量翻墙)。3)安装数据库RB支持三种数据库服务器:MySQL、PostgreSQL 、SQLite 。4)安装GNU patch(在软件包中)它的安装也是一路NEXT。安装完成之后,把它EXE所在的路径放到PATH里。5)安装SVN安装SVN,建立SVN仓库,创建用户名和密码。6)安装RBRB团队已经把它放到easy_install的源里了,所以可以用 easy_install ReviewBoard 安装, 该装的都完成了,下一站就是建站。3. 建站在命令行中打一句命令:rb-site install 站名之后,它会问你一会问题,比如用什么数据库,什么Http Server, 请按之前的安装回答。还会让你输入管理员密码之类的。命令完成之后,会在当前工作路径下成一个的站名一样的目录。请到里面找到confapache-modpython.txt,这里面是一段apache server配置的片断,请把这片断复制到真正的httpd.conf里。4. RB中添加Repository在建站完成后,你应该可以访问到RBweb页面。 添加Repository, 需要用admin用户。然后是Perforce的配置。首先有你在建站时用的admin用户登录,然后就会进入到Admin的页面(最上面有一个Admin的链接)。点击Repositories进入到SCM的配置页面。然后“Add Repository, 输入Perforce的相关参数。保存之后,Perforce就配置完成了。RB的Admin页面做得还算友好,其他方面的配置,比如Email,站点信息之类的,需要进一步使用验证。也可以到官网去看Manual,学习如何使用ReviewBoard。5. 如何发布一个Review Request简单说ReviewBoard支持两种Review Code的模式,一种是在code没有commit之前提交diff/patch文件进行review,叫做pre-commit review,另外一种则是在code commit之后,由工具自动根据提交的版本号生成diff/patch文件,并形成一条新的Review Request,这种模式也叫post-commit review。先说pre-commit review模式。生成pre-commit review request有两种方法,第一种就是通过页面手工提交patch/diff文件的方法:首先通过界面设置好你的svn repository,比如:svn:/28:3344;然后在你的DashBoard中“New Review Request,有三个字段需要填写:Repository:/* 选择你刚才配置的repository的id */ Base Diff Path: /* 如果你checkout出来的proj的svn url是svn:/28: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-commit review request的方法是通过一个名为“Post-Review”的python脚本实现的。这个脚本在RBTools工具包中,较为好用,只要用这个post-review加上checklist-id就OK了。配置这个工具(有些是专门针对Perforce的配置):1) 保证SVN连接的情况下, 用“easy_install -U RBTools” 安装post-review工具2) 修改post-review的相关脚本(下载/source/2856000。) 修改分三步,第一,到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:/Program files/GnuWin32/bin。关于post-review的更多用法,可阅读官方的Manual。ReviewBoard功能还算强大,Review时你可以针对每行代码写Comments,这种Review Code的方式给你足够时间去思考,只要你认真对待,就不会出现盲区、死角,所以新提交的代码就都能被Review到。6. post review1) 在你建的RB上,注册一个新账号;2) 打开cmd, 用命令post-review PendingChangelistId -o 3) 第一次用这个命令,它会让你输入username和passwd,以后就不会了。4) 上传DIFF之后,它会用默认的浏览器打开网页, 显示你刚上传的Request, 这时它处于draft状态。5) 加上一些必要的信息, 比如谁来review之类的,然后就Pulish吧!7.总结RB的基础配置就这么多,它的英文网站上还有更丰富的内容,包括其他代码服务器的配置,RB升级,搬移等等。Review Board 的使用理念主要基于“Review Request”。开发人员提交一个补丁,同时生成一个 Review Request ;其他人针对这个补丁提供 Review 意见(可以对特定代码行发表 Review 意见,并且可以对 Review 意见进行回复讨论)。也可以利用 Review Board 提供的 RBTools 包中的 post-review 指令从代码库中指定几个版本自动生成一个 Review Request 。 总体来说,利用 Review Board 组织基于互联网的远距离协同开发还是不错的,可以有一个方便的界面对代码开展讨论。但是ReivewBoard(开源工具)的安装的确有些让人头痛,一堆互相依赖的软件包,版本稍有差异就很可能导致安装运行失败。而且失败的原因还很难得知。再则对中文的支持也比较差,按照默认的步骤安装和配置后,输入和保存英文均没有问题。但是一旦输入中文,保存后页面显示的都是乱码,甚至某些时候在保存中文数据时ReivewBoard还提示错误。为了使用好此工具,项目组要形成一套与之协作代码审查工作流程,并通过一定时间(参照网上其他项目组的经验,大概3到6个月)的持续改进来固化和部署。附件二:基于Code Collaborator的代码审查平台搭建简要说明1. 安装CodeCollaborator V6.0安装程序在:9/第一步首先安装并配置IIS;第二步安装安装配置MySQL;第三步接着安装Windows服务器安装程序; a,欢迎页,欢迎您到这个屏幕的安装过程,点击下一步继续; b,License许可协议, 阅读许可协议,选择我接受协议,然后再点击下一步; c,选择目录地址进行服务器安装,确保该目录至少5 GB空间可用; d,开始菜单创建快捷方式; e,配置Web服务器,进入一个开放的端口号,不与任何现有的服务冲突。端口8080是标准的端口,我们将默认。单击下一步,安装程序尝试连接到这个端口。如果该端口正在使用中,会出现一个警告信息,你必须指定一个不同的端口或免费注册所需的端口; g,配置数据库类型MySQL,填写详细配置使用数据库的用户名和密码,用户名和密码; h,选择下列认证类型之一: 内部:在维护自己的数据库用户名和密码。 LDAP的:您可以使用LDAP身份验证,这将不要求你维护用户名和密码。如果选择此选项,则下一屏幕允许您配置LDAP集成。由于这种配置是有点麻烦。第四步登录到Web浏览器客户端,当您在安装完成后,Web浏览器会自动打开,将用来管理服务器的一部分。a,数据库初始化。当第一次打开配置服务器的网络浏览器,“需要数据库初始化”显示出来,点击初始化数据库继续。b,内部验证。如果您选择在安装过程中内部认证前,指定“管理员”作为用户名,密码字段留空白。点击登录。第五步,首次运行初始化,一旦你作为管理员登录,下图会要求您提供必要的信息设置服务器。 最初的几个用户 ,下图将帮助您开始填写用户列表。你应该提供这部分至少有两个用户名。通常情况下,管理员登录仅用于管理目的,因此建议您输入的个人用户名是以进行自己的代码审查的目的。第六步,首页。 在第一次运行的初始化将进入主页。一个绿色的提示框,提醒您可以配置您的服务器,或建立一个新的审查等,在主菜单链接处,默认情况下,不允许管理员创建评语。下图是管理站 一旦你点击Admin链接,浏览器会指示您到管理部分。在管理部分是在这里您可以根据自己的喜好配置设置。屏幕的左侧黄色框是管理菜单,其中包含了有用的链接数,通过不同的配置指导子类别。第七步,许可ID:找到8个字符节点的“许可证“编号。ID是独一无二的,每次安装,由ID授权码激活您的许可证。第八步服务器设置开通用户权限,并发布给用户;用户客户端安装过Windows客户端安装程序后,登陆设置服务器地址、用户名和密码后,见下图。然后设置与SVN连接后即完成安装并可以使用CodeCollaborator进行代码审查的流程。所需的各安装程序名称见下图:2. Code Collaborato

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论