关于偷偷测试一遍

东西交付之前偷偷测试一遍,真的可以避免很多无谓的加班!

 

最近游戏上线,出了太多不该出的错误,加了很多冤枉的班。

逛知乎时,看见了一个好帖:有哪些老鸟程序员知道而新手不知道的小技巧?。对了,别问我为什么加班这么忙还有空逛知乎,劳逸结合总是需要的。

大多高赞回复都是老生常谈,没什么特别吸引我的,倒是这个回复,赞数不多,却在不经意间打动了我。

东西交付之前偷偷测试一遍;
问别人之前偷偷谷歌一下;
版本发布之前反复检查七八遍,用check-list,多想想老婆孩子,恩;
用谷歌,用英文搜索;
做十件事不如做好一件事,夺取话语权只有一条路径,就是超出别人的预期;
心要皮实,但话语和脸皮要柔软,记住有句老话叫,伸手不打笑脸人。
先假装你就是专家,慢慢为了装得像,不得不去学,假的就成真了。

作者:ershou

每一条都很有意思,很认同,最打动我的是第一条,东西交付之前偷偷测试一遍,这个要求一点不高,但是太多人做不到。这几天的加班,如果大家都能做到这一条,就没有必要了。

讲一个很多年发生我身上,改变了我态度的事情。

从小喜欢折腾各种有创造性的东西,但是作为一个天资普通的小孩子,我是粗心大意,凡事得过且过,没有太高的自我要求。比如小时候自学无线电,焊功始终不过关,就是随便焊一下,懒得老老实实去除氧化层,好好焊接,就赶紧把元件堆到一块,看看最终效果。可想而知,结果会有大量虚焊假焊,往往都不成功。

做了程序员以后,也没有完全改掉这个习惯。直到10多年前的一天。。。

当时在做splinter cell 4 xbox 360版本,作为一个程序员,我的工作是优化。

优化这事情,可大可小,开始会有很多low hanging fruits,轻轻一跳就能够到,进展会很快。但很快好捏的软柿子都捏完了,开始要处理一些真正困难的事情了。

某一天我做了一个底层优化,具体是什么内容早已记不清了,所谓的底层优化,往往牵连会比较广,有较大的影响范围。我也做了不少测试,涵盖了PC debug、release版本,也简单测了一下xbox 360的版本,没什么大问题,就check in了。

第二天的daily构建版本,editor启动不了,当时还没有意识到,就是我的改动导致出错。其他程序员排查后定位到是我的问题,赶紧revert,然后细心修复了版本。但是在上百人团队中,耽误半天的editor新版本发布,其实是有挺大影响的,我也觉得挺过意不去的。还是我前面一天的上传测试不彻底,漏了编辑器测试。

本来这事情就这么完了,但那天QA的老外,突然兴起,写了个全项目组的邮件,说了一下项目bug情况,然后做了个计数器,表示这次editor没搞定,今天的version breaker是我,措辞还是蛮严厉的。这下捅了马蜂窝。周围没有人太多责怪我,Leader和其他程序员也都来安慰我,做得越多自然错得越多,其他程序员不做全局性的模块,自然不会block版本。

但作为一个多愁善感的程序员,我还是深深的感到被伤害了。

我先是拒绝接受,哥天天辛辛苦苦加班,拼命在上百万行的代码里面抠别人不在乎的半个毫秒,犯点错怎么了?谁还不犯错啊?

再是逃避,妈的我的职业生涯完蛋了,上百人在嘲笑我啊,洋大人盯上了我啊,我不是一个好程序员,我耽误了策划和美术半天啊,几十个人日啊。我不做优化了,多做多错,版本是大家的,慢点也有别人顶着,让美术去减面啊,让逻辑程序去优化啊。。

然后是接受,耽误了就耽误了,我还是一个不错的程序员嘛,别人怎么没本事break版本呢,哇哈哈哈。洋人处理方式值得商榷,但是就是论事的说,的确是我没有做好。

最后是反省,我的一行代码,可以影响很多人,整个项目这么多程序员,每个人每天有10%可能break版本的话,这项目没法做了。做得开发越底层,影响越多人,我应该有这个自律。虽然我会说自测很浪费时间,很影响我的工作效率,但是这也是对其他同事的一种尊重,谁也不想每天得不到可用的版本,上班第一件事情就是查别人的bug。

难过了好几天,终于打开了心结。我决定要守护团队间的羁绊,做一个更负责的男人!

过了几个月,项目快要封版本。主机游戏开发,对质量要求极其苛求。crash之类问题是绝对无法接受的,所以大家修改bug都非常小心翼翼了,能不改就不改了,宁可漏过一千,绝不改错一个bug。这时候我发现了一个性能瓶颈,在一个场景里物理计算非常慢,有布料在主线程计算。我和leader说了情况,说我想看看,leader说之前有别的程序已经研究了一周多了,说没法搞。我想了两天,觉得可以试试,于是硬着头皮,把相关物理计算剥离到xbox 360的第三个cpu上,把原来同步计算的物理,改成异步计算,通过消息来传递信息,尽量不增加通讯的开销,以及不使用双buffer浪费内存。做了一周,自己狂测了三天。然后决定要上传了,因为是最后几天了,所以所有上传都要其他senior程序一起review。那个review代码的同事压力非常大,因为我改了上百个cpp文件,而且多线程改动了很多架构方面的东西。。。他一边看一边和我开玩笑,说看来你又要成为version breaker了,这个changelist不break版本,还有什么会break版本呢。

我自己又多测试了几遍,再次review改动代码多次,想到了version breaker的不愉快经历,犹豫了很久。最后还是鼓起勇气,觉得自己已经测试非常彻底了,咬牙上传代码。后面两天,压力非常大,一有人说版本crash了,我都会第一个跑过去看,生怕是我的改动引起的。那两天经历了非常大的压力,但所幸我的改动非常安全,没有引起任何问题,而且充分利用了xbox的多核,提高了不少效率。

杀不死我的,只会让我更坚强。 by 尼采

每一个程序员,都是慢慢成长起来的,总有一些关键的节点,突然就让你成熟了,懂得了怎么做一个更好的程序员。承受了这几天的压力后,我明显感觉,自己更有信心面对其他的挑战。同时我也深深感谢那个version breaker的经历,让我真正开始慎重对待每一个上传,测试每一个改动,这,也就是我们职业化的起点。

In addition, 鉴于知乎发帖有错误不会造成太多负面作用,所以本文未仔细校对,在发生以下情况时,谢绝用本文观点攻击作者

  • 拼写错误
  • 句子不通顺
  • 错别字

原文首发于知乎专栏【游戏开发随笔】

作者:顾煜

原文链接:https://zhuanlan.zhihu.com/p/20675275

 

关于腾讯WeTest (wetest.qq.com)

 

腾讯WeTest是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试经验帮助广大开发者对游戏开发全生命周期进行质量保障。腾讯WeTest提供:适配兼容测试;云端真机调试;安全测试;耗电量测试;服务器性能测试;舆情监控等服务。

最新文章
1客户案例研究:专家安全扫描,守护金融银行小程序安全和私密性 WeTest私有化部署的定制扫描平台让金融银行客户能无成本接入扫描系统并迅速上手使用。客户能方便快捷地根据定制手册进行自助扫描,根据生成的扫描报告,详细洞察漏洞,快速识别并准确定位问题根源。
2客户案例研究:专家渗透测试,洞察电子商务小程序重大交易漏洞 通过WeTest渗透测试服务,某知名零售公司旗下的在线购物类小程序中发现了8处安全风险,我们的安全专家为客户提供了详细的漏洞报告,提供了较为清晰完整的安全加固方案。在回归测试中,中危以上风险均被解决。
3自查小程序4大安全隐患!文末免费赠送小程序安全扫描专业版! 腾讯WeTest现面向小程序开发者开放免费申请使用小程序安全扫描专业版,助您提前发现全面的安全漏洞。扫描文中问卷二维码或点击问卷链接,即可报名参与免费领取活动。
4浅谈渗透测试服务在泛互行业带来的价值 在泛互联网行业中,渗透测试服务对于保障企业的网络安全至关重要。
5云手机卡顿/无特定设备/商店登录受限怎么办?WeTest专有云帮您解决! 公有云满足了大量小微企业、个人的测试需求;随着客户深入使用,也遇到了一系列新问题。本篇将对几个常见问题予以解答
购买
客服
反馈