2023年6月30日发(作者:)
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(评审委员会)。在完成两款工具的使用对比后,根据试用的实际情况对两款工具进行比较见下表:
【基于Code Collaborator和Review board的代码审工具试用对比表】
两款工具的安装与试用说明见:
附件一:《基于ReivewBoard的代码审查平台搭建简要说明》
附件二:《基于Code Collaborator的代码审查平台搭建简要说明》
【基于Code Collaborator和Review board的代码审工具试用对比表】
Code Collaborator解要
素
优点
点
决方案
缺优点 缺点
ReviewBoard
解决方案
1 / 20
ReivewBoard(开源工具)的安装的确有些让人头痛,一堆互相依赖的软件包,版本稍有差异就很可能导致安装运行失败。而且失败的原因还很难得知。目前安装时仍有不稳定现象出现(一般报错有两种:
error1: Download error for
/files/:<10065,'No
安装简便,不易收费
出错。
1.支持Windows、安Linux、Max OS X、装
Solaris、BSD上本高
安装。 装
Visual Studio 2003 was not found on this you have
Cygwin installed,you can try comiling with MingW32,by passing
"-c mingw32"to .)
安装最后创建出来的站点的时区是默认的美国太平洋时间,而不是北京时间。尝试在站点配置页面修改时区的时候,整个站点就挂了。
2.中文支持
一个叫做“提3.版本控制系统
支持集成许多版本控制系统,包括SVN,
交审查”的工具被用来和SCM系统进行连接(当前支持SVN、CVS、Perforce、Git和Mercurial等)
2 / 20
开源软件,成本route to host'>
低。
软官方推荐在件,Linux和
故成Windows下安compatible binaries.
extensions must be built with a compiler than can generate
Visual Studio 2003;
error2: Setup script exited with error: Python was built with
对中文支持较好,试用期间没有发现问题
按照默认的步骤安装和配置后,输入和保存英文均没有问题。但是一旦输入中文,保存后页面显示的都是乱码,甚至某些时候在保存中文数据时ReivewBoard还提示错误。
CVS,Clearcase,
Visual
SourceSafe 、等。
1.多个同时评论
2.工作流支持评论/被许多作家在不同时区分开
3.版本控制集成
4.缺陷跟踪与严重程度,类型,4.分类,清单,和用外部的问题跟踪户器集成
基5.全方面的度量础指标,报告和数界据出口
面6.项目和角色为信基础的规则和报息
告
7.基于Web的客户端和命令行跨平台客户端
8.命令行API的集成,扩展,自动化,并触发
5.实时基于Web的即时问“聊天”界面。
题沟通
3 / 20
1.在本地检出的代码的修改。
2.通过公布diff、编写描述和选择一些审查者来创建一个审查请求。
3.审查请求中点击“发布”并等待审查者看到它。
4.其他人看了你的审查请求。
5.你根据他们的评论更新了你的代码。
6.你公布了更新后的diff,以及对他们评论的解答以指明你修改了什么(或者你要说明为什么你不打算按照他们的建议修改代码)。
7.大家看了你更新后的代码,并请你继续。
8.你将修改提交到仓库中。
9.你在审查请求中点击“设置为已提交”来从其他人的面板中移除你的审查请求。
基于Web的即 时“聊天”界面。
不仅仅是文本文件,还可以是图6.片、HTML、WIKI审网页、文件托管查在Intranet或对基于Web的文档象
管理系统。(测试用例也可以评)
自动收集在审查7.度花费时间、缺陷数据(缺陷密度, 有数据统计,但不可定制
仅是文本文件
量 和缺陷数),可定制输出审计报告
8.邮件
可配置不同类型的审查规则。9.可定制的工作流“自我检查”审查可能只要求看在他提交自己的文件。
“正式的”审查可能需要一个主持人,作家及多个审查者, 不可定制工作流程
无问题
ReivewBoard的Mail通知设置问题,公司采用SSL协议加密Mail,
ReivewBoard仅支持TSL,在网上查了一下这两个协议应该是兼容的,但是设置后就是无法将Mail发送出去。
程 并记录。可配置的角色让你可以注明每个人 4 / 20
的期望检查和控制每个用户可以做什么和发表评论。每个用户在流程控制允许标记评论,也可以选择哪些事件将重新审查或审查相关通知更新。
10.支持三种数据数支持微软SQL
据Serve和Oracle库数据库等。
支SQLite
持
中文中文的学习资料较少;
的学11.习资其
它
比较ReivewBoard显示的代码差异的位置与真实代码修改的位置不符合。
少
库服务器: MySQL、PostgreSQL 、
如果有代码是在Unix GBK环境下开发的,所有源代码文件都是以GBK
料还“View Diff”时看到的中文将全是乱码,更严重的是某些时候 编码格式存储。一旦提交了这些源文件的diff,在ReivewBoard中
5 / 20
附件一:《基于ReivewBoard的代码审查平台搭建简要说明》
1. Review Board简介
Review Board(简称RB)起源于VMware的一些开发者,是基于Django的网络应用,界面友好,功能也非常强大,包含一套完整的Review流程,支持现在几种流行的SCM工具和数据库。令人高兴的是它提供了在diffs里进行语法彩色编码,使得代码阅读变得简便。此外,它还实现了基于Lucene的搜索来帮助管理较大的diffs组。
2. 服务器安装
RB可以安装在多种平台。本文是在WinXP SP3上安装,其他平台请参考其他文档。
6 / 20
需要先安装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(在软件包中)
先使用命令行 -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)安装RB
RB团队已经把它放到easy_install的源里了,所以可以用 easy_install ReviewBoard
安装, 该装的都完成了,下一站就是建站。
3. 建站
在命令行中打一句命令:rb-site install "站名"
之后,它会问你一会问题,比如用什么数据库,什么Http Server, 请按之前的安装回答。还会让你输入管理员密码之类的。
命令完成之后,会在当前工作路径下成一个的站名一样的目录。请到里面找到,这里面是一段apache server配置的片断,请把这片断复制到真正的里。
7 / 20
4. RB中添加Repository
在建站完成后,你应该可以访问到RBweb页面。
添加Repository, 需要用admin用户。然后是Perforce的配置。
首先有你在建站时用的admin用户登录,然后就会进入到Admin的页面(最上面有一个Admin的链接)。
8 / 20
9 / 20
点击Repositories进入到SCM的配置页面。然后“Add Repository", 输入Perforce的相关参数。
保存之后,Perforce就配置完成了。
RB的Admin页面做得还算友好,其他方面的配置,比如Email,站点信息之类的,需要进一步使用验证。也可以到官网去看Manual,学习如何使用ReviewBoard。
10 / 20
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://10.78.13.228:3344;然后在你的DashBoard中“New Review
Request",有三个字段需要填写:
Repository:/* 选择你刚才配置的repository的id */
Base Diff Path: /* 如果你checkout出来的proj的svn url是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-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,删掉, ,
; 第二,拷贝压缩包里的文件到C:/Python25/Scripts); 第三,打开 11 / 20
, 然后修改REVIEWBOARD_URL 那一行,用真实的URL替换。
3) 安装GNUDiff,这是用来生成diff文件的时候用的。要把diff加到PATH里,一般是这个路径"C:/Program files/GnuWin32/bin"。
关于post-review的更多用法,可阅读官方的Manual。ReviewBoard功能还算强大,Review时你可以针对每行代码写Comments,这种Review Code的方式给你足够时间去思考,只要你认真对待,就不会出现盲区、死角,所以新提交的代码就都能被Review到。
6. post review
1) 在你建的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个月)的持续改进来固化和部署。
12 / 20
附件二:《基于Code Collaborator的代码审查平台搭建简要说明》
1.
安装CodeCollaborator V6.0
安装程序在:10.78.11.19/
第一步首先安装并配置IIS;
第二步安装安装配置MySQL;
第三步接着安装Windows服务器安装程序;
a,欢迎页,欢迎您到这个屏幕的安装过程,点击下一步继续;
b,License许可协议,
阅读许可协议,选择我接受协议,然后再点击下一步;
c,选择目录地址进行服务器安装,确保该目录至少5 GB空间可用;
d,开始菜单创建快捷方式;
e,配置Web服务器,进入一个开放的端口号,不与任何现有的服务冲突。端口8080是标准的端口,我们将默认。单击下一步,安装程序尝试连接到这个端口。如果该端口正在使用中,会出现一个警告信息,你必须指定一个不同的端口或免费注册所需的端口;
g,配置数据库类型MySQL,填写详细配置使用数据库的用户名和密码,用户名和密码;
h,选择下列认证类型之一:
内部:在维护自己的数据库用户名和密码。
LDAP的:您可以使用LDAP身份验证,这将不要求你维护用户名和密码。如果选择此选项,则下一屏幕允许您配置LDAP集成。由于这种配置是有点麻烦。
第四步登录到Web浏览器客户端,
当您在安装完成后,Web浏览器会自动打开,将用来管理服务器的一部分。
“需要数据库初始化”显示出a,数据库初始化。当第一次打开配置服务器的网络浏览器,来,点击初始化数据库继续。
b,内部验证。如果您选择在安装过程中内部认证前,指定“管理员”作为用户名,密码字段留空白。点击登录。
13 / 20
第五步,首次运行初始化,一旦你作为管理员登录,下图会要求您提供必要的信息设置服务器。
最初的几个用户
,下图将帮助您开始填写用户列表。你应该提供这部分至少有两个用户名。通常情况下,管理员登录仅用于管理目的,因此建议您输入的个人用户名是以进行自己的代码审查的目的。
第六步,首页。
在第一次运行的初始化将进入主页。
14 / 20
一个绿色的提示框,提醒您可以配置您的服务器,或建立一个新的审查等,在主菜单链接处,默认情况下,不允许管理员创建评语。
下图是管理站
一旦你点击Admin链接,浏览器会指示您到管理部分。在管理部分是在这里您可以根据自己的喜好配置设置。
15 / 20
屏幕的左侧黄色框是管理菜单,其中包含了有用的链接数,通过不同的配置指导子类别。
第七步,许可
16 / 20
ID:找到8个字符节点的“许可证“编号。ID是独一无二的,每次安装,由ID授权码激活您的许可证。
第八步服务器设置开通用户权限,并发布给用户;
用户客户端安装过Windows客户端安装程序后,登陆设置服务器地址、用户名和密码后,见下图。然后设置与SVN连接后即完成安装并可以使用CodeCollaborator进行代码审查的流程。
所需的各安装程序名称见下图:
17 / 20
18 / 20
2.
Code Collaborator
使用见Owner's Manual:/docs/manual/6.0/
3.
登录到客户端Web浏览器。输入您的登录名和密码。
(用户名和密码,通常是由管理员提供的,但如果你的管理员允许用户创建登录,您可以创建自己的登录名和密码)一旦你登录,您可以检查您的行动项目,看看是否有任何指定评论。您还可以通过点击编辑在屏幕上的菜单栏右设置。
4.
创建作为一个代码审查请求:有几种选择创建一个审查。
a,在菜单栏上单击新”New Review”
b,在屏幕上创建一个审查,填写基本信息和选择审查参加者在屏幕上创建一个审查
c,单击Apply。这一步是必要的;
d,在客户端允Web浏览器支持下,创建一个审查和修改列表。
d,单击Apply and Begin Review,开始审查,并发出通知给参与审查人员。
5.
添加审查意见和标注缺陷
有人邀请你去审查,您收到一封电子邮件通知,并根据任务清单进行审查。点击将其打开。
单击一个文件,外部的diff查看器会将将其打开,并且您将可以在这里直接添加评论和标注缺陷。
19 / 20
评论:点击就行了(文本文件)或地区(在支持文档)你想评论,然后键入您的评论。评论是嵌入个被绑缚到一个特定的代码行的谈话,未读的评论是黄色标记。
提示:您可以单击接受或清除标记已读未读评论。标记已读只是表明你已经看到了评论。当您查看文件多次,如果你不想重新读取相同的意见,这是有益的。一旦这个按钮被使用,会出现一个绿色的对勾通知。
缺陷:当你发现一个缺陷,点击这一行(文本文件)或区域中单击(在支持文档)缺陷。确保新增缺陷标签被选中,并撰写你对缺陷的描述。一旦一个缺陷被创建,您可以标记为已解决的缺陷,编辑或删除的缺陷,或者用它在评论框底部的链接一个外部的缺陷。如果输入缺陷,作者应该修复的缺陷和上传修复和评论修改后的代码,直到代码是可以接受的。请注意,直到所有的缺陷得到解决:要么标记为已解决的,删除,或追踪外部,否者审查活动将不会关闭。
6.
完成审查
20 / 20
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688079262a77221.html
评论列表(0条)