在项目过程中,测试同学会发现大量的bug,但同时也不可避免的会存在一些遗漏的bug。为了能够减少遗漏bug的现象,我们需要针对遗漏的问题进行总结,从教训中积累经验,总结方法,从而提高测试的覆盖度,提升产品的整体质量。

什么样的bug需要进行总结?

1.线上遗漏的bug

没有被测试发现而遗漏到线上的bug。其影响不言而喻,会直接影响用户的体验,影响产品的口碑,势必需要进行总结。

2.非线上遗漏的bug。

没有在规定的测试阶段发现,从而导致发现晚的bug,例如XX模块已经测试完毕,结果后来又发现该模块的新bug。这类bug会导致增加bug修改和验证的时间,从而有可能影响项目的整体进度,甚至导致项目delay。

什么时机进行bug总结?

1.项目上线后,应尽快进行bug总结,否则时间一长会出现遗忘的情况,包括测试和开发两方面,给总结操作带来不便。

2.遇到严重的或非常重要的遗漏bug,可随时进行单独总结,比如线上发现的严重问题。

总结什么内容?

总结bug的核心,是为了后续减少遗漏bug,提高测试覆盖度,提升项目质量。想要达到这个目的,首先需要分析bug的原因,尤其是遗漏原因;其次是确定后续的改进方案,避免类似的问题再次发生。

原因分析:

bug遗漏的原因一般分为几大类:

  • 非遗漏问题:bug总结时,出现概率最高的可能就是非遗漏问题,这类问题并不需要进行具体的总结,其中主要包含三类:

    • 不是问题:例如用户反馈的问题,但符合产品的需求要求,这种就属于不是问题。

    • 开发引入:例如我们测试完成的模块,开发修改bug,或在测试不知情的情况下修改了代码,引入的新bug。

    • 需变引入:例如我们测试完成的模块,发生了需变,导致新的bug产生。

  • 用例设计遗漏:bug是用例设计时没有覆盖到的场景,又可以细分为几类:

    • 基础用例设计不足:例如需求中详细说明的内容,没有在用例中提现。

    • 需求理解错误:例如需求理解错误,导致测试用例的预期结果不正确,而开发实现正好符合错误预期。

    • 模块间影响考虑不足:例如没有A模块与B模块有关联,会对B模块产生影响,但B模块的用例中未涉及到相应的场景。

    • 复杂路径无法覆盖:路径过于复杂,或者涉及较多层级的操作,例如经过10步操作后才会出现的bug。

    • 复杂场景考虑不足:例如两个或多个看似完全没有关系的场景,结合起来产生的bug。

    • 适配问题考虑不足:例如在某些特定的机型上出现的bug。

  • 用例执行遗漏:bug是执行用例过程中出现过,但没有被发现,可细分为2类:

    • 纯执行遗漏:测试用例中涵盖,但没有执行;或者执行了用例,也出现了问题,发现了问题但没有提交bug。

    • 敏感度不足:测试用例中涵盖,但没有明确说明,遇到了问题,但没有意识到是bug。例如同样都是头像,在A页面是个圆的,在B页面是个方的。

  • 重现率低的问题:重现几率较低的bug,无稳定复现的步骤。

  • 体验性或性能问题未关注到:需求中没有明确说明,也未在用例中涉及,但对用户体验有影响,后经其他方指出的bug。例如产品logo不够明确、使用过程中设备发热等。

改进方案:

针对bug遗漏的不同原因,也有不同的改进方案。

  • 非遗漏问题:这种类型,与测试无关,无需改进。

  • 用例设计遗漏:

    • 补充对应模块的测试用例,这个是基础。

    • 补充后的case是否具有通用性,如果有,那么需要应用到所有相关的模块中,并作为后续用例设计的经验积累。例如:锁屏后再解锁会导致某个页面控件的功能失效,那么各个页面都应该添加“锁屏后再解锁,检查控件可用”的case。

  • 用例执行遗漏:

    • 纯执行遗漏不可饶恕,除了自己做好备忘外,没什么更好的改进办法,这个层面出现问题,更多的应该是自我反思。

    • 如果是敏感度不足导致的遗漏,那么可以持续进行经验积累,提升自己对bug的认知。

  • 重现率低的问题:

    • 如果是能够找到具体原因的bug,那么应该深入挖掘,找到问题的本质原因以及重现步骤,然后再进行分析,对遗漏原因进行归类,然后再进行针对性的改进。

    • 如果是无法找到具体原因的bug,这块暂无有效的改进方法。

  • 体验性或性能问题未关注到:这类问题的改进方案跟敏感度不足的改进方案类似,需要持续的进行积累,提升自己的产品感觉。

其实对于bug总结,应该正面认识,并不是一味的追讨责任,而是更好的改进测试方法、提升测试是能力。认真做好bug总结,对测试团队、测试个人的能力提升,都有很大的帮助。

尊重原创,转载于搜狗测试公众号!

如何进行bug总结的更多相关文章

  1. Tomcat一个BUG造成CLOSE_WAIT

    之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...

  2. a标签点击跳转失效--IE6、7的奇葩bug

    一般运用a标签包含img去实现点击图片跳转的功能,这是前端经常要用到的东西. 今天遇到个神奇的bug:如果在img上再包裹一层div,而且div设置了width和height,则图片区域点击时,无任何 ...

  3. 关于 Chrome 浏览器中 onresize 事件的 Bug

    我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作 ...

  4. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  5. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  6. 了不起的 nodejs-TwitterWeb 案例 bug 解决

    了不起的nodejs算是一本不错的入门书,不过书中个别案例存在bug,按照书中源码无法做出和书中相同效果,原本兴奋的心情掺杂着些许失落. 现在我们看一下第七章HTTP,一个Twitter Web客户端 ...

  7. 应该是Angular2的一个bug?

    为了应对未来的趋势,及时赶上下一趟互联网技术,我最近也在通过具体项目研究angular2,首先必须要吐槽的是,学习angular2的成本本身不高,但是一堆的工具.配置实在让人 很是焦灼,就像asp.n ...

  8. 记录一次bug解决过程:数据迁移

    一 总结 不擅长语言表达,勤于沟通,多锻炼 调试MyBatis中SQL语法:foreach 问题:缺少关键字VALUES.很遗憾:它的错误报的让人找不着北. 二 BUG描述:MyBatis中批量插入数 ...

  9. 关于MJRefresh的下拉加载数据bug

    当没有更多数据的时候显示NoMoreData 我的理解是先结束刷新再显示没有更多 今天之前一直没发现有问题 贴之前的代码 [self.collectionView reloadData]; [self ...

  10. [异常特工]android常见bug跟踪

    前言 对app的线上bug的收集(友盟.云捕等)有时会得到这样的异常堆栈信息:没有一行代码是有关自身程序代码的.这使得对bug的解决无从下手,根据经验,内存不足OOM,Dialog关闭,ListVie ...

随机推荐

  1. 2019.02.09 bzoj2440: [中山市选2011]完全平方数(二分答案+容斥原理)

    传送门 题意简述:qqq次询问(q≤500)(q\le500)(q≤500),每次问第kkk个不被除111以外的完全平方数整除的数是多少(k≤1e9)(k\le1e9)(k≤1e9). 思路:考虑二分 ...

  2. 1.2OpenCV如何扫描图像,利用查找表和计时

    查找表 颜色缩减法:如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值. 但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六百多万种).用如此之 ...

  3. hdu-1034(模拟+小朋友分糖)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1034 参考文章:https://blog.csdn.net/zyy173533832/article/ ...

  4. Java 学习之集合类(Collections)

    Collection(集合类) 我们是使用数组来保存数据,但是他的长度一旦创建,就已经确定了,当我们要动态传入穿值,数组就有些局限了,集合类就孕育而生:所谓集合,就是来保存,盛装数据,也可称为容器类: ...

  5. Python-IDLE实现清屏

    1.将下面文件复制到命名为ClearWindow.py的文件下,移动到 …Python\Python36-32\Lib\idlelib下. ############################## ...

  6. s4-7 生成树协议

    Spanning Tree :为了可靠,采用冗余结构:但是透明网桥 会产生无休止循环的问题 冗余交换拓扑可能带来的问题  广播风暴  多帧传送  MAC地址库不稳定 生成树协议  STP:sp ...

  7. HDU 5321 Beautiful Set (莫比乌斯反演 + 逆元 + 组合数学)

    题意:给定一个 n 个数的集合,然后让你求两个值, 1.是将这个集合的数进行全排列后的每个区间的gcd之和. 2.是求这个集合的所有的子集的gcd乘以子集大小的和. 析:对于先求出len,len[i] ...

  8. Nios II——定制自己的IP1之Nios接口类型

    信号自动识别的接口前缀 接口前缀 接口类型 asi Avalon-ST宿端口(输入) aso Avalon-ST源端口(输出) avm Avalon-MM主端口 avs Avalon-MM从端口 ax ...

  9. 2.3.1关键字volatile与死循环

    关键字volatile的主要作用是使变量在多个线程间可见. 测试如下 package com.cky.test; /** * Created by edison on 2017/12/9. */ pu ...

  10. 2.2.9静态同步synchronized方法与synchronized(class)代码块

    关键字synchronized还可以应用在static静态方法上,这样写那是对当前的*.java文件对应的class类进行持锁, 测试如下 package com.cky.bean; /** * Cr ...