早几天产品上线,发现了一个bug,而这个bug以前是不存在的,也就是说是我修改了另外一个功能的时候致使了原来正常的一个功能出现了问题。这个bug的 缘由很简单,我有一个对象,在页面上会用到,而我如今须要把这个对象存到数据库,里面有一些信息是不须要的,为了不存入过多的东西到数据库,我在存以前 就清空了这个对象里面的一些数据。我忘记了我是在操做同一个对象,个人这个清除操做同时影响到了这个对象在页面上的展现,其实这个问题不是技术问题,也不 是能力问题,只是由于人都会有一些失误或是不可能时时刻刻都保持细心。那么咱们要怎么样去规避这样的问题。
若是没有单元测试,要规避这个问题,我想必需从如下几个方面着手:
1. code review,若是有另外一我的去review你的代码,那么发现这种问题的机率会变大,可是以个人经验,review的人一般不会太仔细去看别人的代码,通常只能发现一些很明显的问题。
2. 增强回归测试,这也是有人的因素在里面的,一般回归测试的时候测试人员关心的主要是你修改的功能,其它的功能即便有问题他们也可能不会注意到,很容易被忽略过去,若是有自动化测试可能会好一点。
上面的方法都带着人的主观因素在里面,若是能在一开始写好相应的单元测试,一旦新的修改影响了旧有功能,那么测试必定跑不过,那么很容易就找出问题来了, 不过这里又有另外一个问题,单元测试真的不是那么好写的,对开发人员的要求特别高,不过不去试着写就永远写不出好的代码来,为了不这些bug,咱们也应该 努力开始写好单元测试。html