上海育创带你 Bug 程序调试
复杂系统总是源于简单系统的演化,软件开发作为一个复杂的系统,从开始的编写到最后一
次的运行,不是一蹴而就的过程,不论你如何费尽心机,bug 总是对我们一往情深,原因就
是:
Because when you fix one, you create two.
虽然
编写高质量的、没有 bug 的程序,是每位程序员所追求的目标。但随着软件规模越来越
大,功能日趋复杂,
可能存在的 bug 就越多,“
没有 bug
”
这一目标也就变得越来越困难。
当然,如果一个软件不增加新功能,后续工作就是只要一有用户上报 bug 就修复掉,那么最
后做到几乎没 bug 甚至完全没有 bug 是可能的。比如,你写一个“hello world”是几乎不可
能搞出 bug 来的。
问题是,这样的模式存在极大的浪费——本来可以加入新功能的,新功能往往也就意味着新
bug 。
那么现在问题来了——不停地加入新功能(同时修复 bug),不停地修复 bug 和撒手不管哪
个收益更高?在这里我们先划分下
Bug 缺陷等级和缺陷优先级。
1、Bug 缺陷等级
这个划分也比较灵活,有分三级、四级的,也有分五级的,这里我把他分为了五级:
(1)致命:一招毙命的缺陷,使你的系统无法运行,有造成数据泄漏的安全性问题。
(2)严重:可以引起易于纠正的异常情况、可能引起易于修复的故障或对产品外观难以接
受的缺陷。
(3)一般:指不影响产品的运转和运行、不会成为故障起因,但对产品外观和下道工序影
响较大的缺陷
(4)轻微:轻微缺陷是指对产品外观和下道工序可能会有轻微影响的缺陷
(5)建议:增加用户使用体验的建议性问题。(一般情况下,建议也为做为缺陷的一种,
这个跟系统的类型与需求有关)
2、缺陷优先级
当问题处理人员在面对许多问题需要处理进,就需要问题进行优先级排序。我们做事情的安
排,操作系统有处理进程等都在使用着优先级。