美文网首页互联网科技软件测试程序员
五年阿里改Bug的技巧和心得体会

五年阿里改Bug的技巧和心得体会

作者: AI悠米精 | 来源:发表于2018-12-26 12:56 被阅读12次

那天同事问我你有什么突出的地方,我想了半天,觉得我最突出的地方就是改Bug比较快,所以今天我就对改Bug的技巧做下总结,欢迎补充。

途径
重启试试
作为人生四大真理(多喝点水,重启试试,喜欢就买,不行就分),重启有时候能解决很多莫名奇妙的bug,不过大多数没什么用,现在我开发的帮助中心充分能体现重启的威力,经常访问不到,但是重启下就好了。
我这里还有很多的测试知识点就不一一列举了,如果你想在软件测试有一个好的提升可以加我的群:903217991,来跟大牛们一起学习提升、升职加薪。

断点调试和日志

断点调试对付逻辑上的bug非常有效,偶尔也能对付高级bug。咱们组基本上都会用断点调试,不像前两年我面试别人的时候,最常规的问题就是你平时怎么调试,几乎所有人都说system.out。啰嗦一句,不知道大家有没有发现,作为一个程序员,开发效率主要是被各种莫名其妙的Bug拖累下来,有时候你发现一个功能写了一天都没什么进展,总有那么一两个bug是你无论如何都过不去的。

面向谷歌编程

这个主要是用来对付你从来没有见过的bug,或者报错信息是你从来没见过的。谷歌大多数情况下能帮你找到正确的答案。与之类似的还有面向百度翻译编程,实在懒得看一大段出错信息,可以贴到翻译工具里面,虽然很少有提示信息超过一句话的。上次一个哥们给我打电话,说我们的服务器启动不了了,你帮我看下吧,我说行啊,你把日志发我吧,他就发了我一小段话,英文的,大致意思是密码过期了,非常简单。我让他改过密码就解决了。

找别人帮你看看

这个途径也非常重要。记得刚工作的时候,我有个编译错误无论如何都解决不了,我找我师傅过来,我师傅看来半天说,你的逗号是中文的。我说不能吧,他让我把那句话粘到记事本里,我一看,果然是中文的。顺便提一句,大家最好设置下自己IDE的字体,好的字体不仅赏心悦目,对于查bug也是非常有用的

心得

如果重启一次没用,那重启两次一样没用

对于发现不了问题的Bug,重启一次解决不了,那就不用再浪费时间重启了,再重启肯定也解决不了。这个道理我很早就想通了,但是总是心存侥幸一遍遍重启浪费时间。
我这里还有很多的测试知识点就不一一列举了,如果你想在软件测试有一个好的提升可以加我的群:903217991,来跟大牛们一起学习提升、升职加薪。

如果你调试过了的地方没有问题,那很可能这一片代码真的没有问题

浪费时间的另一种途径,就是在这一块找不到问题,再来一遍,甚至两遍。最近印象比较深刻的就是上次有个同事遇到一个 神奇的bug,他从头到尾都没用过缓存,结果他的查询结果总是被缓存起来,我帮他解决的时候,他才发现,原来是别人在同一个配置文件里,开启的全局缓存

快速浏览异常栈,只看与你的代码/配置有关的地方

很多人看见一片异常头都大了,我也头大过,自从我知道这个技巧之后,我的头就没那么大了。Java EE的异常栈非常有特点,最有用的地方不是在最上面就是在最下面,我看异常栈的时候,喜欢从下往上看,所谓从下往上看就是从最下面的一个Caused By:xxx,这里是最根本引发异常的地方,有经验的人一看就能看明白异常种类。从这里看出的异常非常考研一个人的开发经验,这里的异常一般都跟框架使用规则有关。从上往下看异常,最容易找到自己代码里的异常,比如空指针啊,数组越界啊,都是在异常栈的最上端,这是最能指出你代码出问题的地方。

多用用排除法

对于久攻不下的bug,请先遵循心得一和心得二,然后再看这里。尝试着改变代码里的某些参数,修改某些配置,能帮你快速定位问题。在使用排除法的时候,大家一定要时时刻刻牢记心得一和心得二。今年以来遇到的最顽固的bug是springMVC和spring结合的时候,对于更新操作一直不能拿到数据库的写链接。调试这个问题的时,我先用Junit测试通过了service方法,发现单元测试的时候一直没有问题,一启动web容器就会出现这个问题,然后我就一直在改spring的配置文件,各种尝试都无法奏效,当时我就忘记了既然spring没有问题,问题肯定出在springMVC的配置上了呗,这个问题调了一天半,最后我干别的事情的时候,突然顿悟了,后来去网上找了找,最后还真是springMVC的问题,由于springMVC在调用链的上端,它也可以管理事务,导致spring无法管理事务,所以没办法开启一个写事务。

知识和想象力非常重要

技术都是相通的,你懂的技术越多,你对技术的理解越深,你越能找到Bug背后隐藏的东西。反过来,知识很可能变成我们的障碍,使我们变得自负,顽固,限制想象力,要时常提醒自己,莫要止步不前

其他

要学会使用IDE。这点非常重要。全文搜索和文件搜索是非常有用的功能,直接搜索能比你从一堆文件里找到你想要的快很多,IDEA的搜索功能非常强大。
我这里还有很多的测试知识点就不一一列举了,如果你想在软件测试有一个好的提升可以加我的群:903217991,来跟大牛们一起学习提升、升职加薪。

重构时,最好使用IDE提供的工具,IDEA的重构功能也非常强大

对于由于自己疏忽,漏写了什么东西导致的莫名其妙的BUG,看异常栈能大致定位到你的问题,所以还是谨慎点,这个基本上也没有什么防范的办法

Java EE是一种仪式感非常强的技术,换言之,某个地方该出现什么,虽然你不知道为什么要出现这个,但是最好像举行仪式一样让它出现,但是千万不要画蛇添足,这样就能保证你写的程序大差不差。

最好自己能明白自己写的是什么。这个看起来有点像废话,但是你调用其他人的东西的时候,最好读读API,如果没有的话,搜下。现在咱们用MAVEN,这个工具非常好的一点是能帮你把源码下下来,实在不明白的地方可以在人间的源码里打断点,跟着走。

相关文章

  • 五年阿里改Bug的技巧和心得体会

    那天同事问我你有什么突出的地方,我想了半天,觉得我最突出的地方就是改Bug比较快,所以今天我就对改Bug的技巧做下...

  • 查看ANR日志

    标签(空格分隔):Android改Bug技巧 【Android】抓取log(anr) 1、anr问题的log一般都...

  • 技巧和bug

    首先,一个人的人品好坏与他说的话是否正确,并没有必然联系。就是说一个坏人,有时候也会说出正确的判断。也能解出高阶多...

  • 改bug

    一年以前的代码,又要改了。由于之前缺乏单元测试和回归测试的缘故,2015年1月通过测试的代码,在5月份新增功能后,...

  • 改bug

    步骤1:复现 都说如果一个bug可以每次复现了,那里它的解决也不远了。这里其实有一个隐藏的道理——就是如果你每次都...

  • 改bug

    想隔气,总能找到理由?️?️?️?️

  • 改bug

    这算是我遇到的没改的比较顽固的bug了,虽然在很多大神看来这个很简单,但是木有办法,菜鸟的我只能慢慢来,一边查文档...

  • 一周工作心得

    最近一段时间工作就是:改bug,改bug。 哈哈,可能别的行业的朋友们不知道改bug是个什么鬼,简单解释下,...

  • 2019-01-19

    资本寒冬下,Java程序员该何去何从 “上午在改BUG,下午就被裁掉了” 继阿里、京东传出缩招的消息之后,国内影响...

  • 忙碌的一天

    昨天一下子来了50个bug,又遇到某位同志不太给力,导致今天一直在改bug和担心改不完的心情里,自己改的速度也挺慢...

网友评论

    本文标题:五年阿里改Bug的技巧和心得体会

    本文链接:https://www.haomeiwen.com/subject/unhhlqtx.html