近做Fix bug 有些时间,总结一下自己的经验。

  对于一个bug,一般分四步来修正: bug 重现, bug定位,修正bug, 测试。

  1、Bug 重现

  首先看看bug的来源, 又从PD的需求变化, 有客户反馈回来的,有本身QA报过来的,还有些是自己发现的。  这一步的目的是尽可能用简单方式重现bug, 也是用少的步骤去重现bug。 这样可以减少涉及的模块和代码,下一步定位bug越容易。当然对那些需求变化的bug 这一步可以省略掉。

  这里Bug 重现需要满足两条:

  1) 每次操作这个bug都能重现

  2) 尽可能的较少操作的步骤。

  一般比较难的bug  都是很难重现的bug。 比如内存泄露的,Com 引用计数不对,还有系统配置不对,线程进程同步问题。  这时候心态一定要平和,否则很难重现这个bug;是万一重现,也忘记步骤:)。

  还有对那种很难重现的bug态度,一定不要轻易否定(汽车对香草冰激凌“过敏”)。

  2、Bug 定位

  第二部的目的: 根据第一步确定下来的步骤,在代码里找到错误出现的位置。

  对于那些数据不正确的bug,可以用折半查找。 把数据源头(输入点)和错误发生的位置(结束点)之间,用这办法很容易定位bug出现的位置。 这一步忌讳的瞎猜。

  一般要借助调试器,如果没有也可以用log文件帮助,来辅助定位错误出现的位置。

  完成前两步,这个已经完成这个bug的80%的工作量。接下来两步比较简单。

  3、Fix Bug

  找到bug的位置,接下来是分析bug 的原因。 理解代码,这样才能真正的fix掉。

  只要有这个样一个心态,是bug总能修掉,基本上问题都不是很大。

  4、测试

  测试bug是不是真正的修正,还要避免引入新的bug,防止功能回退,要做回归测试。

  这个尤其是对到产品发布后期,尤为重要。引入Code freeze 阶段。