如何减少不能重现的Bug】的更多相关文章

博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何减少不能重现的Bug.…
http://testerhome.com/topics/577 原文请见 Minimizing Unreproducible Bugs 不能重现的 bug 是我的灾难.我常常找到一个bug 后来又听说这不是一个 bug,因为它无法重现.但是这个 bug 仍旧在那里,等着捕食下一个受害者.这些类型的 bug 非常昂贵,因为我们需要花大量的时间去调查.它们也会对产品体验造成破坏性的影响,特别是用户发现并报告了这些被忽略的 bug.所以为了防止这类问题,我们需要做更多.在这篇文章里,我将探讨一些明显…
生活中有这么一种现象:如果你关注某些东西,它就会经常出现在你眼前,例如一个不出名的歌手的名字,一种动物的卡通形象,某个非常专业的术语,等等等等.这种现象也叫做“孕妇效应”.还有类似的一种效应叫做“视网膜效应”,它讲的是:你有什么东西或者特质你就特别容易在别处发现你有的这类东西和特质.干了多年测试的我就会经常发现日常使用的系统中有很多的bug,而我老婆就发现不了.今天要说的事儿是“重现难以重现的bug”,这件事儿在本周共遇见了4次:第一次是微博上有一篇<程序员,你调试过的最难的 Bug 是?>(…
遭遇 bug 的时候,理性的程序员会说:这个 bug 能复现吗? 自负型:这不可能,在我这是好好的. 经验型:不应该,以前怎么没问题? 幻想型:可能是数据有问题. 无辜型:我好几个星期都没碰这块代码了! 乐观型:只需要改一行代码,不会影响其它程序的. 实践型:你重启一下服务试试. 无论你是哪种类型的程序员,遭遇 bug,内心都是崩溃的,尤其是产品经理或测试人员在使用或测试产品的过程中抓到你的一个 bug 之后那种如获至宝的表情和欢呼声,会让我们的心情久久不能平静.于情于理,防患于未然,减少编程中…
[转]http://macshuo.com/?p=1361 怎么减少编程中的 bug? Posted on 2016 年 2 月 17 日 为什么要编程?因为代码没在那里.创造一个世界是如此让人着迷,Linux 的创始者 Linus 这样表述对编程的喜爱之情: 对于喜爱编程的人来说,编程是世界上最有趣的事,比下棋有趣得多!因为你可以自己制订游戏规则,而你制定什么样的规则,也就会随之出现与此规则相符合的结果. 在电脑世界中,你就是创世者,你对所发生的一切拥有最终的控制. 你可以建筑一个这样的房子,…
在我们日常测试活动中,经常会发现一些bug,但是这些bug可能就是昙花一现,再也无法(或者很难)重现出来,内心灰常崩溃.那到底有哪些方面可能会导致这类的缺陷发生呢? 我以自己工作中所遇到的给出一些自己的总结,当然如有补充请自行添加. 一.环境问题 这个问题导致的缺陷无法重现的情况还是比较多的,测试和开发环境的不一致可能导致开发那边缺陷无法重现,还有实际运行环境和我们测试的环境不一致.如(硬件的配置,软件的配置,网络因素),当然极少数是系统内部问题或者时间触发的(这类bug重现非常困难) 二.操作…
3年前写的在HttpModule中记录访问日志的代码,在最近使用日志数据分析登录账号的IP情况时,才发现了一个不易重现的BUG——日志中记录的登录账号出现串掉的情况.之所以这个时候才发现该问题,是因为部分用户的IP是固定的,但是日志里却出现了别人的IP.而之所以3年后才发现,是因为这块日志数据一直没怎么用过.回头想想,根本原因还是在用成员变量的时候没考虑到多线程的情况,或者说多用户同时访问的情况.因为HttpModule里的事件,是所有页面实例共用的. 问题代码: string dateBegi…
FindBugs 入门 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 代码缺陷分类 根据缺陷的性质,大致可以分为下列几类 ·Bad practice  不好的做法 ·Correctness   可能有不正确 ·Dodgy code     糟糕的代码 ·Experimental  实验 ·Internationalization  国际化 ·Malicious code vulneril…
最近碰到一个问题就是数据库中偶尔出现一条没有id的数据,可恨的是怎么也找不到重现这个问题的原因,只好换种方式来找了,那么就是我标题所说的守株待兔方法. 因为我发现出现bug的数据库里面的数据有个字段为msg_contend的内容有个共性就是以“.png.down”结尾,并且这个内容来源的功能模块也能确定为FileTransServer.另外可以知道保存数据到数据库的方法只有一个save_a_message_item(),那么我就在这个门口设置个过滤器 “#ifdef _DEBUG... #end…
Java编程语言的人气自然无需质疑,从Web应用到Android应用,这款语言已经被广泛用于开发各类应用及代码中的复杂功能. 不过在编写代码时,bug永远是困扰每一位从业者的头号难题.在今天的文章中,我们将分享五贡最佳实践,希望帮助大家更为轻松地减少Java开发中的bug数量. 原则一:不要依赖初始化 在Java中,开发者常常依赖构造函数进行对象初始化.不过这其实是一种常见误区.我们完全可以在无需调用构造函数的情况下,通过多种方式实现对象分配. 下面来看几种常用方式: • 大家可以将所有变量声明…
导读 Mozilla 的 Firefox Graphics 团队正在向社区寻求帮助,由于他们收到了一些随机发生的 UI 错误报告,却一直无法找出错误的重现步骤(STR),因此现在向外寻求社区用户的帮助.团队表示,找出错误并重现步骤的用户将会获得来自 Mozilla 的限量奖品. 根据 Firefox Graphics 团队的描述,来自 WebRender 的 bug 会导致 Firefox 出现黑色色块,或者是 UI 显示错误,不过开发团队目前还无法找出重现错误的步骤.WebRender 是 F…
前言 每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~ github地址,感谢每颗star ❝ https://github.com/whx123/JavaHome ❞ 公众号:「捡田螺的小男孩」 1. 修改完代码,记得自测一下 「改完代码,自测一下」 是每位程序员必备的基本素养.尤其不要抱有这种侥幸「心理:我只是改了一个变量或者我只改了一行配置代码,不用自测了」.改完代码,尽量要求自己都去测…
IntelliTrace 如何能够大幅改善您的日常开发活动,并提升您快速轻松诊断问题的能力,而不必重新启动应用程序和使用传统的“中断-单步执行-检查”技术进行调试.介绍了组织如何能够通过在测试过程中收集 IntelliTrace 数据来减少“无法重现”的 Bug 数,从而使开发人员能够脱机调试问题,而无需访问实时重现.这只是功能的简要介绍,当您越来越熟悉 IntelliTrace 的强大功能时,它将开始改变您的调试方式. http://msdn.microsoft.com/zh-cn/magaz…
摘 要:本文简要分析了无法重现的Bug的可能产生原因,包括环境不一致.缺少最准确的描述和浏览器的不当设置.针对这些原因,本文给出了相应的对策.通过这些措施,可以重现许多以前认为不可重现的Bug.        关键词:重现:Bug:环境 在测试人员提交bug后,最不希望看到的结果是它们被标记为INVALID,尽管你坚信这一定是Bug.开发人员查看了bug的Description后,最不希望的结果是你无法重现它们,尽管他使用了所有可能的方法去重现它.一旦出现这样的情况,测试人员会很伤心,开发人员也…
各组对本组的互评链接如下 Thunder:http://www.cnblogs.com/vector121/p/7905300.html 王者荣耀交流协会:http://www.cnblogs.com/WYLFZ/p/7921000.html 欢迎来怼:http://www.cnblogs.com/zbwd666/p/7912673.html Hello World!:http://www.cnblogs.com/liuyaoze/p/7911875.html 一.答复其他各组给出的“就现有技术…
软件测试人员遇到发现的bug不能重现怎么办?   刚刚进入测试的童鞋们,想必都遇到过提出的bug,开发要求重现之后,但是在系统上已经重现不了的情况吧. 那么碰到这样的情况,不管开发还是测试都很纠结,开发考虑,如果拒绝,万一单子打回之后又出现了这个问题,那还要给我返回来;测试也会考虑,老是碰到无法重现的bug,总是给我打回来,我也觉得挺郁闷的. 那么碰到这样的bug应该如何处理呢? Sometime的bug真的要打回吗?测试人员碰到了应该怎么去做?接下来我们就一起讨论一下这种运气成分的bug. 首…
进入测试行业已经两年了,我从未认真的考虑过提交一个bug需要注意哪些问题,只是主观的认为我只需要描述清楚就OK了,但是我在工作中发现有个别的开发经常跑来告诉我"这个bug你是不是描述错了","这个bug无法复现"--每次听到这种问题的时候,我都会按照我的bug描述去重现这个bug,我每次可以重现--后来我意识到这大概是因为我的bug描述的不够简洁,开发人员没有耐心一步一步的根据我的描述去操作.其次我并没有注意到在测试时,需要对bug的普遍性做出总结,我在测试过程中通…
关于C# XML序列化的一个BUG的修改 在我前一篇博客中提到用XML序列化作为数据库的一个方案,@拿笔小心 提到他们在用XML序列化时,遇到了一个比较严重的bug,即XML不闭合,系统不能正确的加载此XML.在我的开发经验中,也遇到过这样的问题.现在把这个BUG的描述及解决方案记录如下,也供遇到此BUG的朋友参考. BUG描述 这个BUG的出现也是比较诡异的,我们给客户做的一套系统,这个系统会把数据写到N个xml文件中,正常情况下都没有问题.直到有一天--客户运行程序运行了一天,到快下班的时候…
编写优秀Bug报告的艺术及案例分析 ---Rex Black原著<Fine art of writing a good bug report > ---Kiki翻译于2005/5/28 前言 在99年的Quality week上的一次演讲中,微软的一个测试经理,Roger Sherman指出了由于“不可重现”导致bug关闭的主要原因.这是一个非常可惜的情况,因为这样的bug report浪费了紧张的开发计划中的宝贵时间,增加了对产品质量完全是无关紧要的事情,同时导致了在开发人员和测试之间的挫败…
你有没有想过为什么有时修复错误似乎比它应该花费更长的时间?当你终于找到问题时,事实证明你所需要的只是一个小小的改变.然而,花了很多时间才能找到正在发生的事情.这种情况比我想象的更频繁. 另一方面,当您编写代码并进行测试并且无法正常工作时,修复错误非常快.你跳回编辑器,掀起一行代码,问题就解决了. 为什么即使问题很简单,有时修复错误也需要很多工作,有时候,修复问题的速度很快 - 甚至可能很难解决问题?我们可以从易于修复的错误中学到一些东西,这样我们可以花更少的时间来修复bug吗? 让我们来谈谈这个…
首先声明,bug的测试规范应该在公司的正式文档建立.本建议非正式文档,有些内容可能不正确,有些内容可能需要继续商榷,甚至有些内容同公司规范有冲突.如果发现问题,直接忽略本文相应内容.本帖本意仅就工作中的一些现象记录,可以通过简单规范让大家工作轻松,高效.后续继续补充修改,也请大家补充修改. 其次,本帖也仅就填写bug报告的行为进行了一些梳理和建议,不能取代正式的bug测试流程或质量管理过程. 内容: 填写bug报告,可能是专门的测试人员或者开发人员,甚至其他临时帮忙或者最终用户.发现bug和解决…
千万不要当程序员面说有bug 对于新手程序员而言,在复杂代码中找BUG是一个难点.下面我们总结下老从程序员解Bug的通用套路,希望对大家有帮助. 1.IDE调试 根据项目特点和语言特点选择一个最合适的IDE,由于本人是做C++出身,最喜欢用的莫过于Visual Studio 了,这款微软开发的IDE,自从研发出来,就被称为宇宙第一编译器,能编译调试C/C++.C#.F#.Python.JavaScript.Qt.iOS等多种语言的开发.目前的VS2017还原生支持远程跨平台的软件开发,这无疑给我…
一个程序员在没有成长成为架构师之前,几乎都要跟 Bug为伴,程序员有很多时间都是花在了查找各种 Bug上. 我印象深刻的一个Bug, 是一个服务器网络框架无锁队列的 Bug .那个 Bug 连续查找了五天的时间,才最后定位出来. 当时我们的分布式存储系统出现了性能瓶颈,定位后发现瓶颈是在服务器网络框架上,所以我们决定为此替换一个最新研发的网络框架.这个新的网络框架为了追求高的性能,采用了无锁队列的设计. 第一天编码测试完成后.测试环境跑,完全正常,特地搞了一堆 log 来重放请求,程序跑得特别欢…
1.bug由来 虫子爬进主机引起继电器短路,导致机器故障.真正的缺陷是:主机散热孔少装了块金属丝,这样才能防止虫子爬到主机. 2.什么是bug? bug是缺陷的一种表现形式,而一个缺陷是可以引发多种bug的.软件测试,为了发现软件中的错误而运行软件的过程. Bug评判点 1)软件未达到客户需求文档 的功能和性能 2)软件出现客户需求不能容忍的错误 3)软件的使用未能符合客户的习惯和工作环境(易用性兼容性) 4)软件超出需求文档的范围(需求bug) Bug分类: Defect,缺陷:存在于软件中的…
一个编译的BUG,在原生的VS2015中没有问题,但更新至VS2015 Update1之后就有了,大概是Update1用了新的编译器,害得我好苦.经测试,VS2013 Update5中也存在这个问题,大概是用了相同的编译器. 下面我们来重现这个BUG,用最简洁的代码来重现这个BUG. 测试代码 一个接口 一个很简单的接口,定义一个“是否锁定”的功能 public interface ILockable { bool IsLocked { get; set; } } 一个实体 同样一个很简单的实体…
碰到了一个郁闷的问题,修改inlineformset时,全部删掉子表,再新增一行时,报错. 背景: 用django配合jq做动态表格,实现用js动态添加/删除行,并通过inlineformset更新到数据库.示例代码在这里:https://github.com/TommyU/dynamic_form/ 重现步骤: 1. 新增一个待办事宜,并设置清单,如下: 2. submit 3. 回头修改(通过列表的update按钮进入),把以上数据全部清空(圈起来的),只留下最后一行空白行,提交. 然后报错…
转:http://www.jslover.com/code/527.html ios/iphone手机请求微信用户头像错位BUG及解决方法 发布时间:2014-12-01 16:37:01 评论数:0 分类:code   最近我们的平台上线了几个游戏,iphone同学特别是iphone6 plus测试发现,频繁出错头像错乱的现象,即列表中,个别人的头像被“互换”了.这个很难解释是如何造成,总之就是当微信遇上iphone6擦出的火花.... 写了一组测试用例子,可以很容易重现这个BUG: http…
某公司为我服务的甲方公司开发一个挺重要的应用.已经上线了一年多了,不停的修修改改.也算正常使用.正所谓,秀恩爱,死得快.No 作就No Die.也少知道是那个Smarty Pants闲的蛋疼说新修改的这版咱不在Windows2003上玩了.咱们改在Windows2008上玩吧. 在这里我要插一句.咱们码畜界有三个真理 第一: 程序要运行的好好的,别贱贱的去重构. 第二:如果你修改了程序,还更改了环境.你丫死定了 第三:如果你改了程序,还换了环境,还用了你不太熟的东西.你死了都活该,必有诡异的事搞…
分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经验的同事问一下思路,因为在那种开发多年的大型系统里,经常会反复出现同样原因的bug,原因都类似,改了一处,过一阵子另外一处又冒出来,而且无法根治.比如:我那个系统里有个特别危险的API,接口参数比较难用,一旦有人用错了某些情况下就会出诡异的现象,解决很简单,找到调用这个API的地方把调用方式写对就好…
分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经验的同事问一下思路,因为在那种开发多年的大型系统里,经常会反复出现同样原因的bug,原因都类似,改了一处,过一阵子另外一处又冒出来,而且无法根治.比如:我那个系统里有个特别危险的API,接口参数比较难用,一旦有人用错了某些情况下就会出诡异的现象,解决很简单,找到调用这个API的地方把调用方式写对就好…