ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:858.46KB ,
资源ID:13495980      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13495980.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(定制 bugzilla 进行项目管理.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

定制 bugzilla 进行项目管理.docx

1、定制 bugzilla 进行项目管理定制bugzilla进行项目管理Apache Harmony 项目是 IBM 中国开发中心上海,近年来参加的一个开源项目。在这个项目中我们使用了开源软件开发中普遍使用的缺陷跟踪系统 Bugzilla。Bugzilla是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。针对项目的特性,我们将Bugzilla做为整个项目开发过程中的唯一管理工具。通过这种独特的使用方式,积累了一些经验,希望可以和广大开发人员一起分享。Apache Harmony 开

2、源项目的开发流程Apache Harmony 的提案在 2005 年 5 月被 Apache 软件基金会(ASF)接受,并且按照 ASF 惯例成为一个孵化(incubator)项目。作为一个开源项目,所有参与的开发者需要遵循一个不同于一般产品开发的开发流程。在 Harmony 项目的主页上有一个链接Get Involved,点开这个链接,您可以看到参与该项目的一些基本规则。项目由广大的开发者提供的很多不同的捐献(contribution)推动,捐献包括代码,文档,反馈意见。该项目的一个主要特征是,希望所有的开发均发生在社区(透明性)。Harmony 项目提供了以下的基础设施保证了项目的透明性(

3、图1): 项目开发中产生的任何正式的想法和讨论均发表到 harmony 邮件组上。 任何非正式的讨论发表到 网络上的 #harmony IRC channel 频道。 所有的项目源码由一个公共的svn服务器控制。该服务器进行了严格的权限控制,以接受代码的捐赠。 新功能的提交,包括项目开发中产生的缺陷(bug)均会被提交到 JIRA 系统上,并且随后提交补丁。最后由具有权限的开发者将这些补丁提交到svn服务器上。 其他的一些相关的文档和讨论发表在wiki系统上。图1:Harmony 项目透明的开发流程可以看到,在这个开发流程中,任何关于项目的想法或是讨论均发生在项目的邮件组上。项目中所有代码包括

4、文档等资产均通过提交补丁的形式,通过 JIRA 系统提交。然后由 committer 将 JIRA 系统中的补丁安装到svn代码库中。在我们的开发团队中,大部分人扮演的是 Contributor 的角色,负责的主要工作是: 在邮件组上讨论需要开发的内容,获取邮件组上其他开发人员的意见,形成一个设计决定。 根据邮件组上形成的设计决定,开发并提交补丁。补丁是开发小组的主要产品,而bugzilla系统正是面向补丁设计的系统。为了提高代码的质量,结合bugzilla系统提供的功能,开发小组在内部制定了一套自己的开发流程(图2)。开发小组内部的开发流程图 2 开发小组内部的开发流程在这样一个流程中,小组

5、成员被分为了两种角色,分别是开发者(DEV)和质量保证人(QA)。开发者如果有任何代码需要提交到 JIRA 系统中,他的这些代码就需要先经过小组内部流程的检验。开发者首先在bugzilla系统上新建一个 bug 报告(下文中将这种 bug 称为代码审查请求),将该 bug 的所有人(owner)设置为他自己,并将该 bug 分配给质量保证人(下文简称 QA)。这时代码审查请求的状态变为 已分配。这时如果开发者满怀信心的觉得自己的代码已经相当优美,他就将自己的代码作为当前 bug 的附件,上传到bugzilla系统中。当 QA 发现新的代码审查请求,他/她会按照特定的标准(代码和测试用例是否有逻

6、辑错误,代码风格是否合适)进行代码审核。如果没有发现任何问题,QA 将代码审查请求的状态改为 已解决。这表示代码通过审核,可以被提交到社区里去了。当然一般来说,代码总会出现一些小的问题。这时 QA 就会针对这些问题报告新的 bug,并将这些 bug 分配给开发者。这些 bug 不同于之前的代码审查请求,他们真正表示代码中的缺陷。这些代码缺陷会阻塞住原先的代码审查请求(通过bugzilla提供的功能),保证如果这些缺陷不被修复(状态不转变为 closed),则代码审查请求的状态就不能变为 已修复。当 QA 认为所有的缺陷都已经找出来之后,他/她会将代码审查请求分配给开发者。这时,开发者针对 QA

7、 报告的缺陷,修正自己的代码,并提交新的代码补丁(将前一个代码补丁设置为废旧),将代码审查请求重新分配给 QA。这个过程将被重复,直到开发者提交的代码不会再被检查出缺陷为止。下面的文章将结合上面介绍的流程,描述bugzilla的相应功能。问题请求系统(Request System)鉴于 Harmony 项目的特性,对代码质量的要求非常严格,仅仅通过一些代码审查(Review)工具无法完全保证其质量,所以开发中除了实际的开发人员,还增加了 QA(Quality Assurance)的角色来保证代码质量。所有代码必须经过从开发人员到 QA 的反复检查才能发布。Bugzilla为这个迭代过程提供了很

8、好的支持。问题请求系统允许开发人员为一个补丁设置标签(flag)来请求对当前代码的复查。Bugzilla共提供了两种类型的标签,分别用来表示 bug 和补丁的状态,我们在开发中只使用了补丁的标签功能。对于 QA 来说,他可以设置标签来表示接受或者拒绝这个补丁。通过这个标签无论是开发人员或是 QA 都可以及时掌握一个补丁当前所处的状态。以下我们详细展示如何通过Bugzilla的问题请求系统来进行代码开发的过程。1. Bugzilla管理员安装完bugzilla系统后,为当前开发的项目新建一个复查标签(图3)。图 3 管理标记类型2. 开发人员通过 Eclipse 的Subclipse插件生成基于

9、当前服务器上代码的增量补丁,详见应用补丁部分。3. 开发人员在Bugzilla上新建一个优先级为“开发”类型的新记录(图4),作为本开发流程的基点。图 4 提交Bug:TestProduct4. 开发人员将补丁上传到“开发”记录的附件中(在附件中递交补丁将在后面介绍),并开启补丁的标签功能,比如开发人员张三与 QA 李四搭档开发,张三在设置标签的时候就会指定李四来复查,在下拉菜单中选中?,并在后面的字段填上李四(图5)。图 5 标记此时,补丁的状态字段就会显示为 zhangsan:复查?(lisi)(图6)。如果开发人员重新想置空标签或者不指定具体的 QA,只需在下拉菜单中选中空格即可。图6

10、标记为需要复查5. 对于 QA 来说,他可以利用标签的另外两个值来表明补丁的状态。如果 QA 发现补丁中存在缺陷或者 bug,就将标签置为-,表示没有通过复查(图7)。图7 标记为拒绝然后,针对补丁,报告 bug(在bugzilla上创建优先级为“复查”的新记录来报告补丁的 bug),并将它(们)指派给开发者张三。同时,设置这条记录的阻塞(block)字段,将它置为代码审查请求记录的编号(图8)。如果这里报的 bug 没有修复的话,代码审查请求记录是无法被关闭(closed)的。图8 阻塞记录6. 开发者修复了 QA 报告的 bug 之后,制作新版本的补丁文件上传。7. QA 查看新补丁是否仍

11、存在问题,若确认无误,可以关闭“复查”记录(图9)。图9 关闭8. QA 重复上述过程,直到补丁中没有缺陷。当李四认为复查已通过,便可将标签置为+,表明补丁通过了复查,这时附件状态就会显示为李四:复查+。然后,QA 将相应的“开发”记录状态置为“已解决”,解决方案置为“修复”(图10),告诉 committer 这个补丁已经可以递交到服务器。图10 标记为已修复9. 最后,项目组内的 committer 会搜索所有已解决(Resolved)的“开发”记录,把通过的补丁递交到 Harmony 的服务器上,再关闭相应的“开发”记录。对已经提交问题的通配符搜索开发过程中,会产生大量的 bug 报告,

12、如何从这些数据中获得我们需要的记录?bugzilla提供了两种不同复杂度的搜索方式,第一种方式仅提供了状态、产品和关键字三个字段来进行搜索,它只能进行最基本的搜索功能,方便开发人员进行一些快速的搜索。Bugzilla同时也提供了更为强大和全面的搜索功能,支持对搜索的定制。无论是开发人员还是 QA 都可以针对自己关注的问题,选择相关的字段,设置搜索条件(图11)。对于搜索的关键字,无需输入完整信息,系统会返回所有以该关键字为子串的匹配结果。图11 通配符搜索Bugzilla的搜索还提供了一个非常有价值的功能,它可以保存每次的搜索配置,只要你为当前的搜索设置一个易记名字(图12),就能保存当前搜索

13、配置供下次使用,省去了无谓琐碎的重复配置。如果条件有变动,还能编辑搜索条件。图12 搜索结果当需要重复相同的搜索时,无需再次设置搜索条件,只需点击保存的名字就可以获得同样的搜索结果(图13),为开发人员提供了巨大的便利。图13 保存搜索结果开发中我们还可以通过 RSS 阅读器来订阅搜索结果,定制搜索条件获得数据时,在搜索的 http 地址后面加上&ctype=rss便可获取符合 RSS 标准的 XML 数据。通过 RSS 客户端软件订阅,便可与数据保持同步,无需通过sendmail来通知最新的变化。报表的生成开发进行了一段时间后,项目经理需要对项目进展以及所有开发人员的工作状况进行汇总,bug

14、zilla报表统计功能省去了枯燥的数据录入,方便汇总统计。Bugzilla可以生成两种形式的报表(Report)进行统计。一种是以表格的形式,这是默认支持的。还有一种形式是通过直方图来表示结果,更加直观,它需要在编译bugzilla前,添加图形模块。两种形式报表的生成过程大致相同,我们以表格形式生成项目汇总报告为例,来介绍该功能。生成报表过程中条件的筛选类似高级搜索中搜索条件的定制。Bugzilla报表生成功能提供了较大灵活性,用户可以设置三个坐标轴的字段值(图14)。举简单的例子,我们开发总结时需要比较各个开发小组所有“开发”记录的总数,就可以通过如下方式来产生汇总数据 纵坐标:选择报告人,

15、即开发人员资料。 横坐标:选择开发人员负责的项目组件。然后在筛选条件的优先级中选择“开发”,如果想统计 QA 的工作,只需把优先级改为“复查”即可。如果不想在同一张表格中生成数据,还可在“多表显示”中选择报告人,这样就会为每个开发人员生产一个表格。图14 生成表格形式的报表补丁提交开发中,补丁是通过附件的方式递交的(图15)。图15 提交补丁1. 点击创建新附件链接,转入建立新的附件页面(图16)。2. 输入附件的文件路径。3. Bugzilla在服务器端提供两种附件的存放方式。对于大文件,只在数据库中保存文件路径、文件名等定位信息,而把文件保存在本地的文件系统中,这样可减少数据库读写次数,增

16、加效率。对于小文件,bugzilla直接将文件写入数据库中。为了减少复杂度,补丁一般都不会很大,只有在补丁特别大的时候,才有需要选择大文件(BigFile)选框。4. 补丁文件的描述,可以在这里简洁的介绍补丁添加的功能。5. 附件文件类型选择。Bugzilla支持多种文件类型附件上传,系统能自动检测,用户也可以指定文件类型。当选择了补丁框后,下面选择其他文件类型的输入框就会变成灰色,无需进行设置。因为我们递交的附件都是补丁(patch)形式,所以只需选中补丁选框。6. 当不想公开补丁内容时,可选中隐私(Privacy)框。7. 如果想废弃原先递交的附件,可以在废弃(Obsoletes)中选择先

17、前递交的某一附件。8. 由于补丁是分派给 QA 的,所以开发人员递交补丁时无需设置重新分派(Reassignment)。9. 为补丁设置复查标签,将复查标签的状态置为?,并在后面的输入框输入配对的 QA 用户名,指派对应的 QA 进行复查。10. 当补丁完成的任务比较复杂的时候,可以在注释(Comment)框中为补丁添加更加详细的介绍,这个选项是可选的。图16 添加补丁开发中,如果安装bugzilla的时候添加了PatchReader模块(这个 Perl 模块是可选的),用户可在bugzilla中直接预览补丁内容,只要补丁是通过 CVS 或者 Subversion 生成。点击区别(diff)链

18、接,bugzilla便会自动生成补丁修改前后的对比页面。(图17)。图17 查看补丁使用 eclipse 应用补丁在开发过程中,开发人员通过Subclipse(支持 subversion 操作的 eclipse 的插件)制作补丁,然后 QA 将其应用到 eclipse 运行,只有通过了所有的单元测试,补丁才能通过。1. 在 eclipse 的 workspace 点右键,选择Subclipse提供的 Team 菜单选项。2. 应用补丁(Apply patch)的方式有两种,一种是通过文件打补丁。还可以直接打开补丁文件,然后将其内容复制到内存的剪贴板(Clipboard)中(图18),再从剪贴板

19、中打补丁。3. 选中需要打补丁的项目。4. 选择让系统自动猜测(Guess)正确的目录层次,也可以通过忽略补丁路径靠前部分来手工调整(图19)。图18 应用补丁图19 验证补丁系统的本地化Bugzilla系统为本地化保留了开放的接口,只要提供符合规范的本地语言模板即可让你的bugzilla系统支持你的本地语言,在SourceForge上可以找到由第三方提供的模板支持,无需自行开发新的模板。这个第三方库还提供了css脚本,可以定制自己界面,为更好的查看 bug 提供方便。本地化bugzilla的过程非常方便,只需按照下面所示步骤即可:1. 从SourceForge下载工具包,解压。2. 从解压出

20、来的两种编码方式中选一种模板(UTF8 格式和 GB2312 格式)复制到 %bugzilla根目录 %/template/,并将文件夹改名为cn(默认英文模板名字 en)。3. 以管理员身份登录系统,进入参数配置页面(图20)4. 将 language 改为cn(图21),系统便会自动去提取新加的模板来格式化界面,如果想重新恢复英文,只需重新改回 en 即可。图20 参数设置图21 本地化参考资料学习 “在 Linux 上使用 Bugzilla 跟踪 bug”(developerWorks,2005 年 4 月)给出了在 Linux 系统上安装Bugzilla的逐步指南。 了解使用Bugzi

21、lla的部分公司、组织和项目(共 394 个),其中包括 NASA、Apache、Eclipse、GlaxoSmithKline、Novell、Sandia Labs、W3C、Wikipedia 和 IBM。 Apache Harmony 官方网站:http:/incubator.apache.org/harmony/ 阅读进入 Harmony 世界系列:第 1 部分:Apache Harmony 项目简介、第 2 部分:研究 Port Layer和第 3 部分: Harmony VMI。 如何参与 Harmony:http:/incubator.apache.org/harmony/get-involved.html Java 技术专区:这里有数百篇关于 Java 编程各个方面的文章。获得产品和技术 访问BugzillaWeb 站点,下载最新版本的Bugzilla。 Apache Harmony 的二进制版本下载:http:/incubator.apache.org/harmony/downloads.html IBM Apache Harmony 开发包(VM Environment):讨论 developerWorks bolgs:加入developerWorks社区。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2