写软件不可避免会有BUG,如果一个BUG长时间解决不了,那是相当郁闷的一件事情。我总结自己这几年的工作,得出一些调试BUG的经验,在此加以记录,以便后面的工作少走弯路。如果碰巧我的经验对别人有帮助,那我就是赚了。
1.快速调试:把测试用的数据从大数据量换成小数据量,缩短调试周期,这一经验不适合压力测试。
2.隔离调试:把整个业务处理流程中的功能点加以梳理,每次只调试一个功能点,屏蔽掉其它功能点,从而定位到出错的功能点。定位到功能点后,在如此去定位出错的代码行。
3.记录无错版本和出错版本之间的变化点,推测可能出错的地方,再一一加以验证。
4.如果软件处理的是海量数据,处理的过程就会非常长,软件一旦在处理的过程中出错,所有的过程又得重新来做,调试也是如此,需要很长的时间才能运行到出错的地方,很是浪费时间。好的做法是:在不稳定 的功能点和其它功能点尤其是在其上游功能点之间建立松耦合。举个例子:假设一个软件的业务流程中有extract-->flush-->merge三个功能点,最后一个功能点merge容易出错,那么可以这么来做:把flush处理后的中间结果保存成文件代替保存在内存中,而merge的输入变成读取文件。这样merge出错后,前两步就不用在重新执行了,直接启动merge读取中间文件即可。
5.如果实在调试不过去,可以向经验丰富、了解此软件的人请教,也能节省不少时间,毕竟当局者,迷旁观者清。