jira&Confluence
1 JIRA
1.1 介绍
JIRA是一款问题跟踪工具,可以对各种类型的问题进行跟踪管理,包括缺陷、需求变更、任务等。
跟踪并管理在项目过程中呈现出来的问题(如缺陷、新特性、需求变更、开发任务问题等)是项目管理很重要的任务,但是很少有团队能做的很好。JIRA虽然是一个问题跟踪系统,但是只要稍加改造,便可以成为一个项目管理软件。是一个问题跟踪和项目管理应用系统,目的是为了让跟踪和管理在项目过程中呈现出来的问题变得简单。
JIRA具有以下特性:
l 管理缺陷,新特性、任务、改进或者其他任何问题
l 干净和强大的用户界面方便商业或技术用户理解
l 工作流定制
l 全文搜索和强大的过滤器(可定制的,可保存的,可共享的,可预定的过滤器)
l 可定制的工作台和实时统计
l 企业级的权限和安全控制
l 方便的扩展及与其他系统集成(包括email、RSS、Excel、XML和源码控制工具)
l 非常高的通知选项配置
l 可以在几乎所有硬件、操作系统和数据库平台下运行
l 提供较多的相关插件,使jira功能更能达到用户要求
JIRA可以根据你的需要提供所需要的信息。下面以缺陷为例,介绍各个角色成员在Jira中可以获得的信息和可以做的事情。
l 管理人员——根据缺陷数据统计结果,了解项目状态
n 查看项目整体问题分布情况
n 查看项目整体问题工作量与进度情况
n 查看某一开发人员在不同项目的开发工作量情况
n 查看项目某个版本的工作量情况及每个用户的缺陷及剩余工作量情况
l 项目管理者——评估缺陷和分配缺陷
n 查看分配给我的问题
n 看某个问题的详细信息
n 分配问题
n 填写问题的预期修复时间及修复估算工作量
l 开发人员——处理缺陷,提交工作量记录
n 接受问题,准备开始处理问题
n 问题处理后,准备在系统上填写处理情况
n 填写处理情况
n 完成处理信息的填写后,准备填写处理问题所花的工作量
n 填写处理问题所花的工作量
l 测试人员——快速的提交缺陷,跟踪缺陷
n 提交问题
n 填写问题详细信息
n 根据不同过滤条件查看不同的问题,准备进行问题的跟踪处理
n 根据不同过滤条件列出的查询结果
n 验证问题处理情况,根据不同工作流节点选择不同的操作
1.2 安装
相比其它管理软件工具,JIRA有个很突出的优点:不用花数小时或数天来搭建你的问题跟踪系统,JIRA可以在几分钟内搭建并运行在你的系统上。下面,介绍JIRA的安装配置步骤。
1. 下载Standalone版本,双击系统自动进行安装
2. 在安装过程中,全部选择next
3. 完成后,弹出一个配置页面
4.选择一个索引目录,并输入licence,执行下一步
5.输入创建的管理员信息,执行下一步
6.在设置邮件服务器页面,在SMTP服务器输入框,要输入IP地址,即:内部邮箱,用户名为内部邮箱用户名(如:xfshen@xx.com),执行下一步
7. 完成安装。
1.3 系统配置
以公司对问题跟踪系统的需求作为案例,介绍如何根据实际需求,在JIRA中进行配置。
1.3.1 设置问题类型
问题来源 |
描述 |
缺陷(Default) |
系统本身的错误 |
Improvement |
在系统需求范围内,但是对表现/实现方式进行了改进。 |
Requirement Change |
对系统原先需求进行了变更,包括新增的需求、变更的需求 |
Issue |
系统开发的任务 |
1.3.2 设置工作流方案
1. 设置状态
在公司中,问题跟踪的状态有Open、Assigned、Accepted、Pending、Closed、Sleeped等。
2. 设置工作流
根据已定义的缺陷处理流程,在JIRA中新增一个工作流设置(不要在原来的工作流上修改),并设置如下。
l 缺陷:
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
分配缺陷(2) >>Assigned |
Assigned (2) |
Assingned |
接受本缺陷 (4) >> Accepted |
确认暂不处理本缺陷 >> Sleeped |
||
Accepted (3) |
Accepted |
缺陷处理完毕 (5) >> Pending |
Pending (4) |
Pending |
验证通过 >> Closed |
验证不通过缺陷 (3) >> Assigned |
||
Closed (6) |
Closed |
激活缺陷 (3) >> Assigned |
Sleeped (7) |
Sleeped |
激活缺陷 >> Assigned |
l 需求变更
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
完成需求变更评估 >> Evaluated |
Evaluated (2) |
Evaluated |
>> Assigned |
>> Open |
||
Assigned (3) |
Assigned |
>> Accepted |
Accepted (4) |
Accepted |
>> Pending |
Pending (5) |
Pending |
>> Closed |
>> Accepted |
||
Closed (6) |
Closed |
l 任务
Step Name (id) |
Linked Status |
Transitions (id) |
Open (1) |
Open |
安排任务 >> Evaluated |
Assigned (2) |
Assigned |
>> Accepted |
Accepted (3) |
Accepted |
>> Pending |
Pending (4) |
Pending |
>> Closed |
>> Accepted |
||
Closed (5) |
Closed |
3.设置工作流配置文件
问题类型 |
选择的工作流 |
Defect |
Defect Track |
Improvement |
Defect Track |
Issue |
Issue Track |
Requirement Change |
Requirement Change Track |
1.3.3 问题属性
1. 严重性
严重性 |
说明 |
Blocker |
灾难——导致系统失效,例如蓝屏或数据发生冲突 |
Critical |
重要——产品不可用,例如导致错误的答案和错误的报告 |
Major (default) |
中等——产品可用,客户说到影响 |
Minor |
轻微——产品可用,没有客户受到影响 |
Trivial |
无足轻重——如果时间允许则修复 |
2. 优先级
优先级分P1-P5五个级别,其中,P1优先级最高,P5最低。
优先级 |
说明 |
P1 |
系统的正常业务流程无法通过,必须马上修改 |
P2 |
系统用户无法正确使用系统;导致用户对系统理解发生偏差;影响客户或公司的形象 |
P3 (default) |
系统用户无法使用部分非重要功能 |
P4 |
不影响系统的正常使用,发布后可以通过打补丁的方式解决问题 |
P5 |
问题对系统影响很小,可以不修改 |
3. 缺陷类别
内容 |
说明 |
程序错误 |
1. 由于程序所引起的死机,非法退出 2. 由于程序未做错误控制而引发的缺陷,如直接进入HTTP404/500界面 3. 因错误操作导致的程序中断或退出 4. 程序接口错误 |
功能实现偏差(default) |
1. 功能未达到详细设计说明书中标明的功能 2. 功能超出了详细设计说明书指明的范围 3. 功能未达到详细设计说明书虽未指出但应达到的目标 |
界面不友好 |
1. 功能可用,但是操作界面不友好、难于理解、不易使用、或者最终用户认为界面不好 2. 提示信息内容不友好、不准确 3. 界面不规范 4. 提示窗口文字未采用行业术语 |
数据错误 |
1. 数据被损坏或未传送到目的地 2. 数据通讯错误 |
文档缺陷 |
1. 文档所用的术语不适用于用户 2. 文档不完整 3. 文档未清楚的表达所描述的内容或内容不正确 |
4. 解决方案
解决方案 |
描述 |
Fixed (default) |
缺陷已正确解决,并经过验证 |
Later |
该问题确实是个缺陷,但是本版本不解决 |
Invalid |
问题的描述不是个缺陷 |
Won't Fix |
该问题确实是个缺陷,但是不打算解决 |
Duplicate |
问题的描述是一个已经存在的缺陷 |
Cannot Reproduce |
按照描述的步骤,不能重现该问题 |
1.3.4 用户组和权限控制
用户组 |
描述 |
权限 |
Administrators |
管理JIRA中的项目、人员、删除缺陷、管理关注者列表 |
Administer Projects Modify Reporter Delete Issues |
Assigners |
修改缺陷、分配缺陷 项目组长 |
Edit Issues Schedule Issues Assign Issues |
Developers |
处理缺陷、填写缺陷原估算工作量、填写缺陷实际处理工作量、管理关注者列表 项目组员 |
Assignable User Resolve Issues Work On Issues View Version Control |
Testers |
修改缺陷、移动缺陷、处理缺陷、管理关注者列表 测试人员 |
Create Issues Edit Issues Move Issues Resolve Issues(含Reopen Issues) Close Issues View Version Control |
jira-users |
浏览项目(含缺陷) |
Browse Projects Add Comments Create Attachments |
1.3.5 设置邮件通知方案
活动 |
通知人员 |
登记缺陷 |
当前缺陷分配人 该缺陷的所有关注者 |
Bug更新/分配/解决/关闭/增加备注/重新打开/删除/移动 |
当前缺陷分配人 缺陷登记人 该缺陷的所有关注者 |
1.3.6 界面设计
1. 开启时间跟踪功能
系统根据该功能的设定,对任务进行时间跟踪
2. 开启附件功能
可以对所有附近进行查看
3. 设置界面设计方案
根据每种不同的问题,选择相应问题需要填写的字段信息。
1.3.7 系统备份
系统提供每天或每周的自动备份,以及可以进行人工备份,管理员进行设置。
1.4 制度要求
1. 某个项目的分配人员,在分配缺陷时,需要执行编辑缺陷操作,在编辑页面输入预期解决日期、原估算工作量,修改分配人。也可以在分配缺陷时,修改缺陷的其他属性。
2. 开发人员接受缺陷,在“可选工作流程”部分点击“接受本缺陷”链接
3. 开发人员解决缺陷后,在“可选工作流程”部分点击“解决缺陷”链接
4. 开发人员每次处理缺陷时,都需要在“操作”部分的“工作日志”栏,点击“完成记录工作”链接,填写“花费时间”、“工作描述”。
1.5 管理
用JIRA来做好BUG管理和项目管理,有这几个重点要做好
1. 定义模块
模块反应了问题出现因素的范围。所发现的问题、所需要进行的任务、改善意见的指向、创意所应用的范围。
2. 定义里程碑
问题、任务、变更都需要分配在某一时段进行处理,时段可以是时间为单位的,周、日、时、分,也可以是版本。如果所有的事情都可以以这两种单位计量的非常清晰。
3. 每日的统计与清理
管理项目要盯,每日的盯是少不了的,看全局的issue数量、关闭情况、进行情况、所剩未解决的数量。你可以有的放矢的去针对这些问题来看。也可以看到,谁的问题比较多,谁的进度比较慢。因为什么问题将影响进度,因为什么问题将影响产品品质。
4. 阶段的统计与整理
阶段,这么划分吧,每周3/2这样两个阶段,这是除了第4点所说的之外的最小阶段吧。以它就是周、版本计划阶段、版本大的阶段划分这样的划分情况。
通过阶段内的完成情况,你可以看到谁处理的问题太多了,谁少一些,谁的难度高一些、谁的能力不足、谁不负责任。哪个部门做得不足,哪一模块需要更多人帮忙。如果说日为单位是盯的话,那么阶段来统计与整理,就是盯之后的分析与解决方案。
5. 最大力度的使用过滤器
Jira提供了较多的查询条件可供个人创建过滤器和与团队分享过滤器。同时还可以自定义自己的主页,相信自定义主页这个功能在google上你已经感受过了。同样这些过滤器可以变为你的主页中的一部分,把你最需要关注的issue都呈现在你每日的第一位置。
1.6 插件
Jira提供了很多插件,方便的扩展及与其他系统集成一下介绍一些有助于项目开发及管理的插件。
1. Mylyn
这是jira与eclipse集成的插件,使用该插件,使开发人员更方面得知自己需要处理的任务信息。
开发人员平时工作很紧张,每天需要打开浏览器登录jira查看自己的问题很麻烦,如果使用该插件,开发人员打开eclipse进行工作时也可以查询到最新的分派给自己的任务,同时也能在eclipse打开任务进行填写完成情况提交,方便快捷。
2. Charting Plugin Pending feature
Jira原本提供了4种报表,通过该插件,jira根据不同需要添加显示了5种报表,但该插件显示的报表暂时都只有英文显示。
3. Edit Attachment Plugin
对已存在的附件添加删除修改权限。
4. Jimex Plugin
提供Microsoft Project文件导入jira的功能,用户可以先在Microsoft Project写好一些工作计划,再将该计划导入到jira即可。
注意:1条任务只能分配给一个人完成,而且在Microsoft Project选择人员资源时需要将该人员的windows用户账户与用户的jira登录名一致。
在jira新建问题时可以将该问题与在Confluence的文档进行连接,如新建一个任务或需求变更,可以将该问题链接到Confluence的需求文档或计划。
Jira首页页面显示Confluence信息,用户可以根据自己进行设置
7. 其它
Jira还提供了与svn、testlink集成的一些插件,正在研究中。
2 Confluence
2.1 介绍
Confluence是一个专业的wiki程序。它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享。 Confluence使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息,文档协作,集体讨论。目前,Confluence被用于广泛地用于项目团队,开发团队。
该软件具备简单但是高效的知识编辑和网站管理功能,只需一个浏览器就可以使大家之间的思想、信息等在一个文档上共享交流。内容安全可以做到页面级。
Confluence具有以下特性:
l 空间:分布式存储知识;
l 页面:用简单的符号来描述你的想法;
l 共享:和你的团队快速的协作;
l 搜索:跨页面,注释和附件间的搜索;
l 组织:高效地创建灵活的页面结构;
l 注释:进行小组讨论;
l 重获:容易找到你需要的信息;
l 导出:页面乃至整个空间可以导出为HTML,PDF,XML文件;
l 重构:高效的信息操作;
l 安全:高级的权限和安全性;
l 通知:通过mail/RSS来跟踪页面的内容变更;
l 定制:颜色,风格,整个站点的布局都可以定制;
2.2 系统配置
在我们团队实际开发中有很多知识需要沉淀及交流,我们可以通过Confluence实现。
2.2.1 空间设置
1、在Confluence系统里按照不同的项目系统开设一个跟项目相关的空间,该空间是用来存放项目有关的资料信息或文档数据,也可以对该系统的一些问题进行交流。
2、Confluence根据一些技术交流开设有关的的技术空间供用户提出自己使用该技术时遇到的问题及其他人提供的帮助,使一些知识能够进行沉淀,交流。
2.2.2 文档处理
导入:
1、 以附件形式进行提交已存在文档。
2、 如果已存在文档是doc文档,用户可以导入到系统的页面。
导出:页面可以导出为word,PDF等文件。
Confluence是一个交流和协作的工具. 参与到Confluence系统中讨论和编辑页面的人越多,得到的价值也会越大. 因为Confluence保留了所有的修改历史记录, 查看谁修改了什么是很方便的, 或者退回任何不应该做的编辑也很方便。
2.2.3 用户和组设置
用户是指可以登录Confluence系统的独立个体. 大多数情况下一个用户代表一个人, 不过您也可以为合作伙伴注册帐号。
为了更加方便的管理,可以将用户添加到组. 在管理页面上的"管理组"部分可以创建新组.一旦将用户添加到组中,那么组中的用户将具有这个组拥有的任何权限。
两个特殊的组: confluence-administrators 和 confluence-users。
confluence-administrators是超级用户组. 这个组中的任何用户有权限在站点中作任何操作, 不管其他的权限设置,在confluence-administrators组中的用户被列在"Contact Administrators"的页面上。
confluence-users是默认的组,所有的新用户被添加到这个组中, 因此无论分配给这个组的什么权限都将默认分配给新注册的用户。
2.2.4 权限设置
一个用户在Confluence系统中能做哪些操作,是由分配给他的权限决定的,管理Confluence系统中用户是通过将适当的权限分配给相应的用户来完成的。在Confluence系统中有三个级别的权限: 全局权限, 空间权限 和页面级的权限。
全局权限
在管理界面的"Global Permissions" 部分可以进行全局权限的分配操作.
* 使用Confluence:
* 创建空间
* 管理Confluence
空间权限
每一个空间有独立的权限进行管理. 空间右边菜单“Browse Space”-》“Space Admin”
* View: 用户能够查看空间的内容.
* 页面: 用户能够查看空间详细信息, 空间里的页面和 blog-posts.
添加- 用户可以创建和编辑空间中的页面.
导出- 用户可以导出空间中的页面.
限制- 用户可以应用页面级的权限.
删除- 用户可以删除空间中的页面.
* Blog Posts:
添加- 用户可以在空间中 post blogs.
删除- 用户可以删除空间中的blogs.
* 注释:
添加- 用户可以在空间中添加注释.
删除- 用户可以删除空间中的注释.
* 附件:
添加- 用户可以向空间中添加附件.
删除- 用户可以从空间中删除附件.
* 空间:
导出- 用户可以导出空间中的内容.
管理员- 用户可以管理空间的权限.
* Mail: 可以删除独立的邮件
如果页面被限制,用户只能填写评论不能对页面内容进行编辑修改。
2.2.5 系统备份
系统提供每天自动备份,以及可以进行人工备份,管理员进行设置。
2.2.6 jira信息显示
Confluence 可以使用宏的方式链接jira,在页面上显示jira的信息,如图
3 Jira与Confluence 集成方案
3.1 使用Crowd实现
Crowd是一个基于web的单点登录工具,它能够简化应用软件的解决方案以及身份认证管理,用户能够方便地单点登录,管理任意数量的用户,登录和密码;集中地管理多种应用的用户,如:JIRA,Confluence和Bamboo;可以连接到多个LDAP服务器,如:微软的目录服务(MS AD); 集成或者导入遗留的用户数据库;控制每一个用户和组对不同应用的访问; 容易将一个新的web应用连接到Crowd应用框架中;
但是,crowd是一个商业工具,需要购买,暂时在网上找相关破解方法较难。对于我们只运用到JIRA,Confluence两个工具使用crowd是否有大材小用。
3.2 使用JIRA +Confluence+mysql配置实现
在网上找到通过一些配置方法,可以将JIRA及Confluence的用户集成进行管理,但是没有了单点登录功能,在jira的页面点击进入Confluence需要再输入登录信息才能进行操作,配置较为复杂。
两个实现方案都能实现jira及Confluence的用户集成管理,不同的是,crowd可以进行单点登录功能,但需要破解,实际使用中是否每个用户都需要用到该单点登录功能,而且视乎使用人员数量进行选择。
4 小结
根据对jira及Confluence的试用,该两个系统联合起来使用基本符合我们开发团队现在的实际需求,但由于现阶段只有我跟几个测试人员在试用,不知道多人使用后情况如何(性能、用户接受情况等),希望能搭建好jira+Confluence集成环境后,建议一些项目成员、测试人员及领导进行试用。