偶现bug如何处理?
请先允许我对此类bug进行吐槽,相信做测试的同学都碰见过这种bug!
我们在测试过程中经常会碰见一类很头疼的bug,就是偶现性的bug,所谓偶现性,是相对于必现而言,这类bug有些可以有重现路径,但是可能需要重复操作十几次甚至上百次才可能重现一次,重现概率比较低,这种bug我暂分类成偶现可重现。另一种则是没有重现路径,找不到任何的规律,但时不时的会出现,这个分类成偶现且难以重现。对于这类偶现bug,测试很头疼,因为需要花费相当多的时间去复现bug,修复之后还要去验证。开发也很头疼,测试如果没法复现,那么需要开发自己尝试找bug、调试、解bug(大多数开发只愿意解bug,而不擅长找bug)。一般来说遇到偶现的bug,都是尝试去按照出问题的方向复现,然后去review对应代码的逻辑,但是代码逻辑review了很多次,加了很多log,也没有找到。一点头绪都没有的情况下,大家是怎么应对这种情况的。
这里对偶现且难以重现的bug进行下经验总结,有不足之处欢迎指出。
在测试过程中发现bug后的处理方法:
1.抓取log、截图、视频
2.别急着去复现bug,先仔细回忆下自己的操作步骤及前置环境
3.找到能重现的步骤,然后再定位代码,还得考虑数据的因素(检查变量变化是否正确)
有时候测试人员很大的价值就在于能重现难以重现的bug,这需要思维的开阔、经验的积累以及掌握较好的测试技术或者开发技术。bug的出现都必然有一个可重现的路径,只是问题在于我们是否能找到这个路径,因为影响bug重现的因素很多,如环境的改变(硬件环境、网络环境等)、不经意间被忽略的操作、使用的数据是否相同等等。个人一方面对这类bug很怕,因为一旦出现,如果对功能影响很大的话,就需要花很多时间去重现它,而且并不保证就一定能重现。但另一方面又喜欢去挑战这类型的bug,当你通过种种想法、测试技巧去将它重现之后,你会相当的有成就感!
当碰见这种bug,要做的事情:
1.抓取log、截图、视频
2.仔细回忆,记录前置环境、操作步骤、使用过的数据
3.尝试去重现
当发现尝试多次仍无法重现时,先给开发提单,附上能取到的所有日志及截图、详细前置环境及操作步骤、可初步的注明bug出现的概率(百分之一、千分之一)。
对bug进行评估,确定优先级,如果优先级高的话,将bug单发给组内的同事,让大家帮忙关注该bug。
与开发沟通,猜测可能出现问题的地方,在代码中设桩,添加状态打印信息,进行有针对性的测试。
考虑采用自动化,进行压力测试,测试过程中注意收集log信息,统计bug出现的概率。
仍旧无法重现,就只能采取亡羊补牢,关注发布后的用户反馈,跟进bug。
1.首先你需要在代码里做尽可能多的保护和异常处理:大部分的异常是可以抓到的,能抓到基本上问题就可以解决了。即使你没有管,设备上也会有crash log的,解析出来崩溃的位置后,debug工作会简单很多。实在不行你说的log方式也很好用。
2.让tester确定复现步骤,概率极低其实可以不去修复。1/50嘛,我觉得还是有点高,如果重新操作一遍不会遇到同样的问题(就是说和windows一样重启可以解决的问题),那可以不修复的,非阻塞型的bug嘛。如果是会阻塞后续操作,重来一遍还是要修复的。
问题的验证:
建议采用自动化的方式验证+收集用户反馈
最后,有时候发现bug、重现bug,运气很重要!希望大家都做个负责的Tester!
App crash崩溃追踪,原因定位分析
https://www.jianshu.com/p/c4abdd2c3576
偶现bug如何处理?的更多相关文章
- 小程序部分机型上一个诡异的偶现bug
如上图所示:开始的时候进到下单页面,价格是0,当选中了商品产生价格的时候,生成的价格如 ¥150,这个时候会只露出¥1以及一小半的5,后面的都被遮挡住了. wxml里是这样的写的 <view w ...
- 【Golang】嗅探抓包,解决线上偶现问题来不及抓包的情况
背景 测试群里经常看到客户端的同学反馈发现了偶现Bug,但是来不及抓包,最后不了了之,最近出现得比较频繁,所以写个小脚本解决这个问题. 实现思路 实现的思路比较简单: 抓包 存日志 做日志管理 具体实 ...
- 程序员的踩坑经验总结(一):如何把Bug的偶现变必现
程序员的踩过的坑也是可以分类的,很常见又很难解决的一类是偶然的现象,表现起来比较怪异. 而把一个问题Bug的偶现变成必现,是开发人员的一种能力.我认为也应该是测试人员的一种能力,但是各个公司要求不一样 ...
- CAT偶现NPE的问题
1.背景 我们公司的调用链系统是基于大众点评的CAT客户端改造的,服务端完全有自己设计开发的.在是用CAT客户端收集dubbo调用信息的时候,我们发现了一个CAT偶现NPE的bug,该bug隐藏的很深 ...
- Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)
记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += - ...
- iOS开发之使用UICollectionView实现美团App的分类功能【偶现大众点评App的一个小bug】
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...
- 阿里聚安全·安全周刊】一种秘密窃取数据的新型 Android 木马|iOS 11相机惊现BUG
本周的七个关键词: 新型 Android 木马丨 TLS 1.3 丨 阿里安全图灵实验室 丨 漏洞感染 Linux 服务器 丨 CPU曝极危漏洞 丨 iOS 11相机BUG 丨R2D2技术 - ...
- 遇到bug如何处理
issue中查询是否有相似bug assert / try-except / IDE单步调式 框架可以查询源码或者查询官方文档
- AF引起的camera偶现卡顿问题
相关log如下: 01-01 08:04:26.299 867 3220 E Camera2Client: syncWithDevice: Camera 0: Timed out waiting sy ...
随机推荐
- DHTMLX 常用技术
GRID的行设置前景色和背景色 $dataItem->set_row_color("red"); // 设置背景色 $dataItem->set_row_style(& ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...
- C# IQueryable和IEnumerable的区别
在使用EF查询数据的时候,我们常用的查询数据方式有linq to sql,linq to object, 查询返回的结果有两种类型:IQueryable.IEnumerable,两者内部的处理机制是完 ...
- Unity的四元素与Vector3的乘积的含义
Quaternion.Euler(x,y,z)含义是按照每个旋转轴以x,y,z旋转度旋转,例子:Quaternion.Euler(45,45,45) Quaternion与Vector3的右乘操作(* ...
- .Net基础——程序集与CIL
1. 程序集和CIL: 程序集是由.NET语言的编译器接受源代码文件产生的输出文件,通常分为 exe和dll两类,其中exe包含Main入口方法可以双击执行,dll则需要被其他程序集调用执行. CIL ...
- 学JAVA第十天,一维数组及二维数组的使用。
今天老师讲了JAVA数组,之前学C#的时候就学过一维数组,至于二维数组当时只是粗略普及了一下. 现在想学JAVA又学到了数组,但是这次不同,注重讲二维数组,因为老师知道我们都了解一维数组了. 所以现在 ...
- Java 由浅入深GUI编程实战练习(二)
一,项目简介 1.利用Java GUI 绘制图像界面,设置整体布局 2.编写一个随机数生成1~100的随机数 3.编写一个验证类,用于验证用户输入值与生成随机数是否相等并记录用户猜测次数,当用户猜测成 ...
- jsp内置对象的作用范围
内置对象的作用范围是指每个内置对象的某个实例在多长时间和多大的范围中有效,即在什么样的范围内可以有效地访问同一个对象实例. 在javax.servlet.jsp.PageContext的类中定义了4个 ...
- 基础环境系列:Apache2.4.37
一.安装 进入官网http://www.apache.org/,滑至最下方,排名第一的HTTP Server就是我们需要的. 当前时间的最新版本是2.4.37.呃……并没有msi版本,我们选择最后一个 ...
- uiautomatorviewer 查看元素报错: Error taking device screenshot: null 原因
使用uiautomatorviewer 查看android某些页面元素,出现错误Error obtaining UI hierarchy Reason: Error taking device sc ...