何为优秀的测试人
经常有同学私下问我:“风落老师,什么样才能算作一个优秀的测试工程师?”即便是工作了十几年的我也很难一时之间妄下这个定义,被问的多了,最近很是认真的思考了一下。当然,作为一个还在“路上”的测试人员妄谈“什么叫优秀”似乎有点不知天高地厚,所以大家仅可当为一家之言,或者叫“风落眼中的测试人”。
聊什么是优秀,先要聊聊我们自己对测试人的定位。就像标题中写到的,如果你把自己定位成一个码农、一个屌丝程序员,那你或许奋战在IT一线,可能衣食无忧,但只是个浑浑噩噩、无所追求的屌丝。眼中的世界有多大,你就有多大的空间,换言之,你的眼界在某种程度上决定了你的未来。所以,相比之下我更愿意用“匠人”来形容一个好的测试人。书接前言,测试并不是一个毫无技术的领域,现阶段的测试对技术的依赖更广更全面。所以,当你不断打磨自己的技术和能力,拯救了一个又一个影响世界的产品,你就会发现,在别人眼中,你也不再是屌丝、码农,而是大神。这是我对“优秀”最简单的定义。
聊聊测试人的“段位”
上大学的时候曾经有一段时间Dota风靡,我也加入了Dota大军,工作以后实在没空打开电脑开一局Dota了,也短暂的玩过一段王者荣耀,也因为有Dota基础的原因吧,很快一路爬升到了钻石段位,可是想再进一步却也很难了。这么一想,似乎王者与软件测试的“段位”有异曲同工之妙,那今天我们不妨就以王者荣耀的几个段位来看看测试人。
青铜 – 初入测试大门,对测试的整体认识还不够,只能跟着老测试人员后边手指舞动,负责执行一些测试用例。拘泥于招式,不求有功但求无过。这是第一层境界:学招求技。
白银 – 大概工作学习了一段时间,开始能够照猫画虎的编写一些测试用例,能够在测试团队已有的框架下完成部分测试工作。对于自己所测试的软件呢,也有了一定的了解,对常见的易出错的情况有了自己的整理和总结,测试过程开始有了自己的主见,会进行一些超出测试用例的测试,发现一些Bug。但是仍然局限于已有的框架,有想法却没有太大变化。此为第二境界:循前人所创,中规中矩。
黄金 – 对基本的功能测试用例设计和测试技巧已经能够融会贯通,就像王者荣耀到了黄金段位会开始嫌弃“猪队友”一样,测试人员到了这个阶段也开始评价吐槽开发人员,同时,对基础的测试方法的低效感到不满意,但是无奈自身功力不够,只能想些“另辟蹊径”的小方法提升自己,迂回战术解决问题。此为第三境界:旁门左道,剑走偏锋。
铂金 – 这是测试人提升自己最快的阶段,这个时期大家开始认识到团队配合的重要性,也能完全hold住自己的工作内容。同时,认识到了技术的重要性,在自动化、性能、安全亦或是代码等领域某一个或者两个上进行了突破和学习,基本能够将网络上、在线课程中的技能知识为己所用,将这些技术融于项目中,提升测试的质量与效率。此为第四境界:天下之术,皆为我用。
钻石 – 到这个时候的测试人已经有了相当丰富的经验,同时也是测试人提升自我的疲惫期。自己可能会感觉到已经对于各项技术成竹在胸,似乎对自己努力的方向和前景产生了迷茫。如果能够度过自己的迷茫期,就会发现与其综合天下之术,更有效果更有成就的是根据项目的实际情况建立属于自己的测试架构,又或者是可以根据自身和团队的需要开发相应的测试工具。这个时候已经告别的纯测试阶段,走上了测试架构的道路。此为第五境界:盖世神功,深不可测。
星耀 – 星耀级别的测试人,都已经是可以独当一面的大人物了。这个时候的你,已经迈出了自己职业生涯关键的一步:或是成为了测试架构师,又或是成为了成功的管理者。除了自己能解决问题给出方向外,还需要从全盘考虑整个部门甚至是公司的技术方向或者是管理方法。
由于我自己是个绝对的技术崇拜者,那么从架构方向上可以多跟大家聊一聊。在这个阶段,你所知所能的就不仅仅是已有的框架,已有的技术,而是开始研读一些开源框架组件的源码,不甘于仅仅运用,而是突破现有,从“拯救者”到“创造者”转变。此为第六境界:自创武功,成就一派。
王者 – 王者已经是这个世界上顶尖的、被人仰望的存在了。这时候已经无所谓技术了,测试与开发的边界也已经不存在了,这时候应该考虑的是项目的架构如何实现?怎样进行高可用设计?如何推进Devops/Testops?重要的不再是技术,而是沟通能力、带队能力。当然,不是说技术不重要了,而是要在拥有技术的基础上能够做更多。此为第七境界:无招胜有招。
荣耀王者 – 似乎荣耀王者不是个段位,而是个称号了。所以对于测试人来说,这个境界可以算是“你不在江湖,江湖上却有你的传说”。无需出手,只需运筹帷幄,此为第八境界:不武而胜。
到这儿,估计好多武侠迷们发现我一不小心借用了金大侠的武学境界。其实不论武学、游戏又或者是我自己更加熟悉的围棋段位,跟我们在测试上的进阶方向都是一致的。我自问已经走上测试道路十余载,也不敢说自己完全达到甚至突破了星耀级别。测试的道路上没有代练,但是有良师、有队友,不贪心、不着急、不放弃,路要一步一步走下去。
再谈优秀测试人的“自我修养”
如果非要按照前边的段位给“优秀”设定一个门槛的话,我认为达到铂金是从普通到优秀的标志。环顾四周,想来我身边、朋友中可以达到这个标准的还非常不少,既然开篇就提到,不敢妄谈“优秀”,我就简单总结一下优秀测试人所共有的品质素养:
敏感
软件测试的最本质的特征是要善于发现产品中的问题与不足,一个优秀的测试人员要对被测内容保持一种敏锐的感觉。这种感觉不仅仅是从产品的正面角度,也要从客户维度考虑,甚至有些时候还要保持对架构的敏感。比如说,我们的架构设计中包含了缓存、包含了消息队列,那么我们在考虑测试方案时还需要充分考虑缓存清理、考虑消息队列消费、超时重发等异常场景。这样的敏感度除了职业上的特征,还需要对测试的经验和扎实技术基础的掌握,才能如猎狗般快速嗅探出其中的“不对劲”。
好奇心
工作之中不可避免的就是发现问题,而一个优秀的测试人员不仅仅停留在发现问题上,而是进一步好奇:问题的根源在哪里?问题是怎么发生的?又应该如何解决?有个“王者”曾经说过:软件测试的最高境界就是教开发写代码。我一直深以为然。而好奇心就是探索未知、探索深入的“本心”所在。
当然,这是好奇心的一个方面,另外一方面则是对技术的好奇心。软件测试的日常工作是枯燥的,保持技术的好奇心,才能提高自己工作中的积极性,也能够促使自己用技术的手段提高测试效能。
脸皮厚+幽默感
既然测试工作就是给别人找“毛病”的,那冲突自然不可避免。这就好比,你在路上看到一个美女,走过去告诉她:妹子,你这样上身羽绒服下身丝袜的穿法是不对的,不但冷热不均,还容易得老寒腿。我估计美女不是自己揍你一顿就是让身边的男青年揍你一顿。
而事实上,测试人员做的就是这样的工作,当开发人员把自己呕心沥血的得意作品提交给我们之后,一转眼到我们这里一会一个致命错误,一会就是操作性有问题,这种打击估计很多开发人员都要在心里默默问候测试了。那怎么办呢?不要觉得丢脸脸皮厚一点,同时也要保持嘴甜,再加之以你自身的幽默感,足够让开发不好意思拒绝你的各种问题和要求。
自信乐观
自信是一种心态,“自信人生二百年,会当水击三千里”。生活工作难免遇到困难,首先自己心中要有信念,相信自己,才能克服一切艰难险阻。这不是一句鸡汤,而是一种生活态度。
乐观亦然,无论处境多么悲惨、境遇如何恶劣、道路几多坎坷,都需要一种乐观的心态。乐观不仅仅是一种态度,更是乐观之下更冷静、自信的去处理问题。
我自己也好,认识的一些朋友也好,工作中困难过、被排挤过,但是咬牙坚持、直面处理,或化干戈为玉帛,或化悲痛为力量,当你经过那一道坎,自然也蜕变出了更加自信、乐观的气质。
热爱生活
人大可以分为三类,一种是极为热爱生活,第二类不上不下,第三则是愁云密布,对生活毫无热情。大多数成功人士身上都有一种特质,就是对生活极其热爱,给人的印象更多是阳光、积极的。所以除了热爱我们的工作以外,在工作的八小时(或者更多一点)之外,去寻找自己的兴趣爱好,丰富自己的生活。
我所熟识的IT友人中,如意者大多是对生活充满热情的,像小说或电视上演绎的书呆子型的IT男/女着实是很不多见,工作之余有人插花、做菜、布置,也有人健身、徒步、旅行,丰富多彩的很。就以我自己来说,忙碌的工作之余,每年我一定会抽出时间旅行,而且更喜欢自然风光的旅行,从风情小镇的瑞士到恬静静谧的马代、从空气清新的云南到逛吃逛吃的台湾,到处都留下了我的脚印。同时,我还是个吃货,每到一个新地方,第一时间一定是挖掘各路美食。加上不时去打个羽毛球、戳一杆台球、玩会手游,不断充实自己的生活。不要说没有时间,我相信测试人中十有八九不会忙过我了……
还有,练习怎样用更动人的语言来赞美你的另一半,这会让你的生活更加美好(无论男女,这都是我们最基本的素养)。
Ok,以上呢是我的一些个人总结和感悟,那么各位看官,你觉得自己现在是什么“段位”呢?测试人还有哪些自我修养?欢迎大家一起讨论。
最后,欢迎关注优秀测试工程师的必备思维39讲,让我们一起从测试人的视角去看看世界,为你分享更多更好的测试知识。
上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。
当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。
赶快进来学习了解与交流吧。