博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝bug管理系统
阅读量:6261 次
发布时间:2019-06-22

本文共 1607 字,大约阅读时间需要 5 分钟。

经过了近2年的努力,多数研发团队都用上了技术质量部自主研发的管理工具Kelude_Issues,告别了商业工具和其他的开源工具。这个过程中Bug跟踪流程也发生了比较多的变化,下图是现在Kelude_Issues的Bug跟踪流程图:

  这个流程还是有着比较多的“淘宝特色”,我想可能很多用惯了其他Bug管理产品的同仁,看着这个图会感觉不太习惯,觉得状态比较多,箭头也多,有点绕。

  在经典的Bug跟踪流程里面,对于“状态”概念的定义,是比较清楚的,一般来说这些状态会比较常见,当然由于工具的不同,所用的英文单词也会有些差别,这个不用纠结,领会精神。

  New:新创建的Bug
Open:经过了PM的确认,确实是个Bug
Assigned:已经分配给开发工程师进行解决
Resolved:开发工程师解决了,等待工程师验证(注意是解决,不是fix)
Closed:通过了验证,关闭

  这里最容易引起混淆的概念,就是“Resolved”——被解决过了。最常见的解决方式,就是Fixed,被修复了;有时因为一些原因,暂时无法修复,只能Later,其实Later也是一种解决方式,常见的解决方式有以下几个:

  Fixed:被修复了
Later:暂时不修复,后面的版本再修复
Wont Fix:不修复了,其实是一种Later的特例,无限期Later
Invalid:根本不是Bug,往往由于对需求的误解
Duplicate:重复的,相同的Bug已经被提交过一次了
Not Reproducible:无法重现,在淘宝叫做Works for Me

  严格来说,这一组“解决方式”,是属于同一层面的,它们都需要由测试或者PM来验证,如果验证不通过,那就回到Open状态,验证通过就Close。而在淘宝Bug流程中,这些“解决方式”都被设置成了“状态”,其实也挺好,更加直观。但是这里有一个很要命的问题,就是那个“wont fix”状态被刻意放大了,跳了出来成为了一个抽象的概念,这让很多开发工程师非常困惑,到底wont fix代表什么意思?

 由于wont fix被错误的使用,引起了比较多的争议,记得当初优昙狠狠的挑战了一把,争论了很久,现在想来还是有道理的。也有很多开发表示,为什么我要Invalid,还要经过wont fix呢,多不方便,于是我们做了调整,变成了下面这个样子:

  这样虽然解决了上面开发提出问题,但是这个流程依然有点不伦不类的,所以我们咬咬牙,继续改,彻底的改,成了这样的流程:

  这个流程和经典的流程相比,还是有一些区别,我们依然选择把一些常用的“解决方式”,直接定义为“状态”,这样大家就不用理解那个抽象的“Resolved”了。当然,我们有一点跟经典Bug流程吻合,就是最后Bug都要回归Closed状态,之前大家都习惯了“只有Fixed才能Close”,这个习惯需要重新适应一下。

  这里有人会问,最后都是Closed,怎么区分Later呢,我需要把Later的全翻出来,怎么找?这个问题还是比较好解决的,只要在Close Bug的时候,把当前的状态也记录下来就可以了,这样大家就能看到类似于Closed(Fixed)、Closed(Later),这样就比较好区分了。

  还有一个概念我们也比较常用,就是Reopen,目前Open和Reopen是两个独立的状态,但是它们的含义却是很接近的。由于我们把Reopen视为修复失败,是一种过错的表现,以后我们只要关注Fixed到Open和Closed到Open的记录即可,不用为了“度量”,单独定一个状态出来。



====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

转载地址:http://qfesa.baihongyu.com/

你可能感兴趣的文章
你不知道的KVO的内部实现
查看>>
转】MyEclipse10安装Log4E插件
查看>>
windows server2012r2 安装NET Framework 3.5
查看>>
vss整合配置连接到Myeclipse中以及中文配置
查看>>
[osg][osgEarth][原]基于OE自定义自由飞行漫游器(初级版)
查看>>
Java遇见HTML——JSP篇之JSP基础语法
查看>>
导出一个数据库中的表中的某一条数据
查看>>
JQuery初体验
查看>>
全球顶级黑客对决AI GeekPwn2017黑客大赛看点全面曝光
查看>>
浅析前端开发中的 MVC/MVP/MVVM 模式
查看>>
toString、equals和hashCode重写
查看>>
sizeof 和strlen的区别
查看>>
Python与C++引用分析
查看>>
误删一个用户 引起数据不准确问题
查看>>
一场失败的拔河比赛
查看>>
IOS开发工程师欢迎你加入宏略信息
查看>>
java 判断当前时间符合cron时间表达式
查看>>
Telnet协议的实现
查看>>
我的友情链接
查看>>
(一)指南一、初学者指南1、简介2、安装
查看>>