当前位置: 首页 > news >正文

想进大厂, Jira 管理平台你会用么?

作为一名测试工程师,管理bug的生命周期是每天必备的日常工作;所以缺陷管理流程,以及缺陷如何记录并完成跟踪,都是测试必须要掌握的技能,然而管理缺陷需要借助缺陷管理平台。

目前比较主流和常见的一些缺陷管理平台有如下几款:

国内中小型企业:禅道,一个免费开源的系统
外企和大型企业:Jira,不免费
还有其他的:
bugfree
Readmine
Easybug
QC
TAPD
Mantis

本文章给大家重点讲解 Jira这个平台,如何使用和记录跟踪bug。

►►► Jira是什么

Jira是Atlassian(艾特莱森-澳大利亚软件公司)公司出品的一款事务管理软件/缺陷管理类的软件。无论是“需求”/“BUG”/“任务”都是“事务”的一种,所以Jira可以胜任非常多的角色:需求管理、缺陷跟踪、任务管理等等。它特别适合敏捷开发团队使用,大型互联网公司如LinkedIn、Facebook、eBay等内部都在使用Jira。
JIRA产品非常完善且功能强大,安装配置简单,多语言支持、界面十分友好,能够跨平台部署和运行。JIRA 的特性如下:

1、管理缺陷,新特性、任务、改进或者其他任何问题
2、干净和强大的用户界面
3、灵活的工作流定制
4、全文搜索和强大的过滤器
5、企业级的权限和安全控制
6、非常灵活的邮件通知配置
7、可以创建子任务
8、方便的扩展及与其他系统集成:包括 email 、LDAP 和源码控制工具等;
9、丰富插件库
10、项目类别和组件/模块管理
11、可以在几乎所有硬件、操作系统和数据库平台上运行

►►► JIra基本概念的介绍

1、项目(project)

在JIRA系统中的项目概念是一组问题单(Issue)的集合,项目可以根据组织需求来定义,例如:软件研发项目,市场营销活动,一个请假管理系统等。每一个问题单属于一个项目。每个项目需要有一个名称(例如:Website Issues)和关键字(Key,例如WEB)。项目的关键字会成为项目问题单前缀,例如WEB-101, WEB-102等

在这里插入图片描述

2、问题 /事件 (Issue)

JIRA跟踪问题,这些问题可以是bug,功能请求或者任何其他想要跟踪的的任务。issue的类型主要包括:
Bug — 故障,功能失效:Bug可由任何发现之人录入。–测试主要关注
Improvement — 提升,既有功能增强
New Feature — 新功能
Task — 任务,用来管理开发/测试的基准与进度
Task分配到人,以便进行管理团队成员每日都应该更新自己的Task使用时间和进度。SM,PM及TL可以查看状态信息,以便在第二天站会的时候能有效的解决问题。
Sub-task — 子任务,进行任务分解

在这里插入图片描述

3、版本 (Version)

对于一些类型的项目,尤其是软件研发项目,把一个问题单关联到一个特定的项目版本(例如:1.0 beta, 1.0, 1.2, 2.0)会非常有用。

问题单(Issues)有两个跟版本有关的字段:
影响版本(Affects Version(s):这个是要说明受问题单影响的版本.举例而言,一个软件Bug可能影响1.1和1.2版本。
修复版本(Fix Version(s)):这个是为了标明这个问题单在哪一个版本中被修复。
比如Bug的影响版本号是1.1和1.2,但是可能会在版本2.0中才被修复。没有修复版本号的问题单会被归类为未规划(Unscheduled)。

版本可以是下面三种状态之一:发布(Released),未发布(Unreleased)和归档(Archived)。
版本会有一个发布日期,并且如果在发布日期之后还没有按时发布,这个状态会自动变为过期状态(overdue)。

4、工作流(Workflow):

JIRA中的工作流由一系列的状态(statuses)和变迁(transitions)构成,一个问题单在其生命周期中会经过这些状态和变迁。
不同项目模板会有不同的内置工作流,另外,也可以自己定义工作流。但是,一般,用默认就可以了。

图片

5、状态(Status)

每一个问题单都会有一个当前的状态,状态说明了当前Issue的处理状态。这个可以自己定义!!

一个问题单开始阶段可能是Open或者To Do状态,然后可以转移到Resolved或者Closed,具体的迁移依赖于系统流程配置的方式。

状态分为:TO DO(待定),Progressing(进行中),Resolved(已解决),Done(已完成),Reopen(重新打开),Pending(搁置),Feedback(反馈)。用户可以通过浏览Issue页面中的状态操作按钮,改变当前的状态,操作为【open】【progress】【reopen】【pend】【resolve】【Feedback】【Close】。状态如下分类:

TO DO/Open(待定):每一个新建的Issue初始状态都为TO DO/Open。
Progressing(进行中):Issue(事件)指定给解决人之后,修改状态为Progressing,表示该Issue正在解决的过程中。
Under Review(在审核):与Processing类似。测试人员在验证
Resolved(已解决):当解决人把指定的Issue解决完成后,修改状态为Resolved,表示该Issue已经解决完成,可以进行测试或验证了。
Done(已完成):测试人员或验证人员(通常是PM),确认该Issue正确后,修改状态为Done,表示该Issue已经被验证完成,是一个合格的Issue。原则上,解决人不能够直接close指定给自己的Issue,必须由指定给自己的reporter来验证。

Reopened(重新打开):验证不通过的Issue,修改状态为reopened,表示该问题仍未解决,可以指回给解决人继续解决。
Pending(搁置):无法处理,暂时搁置的问题,修改状态为pending。
Feedback(反馈):解决人对问题有疑问的问题,修改状态为Feedback,并指回给reporter。
Cancelled(取消):问题单被取消了,但是也可以被再次打开
Approved(审核通过):任务审核 通过了
Rejected(拒绝):任务或者问题被拒绝了

6、决议(Resolution)

一个问题可以有多种解决结果,其中只有一种方法是修复。一个解决结果通常会在状态变更时候被设置起来。
系统默认的问题解决结果会有以下几种:

Fixed — 修复
Unresolved – 未修复的状态
Won’t Fix — 不用修复。例如这个问题所描述的现象已不再有影响了。
Duplicate — 重复。同其它已经存在的问题重复了,推荐把相关的单子链接起来.
Incomplete — 未完成。没有足够的信息继续完成这个问题。
Cannot Reproduce — 不能重现。如果以后有更多信息可以继续可以重新打开这张单子.
Won’t Do — 不做。类似于不用修复的方案,试用于软件项目的默认状态。

注意,resolution也可以自己定义。一般不建议弄太多的状态,不方便进行跟踪。

►►► Jira创建缺陷实战

现在我们来演示一下测试发布一个bug到Jira系统的过程:

1、使用测试账号登录到Jira;

2、点击菜单栏里“新建”创建issue;

3、选择对应项目和issue类型(bug),依次输入一下内容:

bug标题:简明扼要的语言描述清楚这个bug的操作和问题;

步骤描述:测试发现这个bug的步骤,需要尽可能的详细;

优先级:开发修复这个bug的优先级,一般由开发老大自己的设置;

工作量预估:开发修复这个bug的工作量的预估时间;

测试环境:bug发现的时候浏览器的版本、电脑的系统版本等这些环境因素,为了帮助开发尽快复现这个bug;

附件:bug的截图和视频等证据和素材,可以添加到附件里;

影响版本:这个bug影响的版本号;

预计修复时间:开发预计修复这个bug的时间;

相关的bug:有跟这个bug有关系的bug,比如阻塞了的bug,重复的bug等;

指派人员,指派给对应的开发,当然用户账号需要提前添加到jira里。
图片

图片

发布完成之后,bug就会显示在jira的issue模块里:

图片

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

在这里插入图片描述

在这里插入图片描述

相关文章:

  • base64图片的优缺点(雪碧图)
  • 数字IC面试总结,看看你掌握几个?
  • 助力Java开发者成功,微软是认真的
  • java健身房管理系统设计计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • (超详细)语音信号处理之特征提取
  • Databend 特性系列(1)|Databend 数据生命周期
  • 快速排序的三种单趟排序思想的实现与优化 - 递归与非递归
  • MATLAB系统辨识工具箱-System Identification Toolbox
  • Android 10 应用层如何操作设备节点/sys/devices
  • 使用 TensorFlow.js 在浏览器中进行自定义对象检测
  • CopyOnWriteArrayList是如何保证线程安全的?
  • Synopsys新思科技2023“向新力”秋季校园招聘内推
  • 硬盘分区误删数据如何恢复呢?
  • 基于Java毕业设计智能超市导购系统源码+系统+mysql+lw文档+部署软件
  • python数据分析—删除value=0的行
  • 4. 路由到控制器 - Laravel从零开始教程
  • ES2017异步函数现已正式可用
  • es6(二):字符串的扩展
  • go语言学习初探(一)
  • JavaScript设计模式系列一:工厂模式
  • LintCode 31. partitionArray 数组划分
  • linux学习笔记
  • MD5加密原理解析及OC版原理实现
  • Quartz初级教程
  • session共享问题解决方案
  • Vue实战(四)登录/注册页的实现
  • 从输入URL到页面加载发生了什么
  • 搞机器学习要哪些技能
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 面试遇到的一些题
  • 前言-如何学习区块链
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 我看到的前端
  • 原生JS动态加载JS、CSS文件及代码脚本
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragma预处理命令
  • #Ubuntu(修改root信息)
  • $$$$GB2312-80区位编码表$$$$
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (poj1.3.2)1791(构造法模拟)
  • (zt)最盛行的警世狂言(爆笑)
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (原創) 未来三学期想要修的课 (日記)
  • (转)socket Aio demo
  • .bat批处理(六):替换字符串中匹配的子串
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET Core Web APi类库如何内嵌运行?
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 服务 ServiceController