缺陷管理

缺陷管理是最开始也是最基础的测试必备技能。在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理。
在我眼中的缺陷管理包含以下几层概念:

  1. 缺陷的描述
  2. 缺陷的定义
  3. 缺陷的跟踪
  4. 缺陷的度量分析

也许你觉得作为测试提一个缺陷很简单,但是要提一个好的缺陷其实是非常难的。在这里其实还有个隐藏的属性,叫做缺陷的概念,也就是说什么是缺陷?
一般来说缺陷有两种情况,一个是违反了所谓的规则,还有一种是我们无法接受这样的情况。比如对于美来说,每一个人心目中都有一种对美的定义,你会觉得她很美,但是换个人来看待就未必。所谓的情人眼里出西施应该是指个人需求下的狭义定义。而大众情人就是那种所谓的约定俗成的广义规则。
我们做一个软件面向的对象是不同的,甚至我们需要超出用户需求来做一点东西的,所以对于缺陷的判断成为了一个非常困难的事情,这里只能说对于缺陷这种东西,不要用肉眼去看要用心眼去看。

缺陷的描述

关于缺陷的描述,无非就是当别人看到你写了一堆关于这个缺陷的巴拉巴拉后,是不是明白了5w1h,然后能够根据你的建议开始进行缺陷的修改。本质上有一点就是缺陷的描述就像议论文,一定要有说服力。如果你写出来的东西都不能让别人觉得有道理,你又怎么让别人愿意按照你的逻辑去修改这个缺陷呢。
为了方便把缺陷写的更容易理解,所以现在无论是Excel的记录方式还是使用系统的记录方式,我们都会将一个缺陷分割为很多个属性,来便于管理和理解,常见的属性包括:
标题,详细说明,版本,环境,发现人,发现时间,修复人,修复时间,修复说明,状态,严重级别,优先级别等。
本着不浪费笔墨和浪费阅读者理解的前提下,缺陷应该是写的越简单越说明问题是最好的。但是在我遇到的大多数情况下,作为小白写出来的缺陷往往是无法阅读和理解的,因为小白总会觉得自己写出来的东西别人肯定看得懂,而忽略了很多背景或者参考的说明,常见的问题无非是:
我的xx功能出错了;点击某个按钮无效果;无法启动软件等。
包括在各个QQ群的提问,也经常会出现这样的无头无脑,毫无内涵的提问,让别人完全无法回答。甚至常常让我想当你在工作几年后开始学习自动化或者性能测试的时候,连一个问题或者缺陷都无法合理明确的描述出来,你做自动化和性能测试能靠谱么?能解决问题么?
但是写好一个缺陷又不是简单看几个例子就行的,它需要时间和足够多的练习才能做到,让别人看了会明白what、why、where、when、who以及how,甚至还能明白什么是对的,并且应该做成什么样。
如果想要提升自己的缺陷描述能力最简单的方法就是学会吐槽,而且要吐槽吐的到位,那么你就能在生活中反复的锻炼如何使用最精简的语句来说明问题的关键,而不是总在问题的外围徘徊;而同样命中靶心的另外一个要素就是你能从本质知道这个问题的“身世”,就像你手中的一个小骰子,只能有这样几种结果。
等你能够通过吐槽收集能量让你的呆毛蹦起的时候,你就能完成让别人俯首称臣,乖乖改你的BUG了。

缺陷的定义

在这里缺陷的定义主要是指如何判断缺陷的严重级别和优先级别,而不是这个问题是一个建议还是一个缺陷?请注意我用了建议和缺陷来区分问题的两种情况。这和前面说到的有类似之处到底你确定了这是一个问题,还是你觉得这样可能不太合理。
当一个问题被提出,该问题必须要让别人非常明确的看出它到底会带来什么后果,需要在什么样的时间内修复,这样才能有效的让别人重视它。看过蝴蝶效应的朋友应该知道,一个问题如果被轻视,那么随着放大后其结果可能是非常严重的,也许只是一个很小的疏忽或者不重视。
对于提交缺陷的我们来说,需要有能力去评估一个问题的优先级(是不是应该立即修复)和严重级别(它会带来什么样的后果),而优先级和严重级别之间又不是完全强联系也并非完全没有联系。
或许大家对优先级和严重等级的概念会混淆,觉得有点模糊。一般大家会觉得严重等级高的BUG,优先等级一定为高。但这仅是一个包含于的关系,会存在这样一种情况严重等级低(或许只是小的界面问题,例如图片在页面的位置不精确),但优先等级高。或许这样说比较抽象。那么我们来举个例子,INTEL 对于企业LOGO 的精确度要求很高,因为这代表了企业形象。所以有关于LOGO 的相关BUG对于系统的严重等级为低,但优先等级都是高的。 缺陷的属性与你所属的行业以及公司文化也是息息相关的。
当没有经验的时候,或者你无法知道该问题是否在关键路径以及影响的后果时,问问有经验的人是比较好的方式。而这也是测试人员的一个基本功,能够分清楚轻重缓急。

缺陷的跟踪

可能大家对缺陷的跟踪相对来说比较熟悉,因为基本上如果工作了都在使用缺陷系统,不断处理着缺陷的生存周期(new,fix,reopen,close等等),缺陷生存周期的目的是为了方便我们跟踪一个缺陷的不同状态,判断其所在的阶段。
而在不同公司,不同的流程下,该流程也不尽相同,合适自己公司的才是最好的。好比缺陷跟踪就像是快递跟踪一样,以前我们发一封邮件,完全不知道对方什么时候收到,现在这封邮件到哪里了,而现在我们可以非常方面的在网站上随时查询得到该快递所在的具体位置及签收过程。
那么对于小白来说首先要理解缺陷跟踪及状态的原理,进一步还要能配置管理这样的系统,帮助公司完成这样的管理工作。
缺陷的度量分析
在有了好的缺陷描述,好的定义和跟踪后,那么基本上缺陷已经可以很好的在某个系统内运转起来了,接着我们要做的事情说得好听点就是大数据分析了。从这些项目数据中,我们要分析出一些藏在数据后的规律,比较常见的包含:

  1. 常见缺陷导致的原因
  2. 常见缺陷被修复的时间
  3. 系统每天新增或修复的缺陷数
  4. 缺陷的收敛情况

这些数据可以有效的帮助我们看出一些以前看不出的问题,但是这个在中国效果并不明显,因为我们的数据进入就存在不少的国情,而在分析及结果处理上也存在着相应的国情,所以一般公司在做度量分析的时候,往往是越做效果越差,吃力不讨好。但是不得不说不能因为它效果不好而不做它,如何正确的采集、分析数据,需要一些时间和团队成熟度后,才能发挥其效果的。
对于缺陷管理这次我提的内容会比较概念点,因为缺陷本身的例子外面很容易查找到,而大家也会有一些自己比较成熟的看法,让我想起如何拍一张好照片的问题了,答案是啥呢?
如果你想拍一张好照片,请先拍1000张照片,选最好的哪一张作为参考!
如果你想写一个好缺陷,请先写1000个缺陷,选最好的哪个缺陷作为参考吧!

结语

跟大家推荐一个学习资料分享群:175317069,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!

如何写一个好的缺陷,大牛都是这样的做的相关推荐

  1. 3个可以免费学习Python的网站,每一个成功的Python大牛都去过!

    想要学好Python,只靠看Python相关的书籍是远远不够的!互联网时代,我们还要充分利用网络上的免费资源,不然怎样成为一名优秀的Pythoner呢?今天就为大家分享几个神奇有效的Python学习网 ...

  2. 我假期去实习了,岗位是网络安全工程师,请帮我写一个实习经历报告,描述一下我具体做了什么,最后写一下总结和体会,一共大约800字。...

    当我获得网络安全工程师的实习机会时,我非常兴奋.我知道这将是一个有挑战的实习,但我也期待在实践中学到更多知识. 在实习的第一周,我接受了公司的培训,学习了网络安全的基本知识,如密码学.攻击类型和漏洞等 ...

  3. [html] 切页面时,每次都动手刷新看效果很麻烦,如果要让你写一个实时刷新预览的工具你该怎么写?

    [html] 切页面时,每次都动手刷新看效果很麻烦,如果要让你写一个实时刷新预览的工具你该怎么写? node包http, scoket.io建立服务静态页面增加webSocket,服务器推送后执行刷新 ...

  4. * 四、要求写一个方法:method。该方法要求传入一个数字n(n要小于10), * 该方法能够计算得到所有各位上的数字不超过n且每一位的数字都不重复的三位数的个数。

    package Day04;/*** 四.要求写一个方法:method.该方法要求传入一个数字n(n要小于10),* 该方法能够计算得到所有各位上的数字不超过n且每一位的数字都不重复的三位数的个数.* ...

  5. 打印工资条怎么做到每个人都有表头明细_朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?...

    本文说明 今天和一个朋友吃饭,她说我经常使用Excel制作工资条,但是每个月都要做一遍,你能不能用python写一个代码,能够自动化完成这个工作.这当然可以啦,就是这么牛逼! 我们先来看看原始数据是什 ...

  6. 编程:请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”...

    Question:使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?". Answer: public ...

  7. python爬虫都能干什么用_5 行代码就能写一个 Python 爬虫

    欢迎关注我的公众号:第2大脑,或者博客:高级农民工,阅读体验更好. 摘要:5 行代码就能写一个 Python 爬虫. 如果你是比较早关注我的话,会发现我此前的大部分文章都是在写 Python 爬虫,前 ...

  8. 给定两个有着相同长度且都在字典内的单词,要求写一个方法来把一个单词变型成另一个单词。 一次只能转换一个字母,且每次生成的单词必须在字典内...

    2019独角兽企业重金招聘Python工程师标准>>> EXAMPLE Input: DAMP, LIKE Output: DAMP -> LAMP -> LIMP -& ...

  9. html文标题党,标题党:如何写出一个SEO与新媒体传播都吸引人的标题! - 蝙蝠侠IT...

    标题党,这里先简述一下,大部分作者往往将标题党定义为那些利用浮夸标题吸引眼球的写手,基本上文不对题,但实际上我认为"标题党"这个词应该作为中性词. 道理很简单,在任何时期,我们都得 ...

最新文章

  1. 同样在JavaScript中
  2. 爬取虎牙之二:试用htmlunit模拟js爬取ajax页面
  3. SAP 质检使用非物料基本单位
  4. Asp程序做页面的301跳转,使得cnasda.com跳转到www.cnasda.com
  5. “手机”是个什么机器?
  6. 在linux中查找运行程序句柄,如何查找我的进程在Linux中打开的文件句柄?
  7. 【Java】用while循环实现1+2+3......+100
  8. Keil MDK浮点数支持不正常的解决方案
  9. 面向对象12:==运算符和equals()方法、toString()方法
  10. Nginx之4包罗万象 - (虚拟主机)
  11. CSS标签选择器→教你如何使用
  12. h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
  13. Aria2保姆级教程
  14. 元界Metaverse清单:你需要知道的一切
  15. 诡辩六论——微信陌陌如何话题不断的聊天
  16. 经典计算机模型,经典Volterra模型分界线的计算机模拟
  17. 计算机打印中 纸张不出来,打印机总是卡纸怎么办,打印机卡纸拿不出来怎么办...
  18. 沸点Java笔试考核
  19. 图解 CMMI 2.0之(四)能力等级和成熟度等级
  20. 数据抓包工具(http/https)Charles,wireshark,fiddler的安装使用和区别对比 链接:https://www.365jz.com/article/24504 著作权归作者

热门文章

  1. 如何在wince下添加和删除驱动(作者:wogoyixikexie@gliet)
  2. python汇率兑换_美元与人民币汇率 Python
  3. 用 SLF4j/ Logback打印日志
  4. SSM 博客系统开发实战
  5. MIT视频新研究:让7000多人看了48个广告,发现「眼见为实」并不成立
  6. 在Word2007文档中设置页面边框
  7. hibernate中lazy的使用
  8. 论微信小程序安装SSL证书的重要性
  9. Kappa(cappa)系数只需要看这一篇就够了,算法到python实现
  10. jMonkeyEngine译文 FlagRush1——通过SimpleGame创建你的第一个应用程序