闰年bug导致微软Azure故障
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n2月29,微软的云计算平台出现故障,现在原因出来了 http://t.cn/zOVFOtS 很简单,无证程序员在计算日期的时候偷懒了 :需求是要算出第二年的今日,码农实现的时候直接取了当前日期,然后把年份加一,结果2013年2月29号悲剧了。
\u0026#xD;\n
新浪网研发中心总经理符庆明指出:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n这个故障报告写的很全面,可以学习他们对故障的分析和处理改进思路,值得一读
\u0026#xD;\n
Wang_Hong_也说:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n出问题后的Root cause analysis 做的不错,针对Prevention, Detection, Response, Recovery 四个方面做出了改进计划。
\u0026#xD;\n
发生问题的不只是微软,杜安放-SHA提到:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n我们的系统也出现了这个问题,js里面简单的给年份加上1,导致js出错,导致整个业务流程中断。
\u0026#xD;\n
揭巴说:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n很多bug都是这样产生的,测试不够充分吧。但这个bug完全可以避免,把年份+1这种操作很多高级语言的Datetime类中都应该有DateAdd之类的函数,而不是把日期的年份拆出来单独加1再拼回去
\u0026#xD;\n
iSwanliu指出:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n顺便贴个软件随想录里关于微软和闰年的典故。1991年Joel同学在微软当vba的程序经理,比尔盖茨来开review会,问你们有人真地看 过有关实施的所有细节吗?比如,所有这些日期和时间函数。Joel答,是的,比如1900年的2月要特别处理,1900不是闰年。。。http://t.cn/zOIHpqR
\u0026#xD;\n
淘宝日照的点评很到位:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n单点相关的逻辑需要全盘代码review,严格控制代码质量,这些地方不适合多人协作。另外一点就是手自一体,不仅仅需要自动化,也应该考虑关闭自动化提供手动模式
\u0026#xD;\n
闯车了的总结是:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n事实证明,一个小小闰年bug,就能让你标榜高可用的云计算平台,像多米诺骨牌一样迅速坍塌。一个仓促的决定就能让一切瞬间成为泡影。
\u0026#xD;\n
Google如何做测试?
\u0026#xD;\n伯乐在线官方微博发布的一条微博说:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n《Google是如何做测试的》James Whittaker是Google工程师。在他所有被问及的问题中,最多的就是问Google是如何做测试的。尽管在博客中(google testing blog)中有过零碎的解释说明,但 James 特意写了一篇文章,以解答这个问题。(其实Google也没有真正的测试部门,全文……http://t.cn/zOI7W65 )
\u0026#xD;\n
接下来,伯乐在线官方微博在评论中又推荐了另一篇文章:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n前两周有篇介绍文章:《Facebook是如何做自动化测试的?》(http://t.cn/zOGIwtX )
\u0026#xD;\n
HuZhenbo总结:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\nGoogle 的做法:1 测试没有独立的部门,他们是产品团队的一部分;2 软件质量更多是开发人员而不是测试的责任,整个团队都有责任保障软件的质量 3 软件测试工程师主要的工作是自动化测试框架的搭建和代码编写 4 除了软件测试工程师,还有软件测试开发工程师,他们的工作就是保证软件的可测试性!
\u0026#xD;\n
walking熊说:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\nJames Whittaker貌似最近回微软了。完全靠Dev去保证代码和产品质量是不合理的, 人总是有避免发现自己的错误的倾向。保证可测性其实需要PM、Dev、Test共通协作,剩下的Test工作主要安排在tester角色, google的开发测试和测试有合并的可行性。所以个人认为, PM、SDE、SDET还是比较高效的工程组合。
\u0026#xD;\n
虞卿一言指出:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n \u0026#xD;\n开发同学本身需要拥有良好的测试思想和实施测试的各种能力
\u0026#xD;\n
\u0026#xD;\n\u0026#xD;\n有了能如何,现实中有多少家公司,多少项目组在做?由于工期紧张,有多少开发是从实现市场价值的角度去写代码的呢?
\u0026#xD;\n
welkinwalker给出参考:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\nhow google tests software 是一个系列,都在http://t.cn/GV8fL。现在都写到 part seven 了,这个是part one的翻译版
\u0026#xD;\n
Memcached客户端grizzly评测
\u0026#xD;\nSinaAppEngine是Sina App Engine的官方微博,昨天发表微博,推荐grizzly:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n《Introduction to GrizzlyMemcached》由于memcached是集中式的缓存,所以他的客户端就很重要了。这篇文章介绍了使用grizzly(一个用java 语言实现的NIO框架)作为memcache客户端,以及这种客户端的I/O模型,跟其他客户端的连接模式对比,并做了一些性能对比测试。http://t.cn/zOIGfat
\u0026#xD;\n
PiouseLeo指出:
\u0026#xD;\n\u0026#xD;\n\u0026#xD;\n看了一下benchmark的结果,没有看错的话,GrizzlyMemcached除了在multi-set上有优化,性能脱颖而出之外,其他操作的性能都与JavaMemcached不相上下。不知道GrizzlyMemcached的稳定性,以及作为一款开源组件的生命力如何。
\u0026#xD;\n
今日微博推荐
\u0026#xD;\n \u0026#xD;\n推荐理由:关注并经常推荐很多国外的编程资源,可以通过“【关注】”关键字搜索他的微博。
\u0026#xD;\n