十多年前,客户在使用过程中遇到了 Bug,直接就截个图,或者是用 Word 文档整理在一起,从 QQ 或者邮件上把 Bug 信息发送给开发,开发收到后再修复更新上线。

而现在正规的软件项目已经不会再用这种原始的方式来报 Bug 了,而是会借助测试工具来帮助报告和跟踪 Bug,即使你偶尔能看到有项目还在采用原始方式报 Bug,你肯定也会觉得这样做不专业。

但不知道你有没有仔细想过这个问题,为什么现在不通过 QQ/ 微信 / 邮件报 Bug,又有哪些测试工具可以帮助你更好地发现、报告和跟踪软件中的 Bug 呢?今天我们会展开讨论这个问题。

Bug 跟踪工具

我想你对与 Bug 这个词一定不陌生,它是我们软件中的缺陷或错误。这个词的诞生也很有意思。1947 年 9 月 9 日,一只小飞蛾钻进了哈佛大学的一台计算机电路里,导致系统无法工作,操作员把飞蛾贴在计算机日志上,写下了“首个发现 Bug 的实际案例”。

虽然 Bug 的历史已经有 60 多年了,然而 Bug 跟踪工具却没有出现太久。软件项目中最早也是通过邮件、即时通讯等原始方式报告 Bug,直到 1992 年才有第一个专业的 Bug 跟踪软件GNATS。

在这之后才逐步有了像 Bugzilla、Jira、MantisBT 等专业的 Bug 跟踪工具。而现在,Bug 跟踪工具已经成为软件项目中必不可少的工具之一。那么,Bug 跟踪工具是怎么逐步替代 QQ、邮件等方式来处理 Bug 的呢?

为什么要使用 Bug 跟踪工具?

我们在上一篇学习了软件测试相关的理论知识,软件测试的主要工作就是发现 Bug、报告 Bug 和跟踪 Bug。测试人员发现 Bug 只是第一步,还需要报告 Bug 让开发人员可以知晓和定位,并且跟踪整个 Bug 修复的过程。

用 QQ 或者邮件报 Bug 的这种方式,看起来快捷简单,但是问题很多:

Bug 不能有效被跟踪,不知道一个 Bug 是不是已经被修复了;
效率很低,开发人员频繁的被这样的报 Bug 的消息打断,不得不停下手头的工作去甄别 Bug;
不能直观的了解当前项目的 Bug 状态,比如说:修复了多少,还有多少没有修复,近期 Bug 数量是增加了还是减少了。
不难看出,通过 QQ 等方式报告的 Bug,都是文字配合图片等信息,很难检索和分类,而 Bug 跟踪工具,采用结构化的数据来定义 Bug,每一个 Bug 都有一些关键的信息可以对 Bug 进行分类和检索。

在 Bug 跟踪工具使用中,一个基本的 Bug 信息包括:

标题;
描述(包括期望结果、实际结果和重现步骤等关键信息);
优先级;
指派人;
状态(New、Open、 Rejected、Fixed 等);
其他。
那这样的话,就很容易的对 Bug 进行分类和检索,比如说:

张三想查看所有分配给他的 Bug,那只要列出所有指派人是张三的 Bug;
想列出所有未解决的 Bug,只要列出所有状态不是 Close 或 Rejected 的 Bug 即可。
这样对于开发人员来说,可以直观的看到自己有哪些 Bug 需要处理,Bug 的描述信息也可以帮助重现 Bug、快速定位到 Bug 的原因;对于项目经理或者测试人员来说,可以直观的看到哪些 Bug 还没解决,及时了解项目进展。

在软件项目中,要把好的实践流程化,把好的流程工具化。Bug 跟踪工具则很好的贯彻了这一点,将 Bug 的解决过程流程化。

你平时在 Bug 跟踪系统中看到的 Bug 状态,看起来只是一个有限的状态列表,但背后其实是一套解决 Bug 的流程。就像下面这张图表示的这样,一个 Bug 从创建到最后结束,其实是有一个完整的流程的。

通过这样的流程,开发人员就可以集中对 Bug 进行分配、按照优先级分别解决,而测试人员则可以第一时间知道 Bug 处理的状态变化,及时验证,方便跟踪整个过程。

使用 Bug 跟踪工具的注意事项

报告 Bug 的目的是为了能跟踪 Bug,以及帮助开发人员重现直到解决问题。要想做到测试和开发高效协作,这里面有一些需要注意的事项。

首先,所有的 Bug 都应该通过 Bug 跟踪系统管理和跟踪,不应该再通过 QQ/ 微信 / 邮件的方式跟踪 Bug。如果客户、同事通过 Bug 跟踪系统之外的其他途径反馈 Bug,应该统一提交到 Bug 跟踪系统管理跟踪起来。

然后,不能把多条 Bug 合并成一条,一个 Bug 创建一个独立的 Ticket。我遇到过有些测试为了省事,把几条 Bug 合并成一个 Ticket 来报,导致的问题就是,必须这几条 Bug 都修复了,这个 Ticket 才能改变状态,如果其中一个 Bug 没有验证通过,需要 Reopen 整个 Ticket。

再有,描述清楚如何重现 Bug 非常重要。一个 Bug 如果无法重现,也没有日志、截图等辅助信息,那是非常难以定位的,会浪费很多开发人员定位 Bug 的时间。

最后,不要把 Bug 跟踪系统当成讨论板用。在项目中一个常见的场景是,一个 Ticket 下面,跟讨论版一样添加了很多留言,开发认为不是 Bug,测试认为是一个 Bug,开发又觉得是产品设计没定义清楚,应该让产品经理来讲清楚,皮球踢来踢去,最后问题还没解决。

Bug 跟踪系统的主要功能是用来跟踪 Bug 的,不是用来讨论和扯皮的。遇到上面的情况,其中一方就应该主动一点,拉上相关人面对面讨论,当面确认清楚这个 Bug 到底是什么问题,然后马上解决掉。

总结:工具有很多例如:Bugzilla、Jira、MantisBT,禅道。现在很多公司都用禅道进行项目的管理,之前文章也有发过禅道的相关文章,以及公众号也有提供禅道的安装包,大家可以自行下载,搭建。管理bug的工具初学者只要掌握一个就行了,因为都是大同小异的,了解其流程即可。

为什么软件测试人员都不通过QQ、微信、邮件上报Bug?相关推荐

  1. 转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧

    在面试的过程中好多人会有这种的感觉.我在面试的时候面试官会问的特别详细,你们的公司之前是做什么的,还有相关的一些人员构成比例,开发和测试大概有多少人,你们公司有没有运维,有没有产品,以及呢一些详细的软 ...

  2. 软件测试人员一定要会的微信小程序测试点

    微信小程序: 不需要下载安装即可使用的应用, 实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用. 体现了"用完即走"的理念,用户不用关心是否安装太 ...

  3. 是不是每个软件测试人员都有一份跟我差不多的心酸历程?

    我并不是互联网从业者,是经历了一场六个月的培训才入的行,这个经历仿佛就是一个遮羞布,不能让任何人知道,就算有面试的时候被问到你是不是被培训的,我还是不能承认这段历史.我是为了生存,才选择了这一条培训之 ...

  4. 收藏~10年软件测试人员的工作方法进阶汇总

    用户故事: "从事11年软件测试工作,由软件测试助理(实习)开始,经历过测试经理助理,实习测试工程师.性能测试工程师再到测试高级工程师.业务专家顾问.产品验收测试专家.质量部PM.质量部总监 ...

  5. 计算机转岗测试,软件测试人员转岗哪些岗位

    对于大多数的大龄程序员来说,转岗也是比较常见的一种职业发展方向,而今天我们就通过案例分析来了解一下,软件测试人员转岗哪些岗位. 1.项目经理 测试人员,尤其是敏捷团队的测试人员,涉及到项目质量相关的方 ...

  6. html写微信推送,QQ/微信实现网站内容推送

    已更新,Typecho集成QQ/微信/邮件推送插件_CommentPush,详情地址:https://blog.say521.cn/archives/421.html 好些天没有折腾了,今天来更新一篇 ...

  7. 现在开发人员都开始做测试了,是不是以后就没有软件测试人员了?

    在我们开始尝试为大家描述软件测试工作的多种可能性之前,先来看看在现在所知最近代的开发模式中,测试人员还会继续存在吗?很多做测试的朋友问过这样一个问题:"现在敏捷开发模式中,自动化测试那么流行 ...

  8. 使用流量时微信联系不到服务器,iphone6在流量模式下也就是关闭无线用4G模式收不到任何信息通知,QQ微信啥都没有!什么原因...

    iphone6在流量模式下也就是关闭无线用4G模式收不到任何信息通知,QQ微信啥都没有!什么原因以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我 ...

  9. 小程序开发,唯一一个稳定的版本,其他的都白屏,微信这帮子开发人员真是垃圾

    小程序开发,唯一一个稳定的版本,其他的都白屏,微信这帮子开发人员真是垃圾.... v 微信开发者工具稳定版 1.02.2003250 更新说明官方 微信团队03-25 下载地址 Windows 64  ...

最新文章

  1. 本科生去面试算法工程师心酸的故事
  2. win7 mysql读写分离_mysql 主从复制 读写分离配置
  3. python 去除字符串的标点符号 用_7步搞定数据清洗-Python数据清洗指南
  4. AOP开发——在不修改源代码的前提下,对类里面的方法进行增强 : 前置 后置 环绕 异常||如何得到目标方法的参数和返回值
  5. 43、Power Query-函数综合应用
  6. P3605 [USACO17JAN]Promotion Counting P dfs序
  7. 编译内核_将驱动编译进内核(Kernel)的步骤记录
  8. linux发布微软消息队列,消息队列RabbitMQ入门与5种模式详解
  9. python中plt定义,对Python中plt的画图函数详解
  10. 3D重建曼哈顿街景!谷歌开源Kartta Labs,使用深度学习和众包再现历史街景
  11. eclipse如何删除空行
  12. 【C语言经典100题】求1~20阶乘的和
  13. Audition CC 2019 Essential Training AuditionCC 2019基本训练 Lynda课程中文字幕
  14. 使用Cubic备份或制作自定义通用型Ubuntu Live ISO镜像适用于 16.04 18.04 20.04 等
  15. 吊打面试官的硬核法宝~阿里架构师最新总结软件测试面试宝典
  16. 吴氏太极拳宗师王茂斋简介
  17. 心率检测实现报告(一)
  18. win11(amd)+cuda+cudnn+pytorch安装过程
  19. 本周大新闻|FDA公布XR认证医疗名单,索尼推数字孪生平台Mapray
  20. 【博弈论】第二讲:纳什均衡的混合战略(有限数量战略)

热门文章

  1. 联想G40-70旧物改造小总结——替换固态硬盘电池光驱啥的
  2. Mysql占用CPU过高排查过程及可能优化方案
  3. 获取微信昵称时 过滤特殊字符
  4. maximal-rectangle
  5. 适合程序员的笔记本电脑
  6. LTE学习笔记4之物理层信道与信号
  7. mapbox-gl加载带环境贴图白模(视频)
  8. 滁州市区地图小区楼盘图矢量高清cdr|pdf2021年(高品质)
  9. Maven:A cycle was detected in the build path of project 'xxx'. The cycle consists of projects {xx}
  10. 第四篇:服务发现机制