论测试人员学习代码的重要性

继续老生常谈,聊聊软件测试人员学习代码这个问题。

测试人员学习代码的重要性是毋庸置疑的,问题在于这种重要性会体现在哪些场景中,在这些场景中又会发挥哪些作用?我们今天就这个问题详细聊一聊。

场景一:树新风(tree new bee)

我认为这是最重要的场景,没有之一。对于一个测试人员而言,在与项目人员谈论问题时不聊聊代码结构、不聊聊数据库的引擎、不聊聊tcp的三次握手,就会觉得逼格瞬间low了很多。

而且面对众多的开发人员,如何快速的建立彼此的信任度,让开发人员觉得你是个靠谱且牛逼的测试呢,最好的解决方案就是他们说啥你都能听明白,且要时不时的插两句,而且最好是英文,千万别说中文,否则逼格又低了。

如果你发现了个bug,仅仅截图发给开发人员,那给人的感觉测试工作就是从网吧随便拉个人就能干的活,but,如果你顺便告诉开发人员这个bug是你哪行代码的哪个变量搞错了,那是不是瞬间就觉得这玩意最少也得是个计算机本科才能干的吧?

论测试人员学习代码的重要性

以上纯属扯淡,我们还是正经的来聊聊吧。

场景二:精确定位问题

我们知道,在游戏世界存在着几条公理,其中之一就是:越是中国人开发的游戏,功能之间的耦合度越高(尤其是付费)。

面对高耦合度的功能,可能我们在功能a中发现了一个bug,实际到这这个问题的来源可能是功能b,面对这种问题,如果是纯黑盒测试,是很难精确定位问题的。直接抛给开发还是阅读代码理清逻辑?这是个问题。毕竟,真相只有一个!

场景三:清楚功能变动

游戏世界另一条公理:当一个开发人员信誓旦旦地说他没有修改代码的时候,往往说明他修改了代码。

口说无凭,如果看不懂代码是不是很容易被蒙骗过关啊?懂代码就不一样了,几个命令就能看到svn或git提交的日志和修改的代码片段,机器从不欺骗我们。你看,学了代码,是不是觉得世界变得有爱多了?

场景四:提升测试效率

提升效率这一点上并不能迷信代码的力量,并非适用于所有测试内容,有些简单的事情游戏里随便点点就可以测完,如果写代码去测试反而让简单的事情变得复杂。但是对某些测试内容,尤其是涉及到一些边界值的地方,手动测的话,可能要重复测试好多次,写个脚本的话,可能几分钟就搞定了。

另外提升效率的一个层面来源于沟通,当你不理解代码的时候,要想与开发人员彼此清晰的沟通一件事情是比较浪费时间的,反之,则会在三言两语中直奔主题。

场景五:深层次测试需求

在一个游戏项目的生命周期中,测试人员面对的不仅仅是功能测试,还有很多其他的外围支撑需求,比如性能测试、压力测试、网络测试等等,要做好这些支撑需求的测试,不掌握一点代码知识是很难完成的。

举个简单的例子,比如要测试服务器压力,市面上几乎不存在通用的测试工具,比较好用的jmeter也很难兼容不同游戏项目中的各种特色,也需要根据游戏实际情况编写一些脚本来做补充。

场景六:跟上时代步伐

在互联网行业,技术的发展日新月异,如果不持续学习的话,很容易就会感觉与行业拉开差距。比如以前应用较广的数据库是oracle,现在很多公司更倾向于mongodb,数据库的设计思路都改变了很多,不学习的话,也许听都听不懂了。懂点代码的话,会让我们接触和了解新技术更快一些,也更容易一些。

场景七:应对突发状况

在我们的工作中,总会遇到各种各样的突发状况,除非我们把自己限定在一个不思进取的状态内,无所谓的说自己不会然后推给别人,否则我们总得想办法去尝试解决新问题。掌握代码能力能够让我们更加有底气去承担,能够让我们在面临以前没有遇到的问题时多了一种选择性,而多出的选择性越多,则我们能够解决问题的概率也就越高。

场景八:学习新事物

当我们丧失好奇心的时候,也就意味着我们彻底老去了,而这,是绝对不能允许的,毕竟,我永远18岁。



留言