在测试的路上,学习无止境。。。 相信自己,快乐每一天。。。 紧急通知: 支付宝急招资深软件测试工程师,详见 http://job.alipay.com/recruit/offerDetail.htm?offerId=21683,同时招聘资深测试开发工程师。有意者投递简历至:xin.maojx@alipay.com

跟踪一个紧急发布引发的思考

上一篇 / 下一篇  2010-03-24 21:04:48 / 个人分类:测试技术

事情发生在上周四,应该是上周四吧,日常发布后的第一天下午,自己心里问自己,恩,是的。。
前端开发BY找我,说有一个紧急发布。。。。哦,那估计是AA了,否则不会来找我,心里如是想。O,继续听他说,说是线上AA系统的XX勾选了没有用,咦,怎么会有这事,本周一我们用例回归过XX的啊,怎么会出现如此大的问题,我们竟然没有发现?不可能。我特意去问了下本周负责AA回归的同学,XX支付是OK的啊。。。那难道是这周一回归分析没有做全,有漏网之鱼?不相信会有此事,打开运维同学本周的项目发布公告,AA的东东基本上都在我掌握范围之内,怎么可能?如果答案是否定的话,那线上怎么会出现呢?
BY告诉我:XX项目中发现了一个线上缺陷:即在AA上BB兑换失败后,AA选择不了。他在开发环境改好后,让项目组的测试同学HY验证是OK的了,所以本周三就上线啦。。。
O?难道是为了修复一个bug,而引发了新的bug? 很有可能。我去问HY,她清楚这个bug的吧?她说,当时开发告诉她这个bug要发布,让她验证下这个bug, 她只是能保证这个bug 是fix的,但她也不知道影响改动的范围。。。这个先不说啦,先把bug 修复了,在预发布环境上确认后再追踪、分析原因吧,毕竟会员还在那里等着呢。
事后,BY查代码说,这个bug没有上线,WHY???那问题又回到了开始前,为什么会出现呢? 突然想起小沈阳的为什么呢,为什么呢。。。。很是疑惑。
解铃还是系铃人,BY最后查出来原因如是说:
在修复XX服务化项目中发现的线上缺陷时:保存JS代码编码格式错误引起的,察看了一下日志:压缩之前的.source版本编码是正确的,压缩后的版本编码也是正确的,所以我们在测试环境上自测时并没发现这个故障,但是在svn ci 提交的过程中(由于该步操作是由前端手动提交的)失误的将一个编码错误的版本发布到线上去了。
 
也就是说,本来这个bug是要发的,测试环境也是OK的,但是在提交了一个编码错误的版本上线,引发了线上XX不可用,从而导致紧急发布。
写到这里,想起了在XX服务化项目一次晨会中,我和WW、DL在晨会中达成过一致:如果发现收银台的缺陷,而这个缺陷线上也存在,那么只2种后续措施,如果影响范围较大或有资损的这类bug,马上提线上缺陷,甚至紧急发布fix;那如果影响范围不是很大的话,在项目组中提线下缺陷,标题以[历史遗留][AA]这2个关键字打头标识,然后开发评估,本期项目中要不要改,改的话最好,正好可能利用项目的优势,进行较大范围的回归,那不改的话,项目上线后这些bug转成线上缺陷,最终也是会fix的。
 
回到主题中来,事情已经发生了,那有可能避免么?可以看到的是,就算提交错了,我们在预发布环境是很容易发现的。随便一笔支持XX的交易就可以发现,但为什么没有做到,我觉的大家大多数情况下看不到做预发布的重要性,必要性,以及做了会有什么好处。可能有些极端,我很想把这个问题看成工作的一次不小心疏忽。
 
 
 
那现在总结:
1. 开发同学修复bug的急切心情我们理解,难道我们不想嘛?其实,测试同学心情也是一样的,想又快又有质量的上线,但这个要有一个度,我们都有流程,都有面临不同问题的应对措施,为什么不执行呢?我当时在整个发布包中都没有看到。。。汗,这种问题在我脑海中已经有一年多没有发生过了吧。
2. 测试同学不要轻易答应,开发让我测什么我就测什么,作为测试,我要知道改动点在哪里,范围有多大。。。同时,要保持高度的敏感,我说的敏感是指,当开发告诉要这个缺陷要上线,在开发环境上帮忙测一下时,我不仅要知道,我要测的内容,我还要知道,我为什么要测,测试的依据在哪里?有没有流程可依。
3.预发布环境确认的问题,这里只想重申一下,不想再多提。
4. 对AA系统有任何改动,哪怕是一个小小的文案,最好知会到AA对应的开发、测试同学。

TAG: 流程重要性 预发布 紧急发布

 

评分:0

我来说两句

Open Toolbar