测试K佬的前期职场规划和心得感悟

大家好,我是Kenrsy,这里规划了入门0~3年的测试工程师成长路径选择,其中包括很多遇到问题和给出解决方案的讲解,并且这0-3年基本可以结束一个初级中级测试测试之旅,高级测试和测试开发或是测试经理三方的偏向会有许多差异,这部分专用型较强的内容就留给各位经验丰富的前辈补充。

阶段一-入职准备-试用期:收到录用通知书-入职3个月

各公司对试用期的规定略有不同,个人认为3个月是比较合适的时间,过长的话略感散漫拖沓。但如果个人底子比较薄弱,对于计算机基础知识和应用技术这方面的储备量不足,可以适当延长,个人认为计算机等级lv3能通过不背题库的方式获得85分以上的话应该完全没必要担心。这部分涉及知识面广而杂,但要求不深(Kenrsy:office,基本计算机操作,控制面板,cmd,网络共享,安装软件,window,linux系统)。

(Kenrsy:进入这个阶段可以用以下内容概括:)
入行攻略、融入集体
两本基础、实践为主
事无巨细、多多记录
业务为主、规划未来

入行攻略:
可以找一个测试人员混迹的圈子,或者去知乎搜搜:测试人员的日常。论坛推荐:http://www.51testing.com/ 拥有一个固定而熟悉的圈子,会让你在入门阶段迅速领先,除此之外,在工作之余,可以和网友津津乐道遇到的问题,或者寻求帮助。51测试网有一本叫《51测试天地》的网络杂志,可以让你在入行阶段就了解一些入行5年+的事情,那些高级测试工程师遇到的问题和他们的解决办法,里面还有测试职场感悟,通过这些东西,你可以对自己还没有接触到的工作更有实感,更好地确定目标。

融入集体:
像我入职的是公司的测试部,这里面50多号人架构清晰分工明确,项目组一伙人往往结伴,入行有专门的师傅带,项目组的组长规划任务安排。与大家打好关系打成一片是必要的,如果可以,尽量和气相处避免争执,用别人可以接受的方式把事讲清楚非常重要,这样你遇到问题就可以可以向这些前辈学习解决方案,也许他们并不明白深层次的原理,不懂背后的逻辑,但是这个阶段,能把问题先解决,把工作先完成更加重要。

两本基础,实践为主:
推荐两本本人看的测试人员入行书籍:Ron Patton的《软件测试》和Glenford J Myers的《软件测试的艺术》。这些知识全面而又清晰,非常适合在工作之余细读,而在工作过程中遇到问题后对应看看解决方法。书里包含了测试软件入行的所有技术方面的知识,但是很可惜,书本里描述的问题和实际运用偏差较大,只是一个总体的逻辑范畴。所以你的导师或者前辈教给的实战知识,就算你现在认为并不是最好的,那也是你遇到的入门级技巧,能稳定而有效地解决目前遇到的问题。

事无巨细,多多记录:
相信我,基本上所有公司都会暗中背后一个测试人员的细心程度,有可能这是一项公开的指标,而有可能是这是某位领导的个人判断。但你如果给人留下粗心的印象,后面的核心关键工作有可能领导避开你分配。如果能有一个高效地记录方式,会让你后面的工作事半功倍。尤其是在你刚进入公司的这个阶段,前辈把各个流程教给你一遍后,多多少少会抵触你再次反复过来提问,尤其是部分互联网公司,这些人怕麻烦和不想重复工作到一个令人发指的地步。所以不要指望别人在持续地帮助你,他们也有自己的工作,如果一次没有弄懂弄会的流程,也请直说出来,不要想着后面自己再来慢慢琢磨。在入行这个阶段,你的轻度的无知都可以被原谅,别人的评价也都只是暂时的,只要你能快速解决问题,同事和领导也会觉得你的学习能力、工作能力比较强。

业务为主:
还请弄清一点,软件只是一个实现需求的工具,不管是什么样的软件,只要他能实现需求,他就是公司需要的。以需求为主很重要,比软件自身重要多了,但不是让你以需求文档为主,因为这里面还会有很多人为控制不了的因素导致文档的内容质量无法保证。

规划未来:
很多人在没有决心长期做测试的状态下,就误打误撞地进入了这个行业这个岗位,或许他们想转开发,想转需求,转设计,或许是换去当一个公务员。在这个试用期阶段,弄清楚自己的方向是留给你的黄金时间。

阶段二-搭建工作环境,丰富测试手段:(入职3个月-入职6个月)

看到这里,不管你是不是准备长期入坑测试了,我都会从长期受益高的角度来引导思考,这种时候,选择比努力重要的多。
这里先明确一下工作环境的定义:工作环境是对应你的行为喜好,基于你自己的电脑软硬件和对应网络的特定化资源,除此之外,加上测试工具,开发工具和你的基本编程能力培养。

高效工具:截图贴图,屏幕录制,快捷增删改查,Office辅助插件,笔记任务日志提醒,文字提取OCR等
个人看法:推荐一个公众号“Tools指南”

硬件资源:双显示器、内存、鼠标、键盘、耳机、座椅坐垫等。
个人看法:很多公司都能自己申请在公司用的硬件设备,甚至可以带回家,有的公司允许你DIY给报销。对于双显,也并不是所有的测试人员都需要双显示器,可以想办法体验一下看看实际需求

软件资源:测试工具(jmeter),远程连接工具(xshell,xftp),虚拟机(windows,linux),本地数据库,脚本录制,基本的测试开发环境(JS前端调试,C,C#,Python,Java,Golang)
个人看法:身边经常会看到一个领导问一个同事,这个东西你能测么?同事就会说,哦,XXX那电脑可以。。。。。。因地制宜,根据你公司的测试需要制定具体内容,前阶段尤其是多观察身边人,为什么别能测的东西你不能测,多多和同事沟通,问问别人的测试方法和手段。也不要认为看代码做调试是和你绝缘的事情,在web项目中,如果你能掌握一些F12的小技巧,用cosole验证几个值,看懂数据流是在哪断的,你就能发现更多的问题,再也不会被阴间bug的表象所困惑,完全没有头脑和思路。

网络资源:利用搜索工具找资料资源,用联网应用辅助测试,利用网络扩展本机的存储和运算能力。
个人看法:我们公司是存在半网络封闭的,一些常用的公网比如阿里、腾讯、百度这种都被内网拦截了。当然如果有实际需要可以申请开通,但是网路信息被监视。这样的感觉着实不太好,于是我利用向日葵远程和TeamViewer搭建了一个套个人用的网络资源共享服务,把自己家里的电脑和公司的电脑连接控制,传输文件。如果在公司有需要的网络资源就可以远程家中的电脑搜索下载传输,而回到家里,也可以查阅公司的数据。这种做法仅限于两台电脑互联,并不适合三台及以上的电脑做数据交互,所以如果你有一些代码或者资源包等文件用的很勤,挂载在github或者gitee上会是一个更好的选择,把地址和密码记在小本子上吧。TeamViewer也有VPN功能,能直接共享,为什么不用呢?因为安全性问题,如果你的电脑中了病毒,会感染你公司的网络,而病毒很难控制TeamViewer的接口,网络小白小白建议多补补这方面的知识或者请教一些前辈,如果是图一时之利,而影响到了公司的正常运作是要背责任的。

测试思路:一般来说,测试的思路更天马行空一些会更好,不需要章法和约束,这样的测试更容易找到隐蔽的问题,切忌在正常的流程上来来回回。因为重复=浪费时间,不仅对于开发人员来说是这样,对于测试,需求,设计都是这样,所有人的时间都一样宝贵,你已经不在实习适用期,老旧的东西重复不会让你学到新的技巧,你需要尽可能地避免和减少重复。
但以上都是人尽皆知的大道理,而矛盾无处不在。比如说天马行空和凭借经验的冲突,凭借经验能快速找到很多常见问题,而如果让一个天马行空的人来保证软件质量,这恐怕很难,天马行空有可能会无视掉一些简单手段能发现的明显问题,当正常流程没有被保证,那么软件的质量指标将会低到令人发指。换种说法,这种情况的天马行空和凭借经验,可以理解成提高软件上限保证软件下限的冲突。
还有测试时间和测试计划的冲突,计划赶不上变化就是最常见的问题,就算你根据测试时间在初期定制了很详细的测试计划,也许因为测试同伴的沟通不当,开发对应不及时,需求业务回馈慢等原因而破坏,这时你继续按原计划执行,很可能赶不上deadline。
最后是测试业绩和测试梦想,也许发现问题让你感觉成就满满,辅助解决问题让你身心愉悦,弄懂业务和软件原理让你收获颇丰,但是如果你做了过多的业绩要求以外的事情,而轻视或者不关心自己的业绩,那么你的收入将会很微薄,就算你在其他人眼里努力又好学,但反馈给领导的是冷冰冰的绩效数据,你并不值得他关注或给予厚望。你需要努力去对应的你的绩效考核,纵使很多工作在你眼里看来是浪费时间。
冲突还有很多,只能留给步入这个阶段的人细细感受,仔细地苦恼过你才会明白,其实他们不是冲突,而且是问题。你需要一个个去解决,他们是一个度的问题,你要把握平衡点,偏向任意一边都会让自己无法进步。我见过有的人为了贪图绩效,一个bug分成两个上报,而对bug的描述含糊不清,导致其他人很困惑,有的人技术强,但过于孤傲,在很多问题上单打独斗不懂沟通。
本来我很想就拿到一个任务以后,应该开展什么样的步骤来进行,第一步,第二步,第三步,之间的过程需要注意什么这种形式来介绍测试思路,但后面写完,我仔细思考了一下,影响一个测试人员成长的应该是这些平衡点的把握。(Kenrsy:这才是真正的对线打团思路,/酷)。而什么时候应该做什么样的事,哪会有这种固定死的说法,全凭你的临场应变,根据对应的情况,做出适当的选择,如果选择错误,就是失败。我不相信不劳而获,不相信天上的馅饼,我觉得所有优秀的人,每天都在走钢丝(Keep Balance)。(Kenrsy:此句源于电竞选手UZI的经典发言,所有厉害的ad都在用命秀,能秀一定要秀,失败顶多被喷。N佬笑着和我解释引用典故的时候我一直没听懂他说的啥。)

阶段三-(入职6个月-入职1年)

入行一年性能测试、测试开发、自动化测试、SVN、CMMI、质量保障。

阶段四-(入行1年-入行2年)

进入这个阶段,相信你有了基本的问题发掘和排错找原因能力,熟悉C/S,B/S的各种架构,知道了2b和2c业务的基本逻辑,对项目流程有一定的理解和控制能力,面对系统问题,环境干扰等从容不迫,就算你不能通过技术手段和知识直接解决问题,你也拥有了对等的人脉和关系来辅助你完成任务,除了基本的本职工作外,报告的撰写,客户的沟通反馈,部门间的分工合作都能够面不改色,谈笑风生,而把这些列出来的情况就是己曾经做的项目有一个回顾,哪些东西没有做好可以优化,以上没有达到的,你可以在这个阶段花上一些时间好好查漏补缺。剩下的时间你可以好好思考一下,道与术的追求方向,无论是偏向道还是偏向术,关键是问题,而不是技术。(术:一个问题有多少种解决方法,道:这个情况要选择哪个解决方法最合适?)

如果已经掌握了上述的除了道与术的内容,那么我想区区部门的晋升考核肯定拦不住你了,如果领导还不能发现你的闪光点,那么问题和解决方案另有安排(跳槽)。

最后总结:

我在51测试论坛上讨论阶段时间点的划分,三年前(2017-2018)这些知识被认为需要花上3年的时间来吸收和好好消化,尤其是一个测试人员向测试开发人员领域迈进的时候,会遇到很多的挫折和苦难折磨,我也在阶段3的时候好好地浪费了两个月,无所事事,后续经过一些时间的沉淀后,一些当时怎么也想不通的问题最后都迎刃而解,最后在一年8个月左右的时间,达到了阶段四的要求,并大致做了如上总结。并且我认为自己并不是特别优秀突出,比如第一次写这种文章。本人仅在一个二线非互联网核心区打拼,下班之余的时间基本被朋友关系和游戏充斥,就这种情况下,我认为2年的时间去弄懂这些应该是不难的。
最后引用51论坛“子慕予兮”的一段话, 随着行业的发展,5G,AI时代的到来,不难看出对于测试人员的要求越来越高,如果仅仅停留在手工测试上,那么这类测试人员的职业生涯是非常短暂的,无论给自己的定位是自动化测试,还是测试开发,亦或是测试管理,要想职业生涯持续更远更好,掌握自动化测试,学会至少一门程序设计语言,熟悉数据库,操作系统,容器, 持续集成持续部署(jenkins, devops)等一些前沿技术/理念都是必不可少的。

posted @ 2020-11-16 09:16  狂霞霞  阅读(261)  评论(1编辑  收藏  举报