2008年7月27日星期日

Cruise 发布前夜

周五在印度,和印度的同事一起准备Cruise的发布。没料想到的情况有:

License server所创建的evaulation license是一年有效的, 里面没有限制用户数量,事实上用户数量是没有设置的, 而cruise所期待的evaulatio license是一个月有效,6个用户。 在发布前两个小时一切就绪的情况下, 启动server输入evalution license, 我们得到的是NumberFormatException, 再修复了这个问题后发现,license server中key所对应的value是可以不存在的, 于是又有了NullPointerException。

由于对于License这部分的封装和测试做得比较好(不是Mock 测试, 而是实实在在的测试了解密,验证的整个过程), 我们很容易的用发生问题的license 重现了bug, 编写了两个测试,用了半小时左右来修复。 测试提交。

在就是修改license server, 使其符合cruise的需求, 大约也是半小时左右。

测试很重要,没有测试的覆盖,我和Chris无法从容的修改Cruise和License app, multi-skill非常重要,cruise用java编写,而license app用ruby rails编写。在这种情况下,以前在contention积累的rails经验帮了我。信任很重要,所有的人各司其职, 没有慌乱,也让我们减少了很多压力。

测试是我们的好朋友, 在这个重要的时候,是这些好朋友将我们从混乱中拯救了出来。

Cruise将按计划发布。

2 条评论:

taowen 说...

如果测试是用mock写的,你得花大半的时间和mock测试做斗争,然后再用大半时间去平复你想骂人的情绪,最后只要花一点时间来改你的代码,可能就两行。

胡凯 说...

衡量好测试的标准不是100%的覆盖率,也不是是否“单元测试”, 最重要的是他是否能给团队带来信心。

这句话是陶公子上次在open-party说的吧, 记忆犹新