【测试】测试管理工具之禅道的基本使用
1.常用测试管理工具
测试管理工具是指在软件开发过程中,对测试需求、计划、用例和实施过程进行管理、对软件缺陷进行跟踪处理的工具。通过使用测试管理工具,测试人员或开发人员可以更方便的记录和监控每个测试活动、阶段的结果、找出软件的缺陷和错误,记录测试活动中发现的缺陷和改进建议。
测试管理工具应该具有的基本功能:
测试需求管理、测试用例管理、测试过程管理(计划、任务等)、缺陷管理、报表管理、权限管理;
主要有的工具有:
JIRA:JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。测试用例管理需插件;
bugzilla(开源):
Bugzilla是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。没有测试用例和测试过程的管理;
禅道(国产开源+商业):
禅道是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,实现了软件的完整生命周期管理。
这里主要介绍禅道工具的使用
2.禅道项目管理软件的主要功能列表
- 产品管理:包括产品、需求、计划、发布、路线图等功能;
- 项目管理:包括项目、任务、团队、版本、燃尽图等功能;
- 质量管理:包括bug、测试用例、测试任务、测试结果等功能;
- 文档管理:包括产品文档库。项目文档库、自定义文档库等功能;
- 事务管理:包括todo管理,我的任务、我的Bug、我的需求、我的项目等个人事务管理功能。
- 组织管理:包括部门、用户、分组、权限等功能。
- 统计功能:丰富的统计表。
- 搜索功能:强大的搜索,帮助您找到相应的数据。
- 扩展机制,几乎可以对禅道的任何地方进行扩展。
- api机制,所见皆API,方便与其他系统集成。
3.禅道的基本使用
3.1 禅道使用的基本流程
禅道管理软件中核心的三种角色:产品经理、研发团队和测试团队;这三者之间通过需求进行协作,实现了研发管理中的三权分立。其中产品经理整理需求,研发团队实现任务、测试团队则保障质量,三者的管理图如下:
基本流程如下:
- 1.产品经理创建产品;
- 2.产品经理创建需求;
- 3.项目经理创建项目;
- 4.项目经理确定项目要做的需求;
- 5.项目经理分解任务,指派到人;
- 6.测试人员测试,提交bug;
3.2 敏捷开发及scrum简介
禅道的设计理念是基于scream的,所以在禅道的基本使用流程之前,了解敏捷开发和scream对禅道的使用时有帮助的;
3.2.1 敏捷开发
我们比较熟知的软件项目管理方法是瀑布。其基本流程是需求-> 设计->开发->测试。基本假设只要把每一个环节都做正确,那么终得到的结果也是正确的。瀑布开发有非常成功的案例,比如微软。但从总体来讲,瀑布项目失败率比较高。国外的软件先行者们针对瀑布开发中暴露出来的问题进行了一系列的探索、思考和总结,终提出了Agile的概念,中文翻译为敏捷开发。敏捷开发有很多种方式,其中scrum是比较流行的一种。
3.2.2 scrum
1.scrum里面的角色
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成;
- 其中product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
- scrum master 负责召开各种会议,协调项目,为研发团队服务。
- 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
2.迭代开发
与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。
3.scream的基本流程
scrum的基本流程如上图所示:
- 产品负责人负责整理user story,形成左侧的product backlog。
- 发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
- 迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,终每个任务都有明确的负责人,并完成工时的初估计。
- 每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
- 演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
- 回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改进的效果。
3.3 禅道和scrum的对应关系
禅道在设计的时候,基础框架是基于scrum的,同时又补充完善了测试,文档,发布,计划等功能。但是在使用禅道的时候,不一定要用敏捷,还可以使用禅道来进行瀑布式管理,也可以使用的很好。正是基于这一点考虑,我们在设计禅道的时候,都是采用了比较中性的概念,而不是scrum里面特有的概念。
3.3.1 概念的对应
scrum |
禅道 |
备注 |
product |
产品 |
禅道里面使用了产品的概念。 |
user story |
需求 |
其实标准的翻译应该为用户故事,不过禅道还是采用了比较中性的概念。 |
sprint |
项目 |
很多朋友对产品和项目的概念不是很清楚,其实有了这个对应关系就很容易理解了。 |
task |
任务 |
这两个概念是一致的。 |
team |
团队 |
|
burndown chart |
燃尽图 |
|
潜在交付物 |
发布 |
|
3.3.2 角色对应
scrum |
禅道 |
备注 |
product owner |
产品经理 |
禅道使用的还是比较中性的产品经理的概念。 |
scrum master |
项目经理 |
|
team |
团队成员 |
|
3.3.3 禅道新增的概念
除了scrum基本的概念外,禅道还补充完善了下面概念,以达到对软件生命周期的完整覆盖。
- 产品发布计划
- 产品路线图
- 项目版本
- bug
- 测试用例
- 测试单
- 测试结果
- 文档
- 待办
3.4 禅道管理的具体流程
流程主要可以分为四条线:产品线、项目线、开发线、测试线
产品线
- 产品经理要与运营或者外部用户沟通,完成需求原型;
- 建立产品,对产品整理研发计划并整理每个计划中需要完成的需求;
项目线
- 项目经理进行创建项目,关联到产品,确定本次项目中需要完成的产品需求
- 组建项目团队(研发、测试人员),要选择哪些人可以参与到这个项目中来;
- 确定项目要完成的需求列表:关联产品、关联需求;
- 组织进行任务的分解:需要将所有的任务都分解出来,任务分解的粒度是越小越好;
- 每天要召开站立会议,沟通解决问题,会议时间要控制在15分钟之内;
- 要通过燃尽图了解项目的进度;
- 项目结束之后要召开演示会议和总结会议
开发线
- 参加项目计划会议,分解任务,资源领取自己喜欢的任务;
- 每日站会(敏捷思想scrum):昨天的进度,遇到的问题,今天的安排;
- 更新任务状态,生成燃尽图;
- 打包创建一个可用的版本提测;
- 当版本创建完毕之后,就是申请测试;
- 如果有bug的话,要去解决bug,最后生成文档;
测试线
- 维护bug视图模块:以便更好的组织管理bug;
- 创建测试用例:禅道中的测试用例,彻底的将测试用例步骤分开,每一个测试用例都有若干个步骤组成,每一个步骤都可以设置自己的预期值。这样可以非常方便进行测试结果的管理和Bug的创建;
- 管理测试版本:当开发人员申请测试之后,会生成相应的测试版本给测试人员。这时候测试人员要做的就是为这个测试版本关联相应的测试用例。如果这个测试任务需要多人来配合完成,则需要将相应的用例指派给相应的人员来进行完成,或者自己领取相应的测试用例;
- 执行用例:如果一个用例执行是失败的,就直接转Bug;最后是测试版本生成测试报告;
- 提交bug,如果开发人员解决bug之后了,再次验证bug,最后是验证bug,如果没有问题,进行关闭;
- 有明确的客户:相关人员为客户演示(演示会议)
- 已上线:研发测试参加总结会议,汇总本次开发过程中的问题以及遗留情况形成新的改进计划,将改进计划纳入下次的迭代中;
注:参考禅道使用的官方网站,具体的内容也可见官方网站;