本文节选自《小强软件测试疯狂讲义》一书

这个话题有点沉重,因为一旦表述不好肯定会被一些无良的人骂之,但思前想后还是决定写这一章节。因为我被太多的朋友问过这个问题了,大概统计了一下,基本每两天就会被问到一次,有时候一天还会被问到N次,我回答的都要吐血了,为此还在《挨踢脱口秀》(http://www.lizhi.fm/200893/)中专门做了一期节目,可见这个话题的必要性了,也希望能帮助有选择纠结症的朋友。

下面我尽量客观的以我自己的学习经历来聊聊,也许这个经历不是最好的,甚至是错的,但可以给大家一些参考,少走一些弯路,我觉得就是有价值的。

首先,我们说说学习性能测试需要面临的几个挑战,大家可以结合自己的实际情况看看自己是否适合继续学习。

第一,庞大的知识体系,这个是我们面临的第一个挑战。性能测试是一项复杂且需要耐心的工作,我们需要在复杂的系统中“抽丝剥茧”,一层层分析从而确定性能问题。这个过程会涉及中间件、Web服务器、缓存、数据库、代码等知识,所以没有一个较为完整的知识体系就很难进行下去。虽然说是挑战,但在我看来却是大部分小白朋友最佳的入门途径,因为它能帮助我们快速建立较为完善的知识体系,对于我们而言有百利而无一害。不知你是否遇到过这样的场景,被指着鼻子说:连一个SQL语句都不会写,连中间件是什么都不知道你还和我们讨论什么。这样的“羞辱”虽然让我们不开心,但也直白地指出了现在很多测试工程师在整体知识体系方面的欠缺,只有把自己的短板补起来才有底气和实力去争取更美好的事物。

第二,较强的分析能力,这个是我们面临的第二个挑战。就好像动画片《柯南》,在复杂的犯罪现场破案,需要不断的推断和论证,这个过程中有可能会把之前确定的事情推翻了,也有可能好几天都没有进展,但这也是它的魅力,可以说是痛并快乐的。

在我接触过很多学员之后,我发现大家一个共性的问题就是逻辑分析能力较差,在分析的过程中经常是东一点西一点,完全没有逻辑可言,都是乱猜,并且经常容易掉入细节,一旦掉入无法自拔,导致停滞不前,这也就是为什么很多人觉得性能测试难的原因。在我看来,性能测试的分析过程就像剥洋葱,你需要一层层剥开才能看到问题所在,这个过程就需要你有较强的逻辑分析能力,同时也要具有宏观性,只有站在一定的高度去看待问题才能豁然开朗,不然就会陷入死胡同。一旦这个思维能力培养好了,就会事半功倍,学习其他技术时效率也会提高,所以万事都需付出才能有收获。

其次,我们再来说说学习自动化测试需要面临的几个挑战。

第一,编码能力,这个是逾越不过的坎儿。说到这里可能会有朋友问难道性能测试不需要编码能力吗?答案是需要,但比起自动化测试来说门槛相对低点。其实对于一个优秀的测试工程师来说编码能力是必备的技能。

如何提升自己的编码能力也是不少朋友咨询过我的问题,真心没有什么捷径。我觉得就是要多练习多总结,我说的练习是真正的动手去做而不是看。我带过的学员中其实大部分同学都存在一个问题,就是上课讲的时候听起来感觉很简单,不以为然,但当自己下课后练习时却出现各种问题,很简单的知识点能搞一天,所以一定要多练习,每次犯过的错误也都要及时总结,不能让自己在同一个地方跌倒两次。我再苦口婆心一句:“没有不起眼的砖,没有看不到的框架,漂亮的楼房怎么能屹立不倒”。

第二,逻辑思维能力。在有了编码能力之后就能做自动化测试了吗?显然不能,因为自动化测试最终是希望建立一个框架或者平台,这是一个大工程,一定要有较强的逻辑思维能力和设计能力才行。就好比,你会焊接技术但不代表你会设计汽车啊。所以自动化测试真正的难点在于设计思想,一点经验都没有的朋友做起来确实会比较吃力,这也就是为什么我个人建议可以先学习性能测试,培养能力和思维之后再学自动化测试的原因了。

说了这么多,我想大家应该心中已经有了答案,再次声明,这些只是我个人的看法,不见得对,仅供参考而已,不喜勿喷。