职业经验 我离测开有多远——计算机基础与测试技术学习如何平衡

润安 · 2019年10月10日 · 最后由 润安 回复于 2022年09月08日 · 3353 次阅读

33 岁了,这个年纪如果持续在软件行业积累,现在起码是个专家级别的人才了,无奈的是 27 岁的时候才从其他行业转了测试,所以现在还是一个技术进阶的状态,深感焦虑。

现在的创业公司进来有 4 年了,从功能测试一路走下来,现在主要的工作在持续发布、环境搭管、性能三个方面,公司的持续集成目前我独立负责。

一直很遗憾,公司的 4 年,没有见过大牛的测试小伙伴,测试从 2 个人开始到现在小 10 人规模,技术梯队一直是处于功能层次。目前已经不在测试团队……嗯,曾经跟领导明确表示不想做管理分了学技术的精力。所有的技术全靠自己在高强度的工作之余研究琢磨出来,另一方面也正是领域的空白给我大量上位实现技术落地的机会,个人企业双赢。正是焦虑,一直保持学习,从啥都抓到现在集中在 java 技术栈,为了夯实基础考过了中级软件设计师,还是没有出什么自己骄傲的成绩(或者说面试测开时能让人眼前一亮的落地项目)。

目前想转开发(最好),但是技术栈和实际经验距离研发有距离,所以最好的方式是转测开或者运开,核心是提高代码解决问题的能力。但是有点矫情了,大的环境不好,33 岁简历投递出去,虽然大部分能到待通知步骤,但是半个多月没有收到一个面试邀约。

也考虑过在公司内部转,找领导交流,呃,比较尴尬的是公司已经开始欠薪一段时间了。所以目前也是搁置状态,骑驴找马中。

我总结了目前我的技能树。请大家批评指正。

我比较担心或疑惑的有以下几点
1、学习是个漫长积累的过程,我现在偏向计算机、软件基础的学习,所以在测开常用的技术栈方向并没有倾注太多心血,因为我认为基础牢靠,测试的工具、框架拿过来我就能用起来;它的对立面就是面试的时候一无实际经验、甚至可能只是懂点皮毛,很可能就被面试官否认了。还是挺痛的。这种学习的思考方式是不是舍近求远了一点?
2、在学习研发技术栈的过程中,很煎熬,很慢。希望快速掌握一个研发的开发框架,比如 spring,但是还是想先打基础再往上跑,内心深觉,学得很多,缺乏实际操练。
3、我目前公司的持续集成、环境搭建方向,由于业务没什么起色,自身并没有多少革新动力,所以能应付。docker、k8s 之类的技术,业余当玩具玩了玩,系统的把各类官方文档扫了 2 遍,真的要落地我觉得也是可以做到的,但是心觉 “安装部署使用” 简单了一点,外无需内无求,所以 k8s 的落地停摆中。
4、测开学习研发的技术体系是不是缘木求鱼了一点?而且成长周期很长,没有历练的机会的话很难做到优秀;
5、java 的技术栈会不会过于庞大了,像 python 这类适用人生苦短的语言是不是更具有优势一些。并且我目前在职的岗位,偏运维的工作要多一些。我甚至在用 ansible。。。所以 python 会不会更好一点
6、没有一个让人眼前一亮的代码作品(shell 的虽然可以,但是不够好)

总结了一下,现在的焦虑源自 “大龄条件下欲转型而不得”……

作为过来人的大牛们,想听听你们的看法,请把您的想法说出来,可以随便喷。

共收到 52 条回复 时间 点赞
润安 #56 · 2022年09月08日 Author

接以前的续论。
基础不牢地动山摇,夯实计算机底层是真的香,上层上手非常快。主要是内心夯实,不怕不虚。
学底层,前提是要走对方向。
1、计算机怎么来的,解决了什么问题
2、图灵模型每个组成部分代表了什么
3、图灵模型落地的冯诺依曼体系,各个部分又如何对应图灵模型
4、计算机内部的各个组成部分的内部,也是图灵模型,所谓计算本身可大可小,比如内存系统内部,也有缓存、也有控制器、也有数据传输。
5、0101 如何在层面组成指令,intel 指令原理
6、指令到汇编,汇编大概原理,汇编的 ELF 文件原理
7、汇编到 C,C 完成对汇编指令的语法抽象(类型系统抽象数据操作、流程抽象指令跳转、指针抽象取地址指令扒拉、栈和函数)
8、C++ 在 C 基础上增加了面向对象特性和语法
9、操作系统进程怎么利用上面的基础编制出了复杂的系统,如进程调度、IO、VFS、系统调用等。
如此种种,摸到上层的东西,就不会那么狂抓。
学习是长期过程,还是不能太过于急功近利,主要目前工作压榨没那么猛(压榨太凶哪里有时间学),业余时间都拿来学了。
革命尚未成功,同志仍需努力。

润安 重新开启了讨论 09月08日 22:07
润安 关闭了讨论 09月29日 10:13

32 岁,技术栈和经历跟楼主类似,拿了个 offer,面试岗位是测试,offer 写的是测开,甭管那么多,只要能解决团队测试问题,干就完了。

润安 · #52 · 2019年12月10日 Author
仅楼主可见

这段时间出去面了几次,大致知道自身问题所在。我来对前一阵的焦虑和疑惑做个简单阶段思考,虽然留言中大部分人没有回答我的提问,而聚焦于其他方面:
1、关于学习偏计算机基础的问题,我认为是必要的,但是不能过于纠结在计算机基础方向。考虑的是就业和自身能力匹配度,市场需求是什么就聚焦什么,计算机基础学个七七八八就可以了。所以,我的学习方式虽然很夯实,但是和市场脱轨,经不起市场的考验。
2、学习研发的开发框架这个问题。我觉得也没有必要像研发一样弄懂每一个细节,定位不是研发,也不并深究,但是要懂一点。
3、公司内部的持续集成方向。我目前觉得真没有必要去为了技术而技术,环境倒逼内部的技术革新是资源最优的方式,否则会出现过渡浪费资源的问题,而且就算弄出来,也真的不是实际上用的那样子。
4、学习研发的技术栈体系确实是缘木求鱼。
5、java 和 python 都有自己的生态,java 要为主语言,python 打辅助。

测试是个干杂活的岗位,懂得要多,干的精自然就有难度,有机会做研发就别做测试或者测试开发,直接研发是最好的方式。实在没有办法退而求其次,就聚焦一些,聚焦一些。不要到处撒精力,人生苦短,真心的浪费。不一定对,但可以参考。对了,我双 12 报名学院了。

润安 #35 · 2019年12月10日 Author

我没有去参加付费的培训,不过我看过一些他们发布的公开课,公开课有些内容还行。看个人的想法了。

仅楼主可见
48楼 已删除
润安 回复

有广告😀

zyanycall 回复

感情真挚的回复,金玉良言

说到测试开发 我觉得也是个伪需求。首先一个岗位的发展是真实的市场给出的结果。测试这个分支主要是从质量保证这一大块来的,质量的并不完全等同于执行测试,尴尬之处就在于小公司用不着 大公司整个质量管理体系都在转型,从之前的测试小组、测试部门、大的测试中心、质量保障事业部对这一块的改革是思考变化是永恒的,会写代码的测试究竟有多少实际的推动作用和质量保障上的作用,有种类似于工业化刚开始的时候,为了追求烟雾的排放不断的提高烟囱的高度。。。。有些歪了。行业的发展太快了,技术、思想、应用都是需要时间去沉淀。追了好久之后沉淀够了缺发现真正需要却不是如此 岂不很难过。。。。
跟着变化在走 还是普通人多啊。学习没有终点 企业有啊 抛开依附于的企业 个人又将怎么走?
一孔之见 看看就好了 哈哈哈

30 多岁应该是一个人职业生涯的黄金时段,这个时候应该是到了另外一个境界,不在单纯的痴迷于技术,更强调的是综合能力。不管任何时候发挥自己的价值即可。

zyanycall 回复

说的很中肯

无名 回复

确实,我测开也是兼职。

共勉作者,很明白作者的体会,个人就来说下个人的理解:
招聘公司层面上:

  1. 公司对于测试职位的刻板印象:就国内的不说所有,但是 90% 的公司对于测试的理解还存在可替代,技术能力低,点点的刻板印象中,这个从测试的薪资待遇,晋升机会等都会有所体现
  2. 测试的专项方面: 性能,安全,测试开发, 这些方面实际上虽然说是测试的专项分支,但是从另外一方面这个职位何尝不是开发,运维等一切相关性的职位的分支?,好比如果一个公司需要测试工具开发,同样的工资为什么不招聘一个开发来?
  3. 测试的工作方面: 虽然很多的大咖级别的互联网公司下的测试部门在拼命的转型,但是我们要明确的他们之所以有这个能力和决断我觉得离不开公司和部门的支持,最常见的一点大量的功能测试外包等等。而对应一些小公司,测试部门实际上很少有这个能力和决断来进行部门全方位的提升(因为提升太好,就代表着离职率越高)
  4. 公司测试部门提供的技术栈需求和市场就业需求的偏差:比如你之前的公司也许是一个 C# 的公司,现在你跳槽到了 Java 的,想想自己后期的就知道,从头来,并且之前的 C# 随着时间的推移,能记住都怪了

个人层面上:

  1. 缺乏自驱动力: 我们的同僚很多时候,就会在一个公司的业务里面沉浸而不可自拔, 想想有的测试能再一个业务线干 7.8 年都不跳槽,而实际的工作就是功能测试,这种情况在内地里面尤为明显。我自己也是这两年才觉醒,虽然不算太晚,但是感觉已经和上面落后一大截了
  2. 工作中的主观能动性:我记得很早之前我的态度就是公司给多少钱,自己就做多少事情, 虽然这个说法上面没有问题,但是在公司层面上面你就会缺少大量的上位机会,同样待遇也不会有变化,
  3. 家庭方面:随着结婚生孩子等一堆家庭事宜, 实际上会发现会越来越觉得自己在学习方面越来越懒惰,各种精神压力等

当然说的是理由,但是不能成为不进步的借口。 在此也共勉和我有相同困扰的同僚,一起加油吧。

测试开发有那么难吗,学那么多东西,感觉列的太宽泛,我们公司的 Android 开发,感觉会 Java 和 Android,能干活了,测试开发要会那么多东西吗。。。。

zyanycall 回复

做了十年测开了。越来越觉得测开就是个伪需求,一般小厂根本不需要,大厂里面的测开就是开发个测试流程管理系统之类的,主业还是做项目测试。你说的这些的知识,大多数公司都不会做强制要求,真实的情况是用到的时候非常少。你是做大数据这块的业务的吧,像各种锁啊,MVVC 啊,多线程啊这些很多都是数据分析方面用到的。
测开越来越没性价比了,因为大部分的工具、系统都有开源的可选方案,需要单独开发的越来越少。但是在功能测试方面,你比纯测试没有更多的优势,价钱可贵多了。如果我是老板,我会招一个初级的开发来做工具,再招一个高级的测试来做功能,这样比招一个资深的测开更便宜,产出更多,更有性价比。

润安 #38 · 2019年10月14日 Author
gaomengsuijia 回复

呃,我认同你的说法。其实我核心的想法是提高用代码解决问题的能力。鉴于目前岗位,写代码的机会不是很多,想找专职写代码的岗位,比如测开、运开啥的,天天写,提升可能会更快。像前几年还在测试岗的时候,时间精力完全淹没在业务测试里,各种加班。目前的想法比较明确,基于对公司业务理解,学以致用,多写代码吧。

润安 #37 · 2019年10月14日 Author

考过了中级软件设计师。。。高级证书啥的现阶段就算了,耗神费力,对找工作帮助也不大

可能你对测开这个岗位有什么误解。这个岗位是虚的,没有实际的意义。做的工作还是功能测试,只是编码能力比较强。现在的测试平台大部分都是用开源的,像禅道什么的。测开有发挥作用的地方一般是以下几点;1、测试环境搭建 2、测试成果整理平台化 3、测试数据自动化生成 4、持续集成平台 5、运用其他工具,辅助测试,比如测试代码覆盖率等。任何测试能做到以上几点,都可以叫做测开,而不是一定要有个专门的岗位才能称做测开。

陈子昂 回复

哎!!
问题就在这里,很多人下班学习,能学的程度可想而知,又不敢轻易离职专职学习,这就是大龄同学的困境,
你降薪之后是到另一个公司有人带你吗,另外大龄测试开发好找工作吗 (普通人,一级大咖就没必要讨论了)?
也借鉴下你的经验!

想做侧开,好歹你得考个高级证书证明一下自己吧

忧虑,加油!!!

MichaleScold 回复

我就是小厂的测试开发。。。

和我轨迹有点类似吧。前几年我 33 岁之前也陷入管理 + 功能一线的情况下,技术是抽空学。后面痛下狠心,降薪很多去做测试开发。
现在是纯正的测试开发了。
代码这个除了部分模块 比如网络层底层和图形学,其他堆时间就行了。

zyanycall 回复

可以的,学到了

润安 #28 · 2019年10月11日 Author
TestDevWay 回复

你说的四个步骤中,一二步我已经走了。现在真的有刀需磨。其实还内心浮躁了一点,现在公司的监控还有发力的地方,可能是带了偏见以及前几年高强度被压榨过,内心没有去审视代码能力进阶需要结合公司实际。谢谢建议,我觉得对大多我这种情况的都适用。

考虑下大数据和人工智能 啥火干啥

从你的描述来看 你距离测试开发还有一段距离,
你目前属于刀有了 但是还没有磨的阶段;
第一步:你要在工作中把你的编程优势利用起来,例如复杂的计算测试;尝试让自己的测试工作逐渐的让计算机帮你去自动化的去做;
第二步在有自动化的优势前提 要多了解你们公司目前开发在使用的技术,遇到问题你能不能帮助开发进行定位,有没有解决这个问题的方案,如果说这个软件这个功能你自己不清楚如何实现的 那么就要弄懂了 可以尝试自己写点后台的接口 了解前后台的交互原理;
第三步,自己又能力写一点测试工具 提升一下自己的编程思想 抽象能力 多学一点 什么都看看 但是慎重考虑是否要深入;
第四步,学习优秀的设计模式 自己编写适用于公司 或者个人的框架供内部去使用,这时候你已经是测试开发了

测试开发=开发会的基本都会 + 开发不会的也会;

成功没有捷径,努力的结果 就是成功 只不过每个人的进度不一样,最差的结果是大器晚成。

很诚恳了。坚持走下去需要好大的决心了

感觉和楼主情况很类似,待过的公司都是大厂,但却一直是螺丝钉的工作,感觉技术上需要学习的东西很多,也在转型中,很是迷茫,不知道能够成功

润安 回复

嗯嗯

润安 回复

针对你第一条有同感,我差点就年纪轻轻就去国企养老了

仅楼主可见
润安 #20 · 2019年10月11日 Author

我来做个总结吧
1、年轻人要引以为戒,不要在年轻的时候停止奋斗;应该多关注自身的成长,而不是闷头苦干不看方向。乘着没有什么压力,报个霍格沃兹?
2、技术能力不管是在哪个阶段的 level,市场上肯定有适合的岗位,矛盾无非在自己的期望和实际情况的差距。转型技术这 6 年,我的技术成长是偏慢的,排除公司因素,自己是负有不可推卸的责任。但是目前我还是想摸一下天花板很低的开发岗,毕竟天花板很低,要摸一摸,没什么难度。所以相对来说,可能结合自身的特点,技术专家这个方向对我这个年纪来说,很难走。。往后可能会技术 + 软实力方向(产品、项目经理之类)的岗位靠。目前,我和开发岗的距离,只缺一个 offer,offer 还要磨。
3、大龄的也不必过于焦虑。人都有一死,于公我等自是轻于鸿毛之类。技术也都有天花板,爬的慢和爬的快的差距除了单位时间的收入差异外,最终的目的地都差不了太多,技术不是人生的全部。
4、不要逼逼,干就完了。

找准路坚持下去,自己做个测试平台,什么都明了了

“我们有些人就像是乌龟,走得慢,一路挣扎,到了而立之年还找不到出路。但乌龟知道,他必须走下去。”——古迪纳夫
PS:其实我也不知道出路。。。

17楼 已删除

我国的环境,是对大龄不友好,没办法,! 随着越来越多的人进入互联网,对大龄更大不友好!未来更加明显!
32 岁离 60 岁退休还长!这也是我焦虑的原因,如果真的哪一天互联网不要我了,也许外卖我也可以干!!

magicyang 回复

有时候咸鱼也不好当啊。。。没准哪天就被炒了😩

润安 #14 · 2019年10月10日 Author
kong 回复

某种意义上,我就是公司的运维角色。你说的这些职能角色我觉得意义不是很大,因为个人的价值依托于公司业务,而不是岗位。像我说的测开,可能市场上就是你那么定义的,那我可能要转就更难了。

润安 #13 · 2019年10月10日 Author
MichaleScold 回复

其实不一定是测开,运开也可以的,而且我目前的环境运开相对更容易,如果是运开的话,我可能要换 python 作为主要开发语言再折腾一下了。之所以要转,收入是一方面,因为我调研了一下测试领域在成都的收入金字塔,不懂开发收入绝对上不去。软件行业的核心是那些写代码的工作,所以希望往核心靠。另外,接口测试很简单的,我自然是做过,没有做过的是自动化的接口

润安 #12 · 2019年10月10日 Author
Vason 回复

24 岁早点意识到以后的危机,有各种选择。加油!

润安 回复

如果你是测试,只在环境的问题上做动作,那还不如运维在环境的问题上思考的多,测试不先解决测试自身的问题,怎么能称为测试开发,还不如叫运维开发。。。在我看来,测试开发主要工作是为测试服务的,在提高测试效率后,再协助其他能影响到测试的周边部门开发可以提升效率的工具(如开发、运维、项目管理等),这样才能证明测试开发存在的价值,当然以上纯属个人看法

为什么要转测开?
为了钱?不见得转了会比你现在收入多多少

为了发展? 且不说年龄,目前除了大厂,小厂测开大都是摆设
最后比较好奇 6 年工作经历 咋接口测试无实际经验

相比楼主,我才 24 岁,其实掌握的应该和楼主差不多,但我现在就为自己的 30 岁做规划了,也想着能不能往大数据行业转行。在到 30 岁的这几年,我还要存得一定的积蓄,当自己的年龄达到那种被公司嫌弃的地步,我就想创业了。我是一个不想被别人左右的人,好就好在我们可以选择自己的人生啊。加油!

爱偷懒的QA 回复

你说的是现状。相同薪资要求和能力,机会不会给大龄的。毕竟,leader 要是比我还小,就算我觉得没啥,人家也觉得老家伙不好使唤。。。哈哈

Fresh 回复

你说的有道理,目前公司生产环境中间层的监控还没什么产出,我决定试试。谢谢!

kong 回复

在能力范围内,解决了目前公司持续发版的问题,是公司环境治理上的主力。自觉天花板了。能改进,但是投入产出比还是低了,外界环境目前没有那么改进的刚需。

magicyang 回复

早点痛苦,比以后痛苦要好一点。走了不少弯路,还得继续折腾啊。看过大佬的帖子,砥砺前行啊

从你的叙述来说,你现在的情况是功能测试开始学习了一些儿自动化测试相关的东西,至于其他的如测试环境相关的知识属于测试必备的能力。其他的知识看似学的挺多的,只是比较杂乱,没有形成自己的知识体系。要做测试开发的话,也相当于中级测试开发,达不到高级的,因为你没有做过有一定的规模的测试平台,或是测试工具。但相比你的年龄来说,找工作的时候有点儿吃亏,年龄和能力不相匹配。个人观点,仅供参考。

其实还是缺乏应用场景,不凡试试把工作中的痛点利用这些技术或工具解决掉,做深入;学太杂而没有精通的会让人感觉深度不够,做某方面的专家就好

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册