bug遗漏,我想这个是很多公司很多人头痛的一个问题。众所周知,bug是不可能被完全消灭的,当然也就意味着在发布前不能被全部找出来。于是乎当项目发布后,或多或少都会出现bug遗漏的现象,即使发布初期没有发现,随着时间的流逝,一些隐藏的bug也会慢慢浮现出来。那么对于遗漏的bug,我们该怎么去做?

古时云:亡羊补牢,为时未晚也。对于遗漏的bug,我们应该去透彻的分析它产生的原因,然后吸取教训,防止再次出现。这样遗漏bug的数量就会越来越少,趋于0。那么怎样的分析才是透彻的呢?我发表一下自己的观点。

根据我的经验,总结下来有以下几点,首先从根源上说,需求的问题。需求是一切的根本,我们所做的一切都是在需求的基础上进行的,那么需求会不会有问题?当然有啦,否则要需求评审干嘛,每次需求评审,或多或少都能发现一些需求的问题,在还没有开始编码之前就把需求的bug找出来,这个是最理想的状态。显然这个不现实,但是能多发现一个不合理的地方,那就能减少很多风险。因此需求关要把好。当然要求测试人员在需求评审时就要找出需求的bug,这个是要求比较高的,需要对业务的熟悉以及对相似产品的认识。需求关把好了,那么就算踏出了成功的第一步。

其次,要尽早与开发人员进行测试设计评审,统一对需求的认识(开发测试人员都可能存在对需求的认识不正确)。越早进行,越能够避免出现因为对需求的认识不同而导致出现的问题(最可怕的是因此产生的隐性bug),这样也能减少后期很多不必要的资源浪费。

接下来,就是用例设计了,这方面体现了一个测试人员的真实地能力。考虑的面要广,包括:使用不同的测试方案,不同的测试数据的类型(要齐全),正常流与异常流等来覆盖所有的需求。

然后就开始执行测试,要全面地执行测试用例,并且在测试过程中不断的添加遗漏的用例。在时间允许下,尽可能的执行。

回归阶段,除了要回归前面发现的bug,还要重视回归那些bug相关的模块,这个教训是很多的,所以千万不能忽视。一个小小的小小的参数变动可能引起一个比较远的功能点的大bug,继而引发遗漏。所以这个是需要开发人员与测试人员去识别的。开发人员熟知代码,知道改动的地方会被哪些模块调用或者会引起哪些变化,因此开发人员需要通知测试人员测试关注点以及加强自测。在开发人员与测试人员无间隔的合作下,这种bug的遗漏会减少很多。

发布前期,应该在保证所有的bug都fixed的前提下,把所有用例都回归一下,以免遗漏。

最后终于发布了,发布好就可去FB了,^o^。不要在开心的情况下放松神经,所谓行百里,半九十,不能倒在最后的冲刺关头。细心细心再细心。只要一步步走下来,那么就可以把遗漏的bug数量减到最低。

当然最好做自动化脚本,方便以后的回归。这就是我想说的,大家有意见可以跟着,共同进步。

软件测试干了几年,项目一个接着一个,一路从一个坑跳入另一个坑,有些是开发问题,一些是测试本人问题,大家在测试过程中踩过哪些坑尼?

1.自以为了解业务逻辑,实际浮于表面

这是个深坑,产品迭代跟的久了,功能上闭着眼睛都能说清楚就自以为很了解,实际上连该功能使用的协议,调用的接口都不知道,所以看到问题都是表面的问题。

你只看到了两个操作的入口不一样,提示信息不一样,你就以为是两个问题,而这两个问题都是调同一个接口引起的,但你分析不出来。。

这样导致的问题有:

①修改bug后对影响范围评估不够

②提相同的bug,碰上特别注重bug数量的开发,真是揪心。。

我们公司对于bug定期要做bug根因分析,这在一定程度上也是帮助测试更深入的了解产品,因为每次bug单上开发写的产生原因和解决方案,真是言简意赅。。

2.思维定死,不会向前多走一步

比如同一个账号添加之后删除再添加,同一份文档导入之后导出再导入,密码修改成功之后再修改,等等,向前多走一步,就可能有意外收获。
3.忽略偶现的问题
测试要记住:所有偶现的问题,都只是没有找到必现的规律!
不要以为偶现的问题,没有出现,就不提出来,等上线后用户发现这个问题,你再说曾经遇到过,只是没有提出来,那测试不背锅还有谁背??

提出问题但不解决,测试就可以甩锅给产品,给开发,完美!(这个真是从踩过的坑里得出血淋淋的教训)
这里有个好的习惯:遇到问题先截图!!!先录视频!!!再分析原因,再提交给开发,最怕偶现的问题口说无凭,又没有证据证明,开发说你逗我呢???
4.避免随机测试
避免没有用例而进行的随机测试,虽然随机测试能发现一些问题,但是它的特点是我们测试人员想到什么就测试什么,这样就会导致有些功能点重复测试,而有的业务流程却没有覆盖到,出现漏测,一旦上线后出现Bug,就不好说了。

5.Bug的复现步骤描述必须要详细
这个其实算不上坑,只是个人总结。之前提交过一个Bug,Bug描述非常简单,在后期给开发复现的时候,费了很大的劲儿,如果我们能在Bug描述中,准确描述Bug的复现步骤,就可以明显缩短开发分析问题、定位问题的时间。
6.不要 “动” 之前的业务逻辑,因为会 “牵一发而动全身”
要 “遵守” 之前的业务逻辑,现有的业务逻辑尽量不要和之前的冲突,为啥呢?
因为啊,一旦按照现在业务逻辑的话,就得把之前的改了,改之前的业务逻辑会非常的复杂,不仅开发需要改代码,而且我们测试要重新再测,所以,不要动之前的业务逻辑。

如何避免遗漏bug的更多相关文章

  1. 测试的发现遗漏BUG的做法

    首先要确认BUG的影响范围: 后续做法如下: 1.从测试角度来说,外部缺陷等同与系统崩溃,测试是必须提的2.可以询问主管或负责人是否在后一个版本中修改3.评估缺陷对于用户使用存在多大的不便4.判定缺陷 ...

  2. 如何进行bug总结

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

  3. IC验证概念总结

    一份代码,在写完之后,一定要再经过一次或多次整理和打磨,才能算完成的:一份代码,一定要把其有效代码行,精简.锤炼到最少.最短.最有效,才能算完成的.   下面这些问题和回答是忘记是在哪里看到的了,参考 ...

  4. 研发过程及工具支撑 DevOps 工具链集成

    https://mp.weixin.qq.com/s/NYm63nkCymIV3DbL4O01dg 腾讯重新定义敏捷 |Q推荐 小智 InfoQ 2020-09-03 敏捷开发奠基人 Robert C ...

  5. Matery主题添加Pjax

    如何给matery主题添加Pjax? Pjax优点 1.减轻服务端压力 2.按需请求,每次只需加载页面的部分内容,而不用重复加载一些公共的资源文件和不变的页面结构,大大减小了数据请求量,以减轻对服务器 ...

  6. Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集

    此文已由作者王晓明授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 各位看官,可能看到标题的你一定认为这是一篇涉嫌"炒作"的文章,亦或是为了吸引眼球而起的标 ...

  7. 记录一次bug解决过程:规范变量名称和mybatis的使用以及代码优化

    一.总结 Mybatis中当parameterType为基本数据类型的时候,统一采用_parameter来代替基本数据类型变量. Mybatis中resultMap返回一个对象,resultType返 ...

  8. Cordova webapp实战开发:(7)如何通过简单的方法做到,不重新发布APP来修复bug、增加功能、或者躲开苹果的一些严格审核?

    到<Cordova webapp实战开发:(6)如何写一个iOS下获取APP版本号的插件?>为止,我们已经大体学会了如何使用Cordova了,那些都是使用Cordova的开发者必备的技能. ...

  9. 如何重现难以重现的bug

    生活中有这么一种现象:如果你关注某些东西,它就会经常出现在你眼前,例如一个不出名的歌手的名字,一种动物的卡通形象,某个非常专业的术语,等等等等.这种现象也叫做“孕妇效应”.还有类似的一种效应叫做“视网 ...

随机推荐

  1. SingletonPattern(23种设计模式之一)

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

  2. 算法Sedgewick第四版-第1章基础-022一QueueWithTwoStacks

    /****************************************************************************** * Compilation: javac ...

  3. noi.ac day6t3 color

    传送门 分析 将询问离线,枚举右端点.新加入一个右端点i时,假设离i第t近的同色位置为p,t+1近的是q,则当i是右端点时,(q,p]的点可以作为左端点. 注意对于一个点离它第t近的同色点可以用队列维 ...

  4. 2015年阿里实习生面试Java研发工程师 小记

    5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条 ...

  5. PHP微信分享

    注意 : 分享需要认证微信订阅号或者服务号. php 代码(thinkphp): $appid='xxx';  $appsecret='xxxx';    $timestamp = time();   ...

  6. bootstrap.js 文件使用指南

    介绍 使用 Bootstrap v3.3.7 时,需要引入三个脚本文件. https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.m ...

  7. C++11新标准:nullptr关键字

    一.nullptr的意义 1.NULL在C中的定义 #define NULL (void*)0 2.NULL在C++中的定义 #ifndef NULL #ifdef __cplusplus #defi ...

  8. java 字符流 字节流

    java对文本文档进行操作(拷贝.显示)出现乱码一般来说,可以从两个方面入手. 1.文本文件本身的编码格式. 2.java代码中处理文本文件的编码格式. 这里要注意的一点是,我们可以看出copyFil ...

  9. jQuery 插件开发——countdown(倒计时)

    故事背景:按照惯例,先写下故事背景,其实也是再次汇报下最近开发情况的.做电商的都知道,这是个活动季啊,双十一.双十二.元旦....各种啊..其实说这么多就是想表达最近比较忙.呵呵^_^,正好今天抽点空 ...

  10. Redhat 6 git服务器配置 (git-daemon)

    git-daemon是按照git的自己的git协议进行访问git服务   1.git-daemon软件安装 软件仓库见 redhat 6 git 服务器 配置 (http)   2.配置git dae ...