测试工程师如何转型测开
3.1摆好心态&开放眼界
我始终认为掌握技术最重要,title不重要。测试工程师和测开只是title不同,工作内容并没有明确的边际,这个完全取决你对测试的看法!
有可能一些公司的测试工程师做的是某些公司测开的干的活,而一些公司的测开可能做的是某些公司测试工程师的活。
就像我在字节时候,title是测试工程师,工作内容是业务测试+接口测试平台开发7/3分。而在阿里则也是差不多(甚至阿里的业务还更重些)。
对于我来说两家公司的工作内容是没什么区别的,只是title不一样而已。
对于想转测开的测试工程师建议:调整心态,不要以“测开”唯是,提升自己的技术能力才是重点。
要养成持续学习的习惯,多接触一些知识,拓展自己的眼界,在业务测试过程养成“偷懒”的习惯,多思考自动化手段减少手工测试工作。
3.2夯实基础&运用技术
1)编程能力要过关
至少精通一门语言。而且使用该语言开发过工具或平台最佳。
一是测开面试通常要编程写代码,这个是门槛;二是有开发经验能侧面证明你对开发语言的熟练程度。
至少掌握一个开发框架。例如spring boot、flask、Django等。
2)基础算法要熟悉
学习的同时建议结合LeetCode练习。
1.快速排序算法
2.堆排序算法
3.归并排序
4.二分查找算法
5.BFPRT(线性查找算法)
6.DFS(深度优先搜索)
7.BFS(广度优先搜索)
8.Dijkstra算法
9.动态规划算法
10.朴素贝叶斯分类算法
3)有所专长(亮点)
前文说到过的一个道理,人无我有。在大家都掌握相同“技能”的前提下,你能做的更深入或者有别具一格的idea,则这就是你的亮点。
例如擅长性能测试、擅长效率工具开发、擅长平台搭建等。当然这个因人而异,视各人兴趣点而定。
4)多利用技术手段解决业务问题
我认为这个是最重要的。纵然你掌握上述能力后,但是缺乏运用技术解决实际问题的能力,仍然是纸上谈兵。
正如第2节所说的,测试开发岗位职责都要求解决复杂问题的能力。而我在面试中问到的最多的问题就是:为什么做这个东西?你这做的东西解决了什么问题?
后面我会附上面试经验分享,里面包含所有面试题目。而如何提升解决问题的能力,第一步就是要善于发现问题,这就要求工作中大家保持怀疑心态。
3.3“创新”意识
不可否认创新是属于少数人的专利,但是并非大多人不能创新。
作为普通大众的我们可以二次“创新”,将前人作出的成果二次创新运用到我们的业务中并解决一定的问题,我觉得对于普通人来说这就足够了。
如何保持开放心态?建议大家多参加测试沙龙和论坛,业界比较专业的测试论坛如:每年两场的MTSC大会,议题质量是相当高的,基本都是BAT议题占了半壁江山,可以说BAT的议题成果就是国内测试界的发展标杆和方向(虽然BAT的议题可能是别人玩剩下的)。
此外,关注各大厂的技术公众号,多看看他们发的文章提升眼界。
3.4我的阿里测开面试题分享
我把三轮技术面的题目(不完全统计)分类整合到一起了,大家凑合看。
技术题:
1.了解多线程吗?了解Python的GIL锁吗?
2.说一下进程和线程
3.进程间通信的方式有哪些?
4.说一下什么是乐观锁和悲观锁?
5.AOP
6.什么是IOC?
7.list和map相关
8.解释一下工厂模式?
9.内存泄漏
10.会做性能测试吗?容量测试/稳定性测试?
11.Python2和3的区别?
12.DNS解释一下?
13.用户名、密码、验证码哪个校验顺序?
14.Linux根据进程查端口/端口查进程
15.常用的Linux指令?
16.排序算法
围绕工具开发:
1.工具是如何开发的?
2.为什么要开发这个工具?
3.公司内部没有类似平台吗?
4.效能工具包含哪些?举几个例子?
5.介绍一下自研的接口自动化框架?
a.有哪些模块组成?
b.相比其他框架有哪些优势?缺点有哪些?
c.介绍一下框架的代码生成模块是怎样实现的?
d.使用你的框架测一个接口需要做哪些步骤?
e.接口的断言怎么做?
f.接口测试带来的收益?
g.testng和junit优缺点
6.造数据工具,如何开发、提效多少。
大数据测试:
1.怎么测试数据的准确性?
算法测试:
项目经验:
1.算法测试做哪些工作?
2.如何进行算法评测?
3.不同的算法类型,评测标准是不同的
4.介绍一个最近的算法测试案例?
5.如何选择测试集?测试集的特征如何选择?
6.说一些算法测试发现的badcase?
7.如何保障算法质量?
编程题:
1.线程交替打印奇偶数
2.最长回文子串
项目经历:
1.介绍一下负责的项目?
2.针对老系统(有很多僵尸代码)如何保证质量?
3.做过的项目遇到的最大风险点?
4.怎么保障项目的质量?
5.如何处理紧急需求?
6.项目的迭代方式?
7.说一下最近项目推动成功的案例?
8.说一下自己人力分配?
持续集成:
1.了解CI吗?解释一下CI
2.如何衡量测试用例质量?
3.说说你对测试的理解?或者说质量的理解?
团队管理:
1.团队管理上有没有什么难点?
2.你期望一个怎样的测试团队?
3.团队的测试开发比是怎样的?
4.如何衡量全职/外包比例?
5.外包的忠诚度如何保障?
6.你能为团队带来什么?
HR问题:
1.为什么跳槽?
2.为什么选择阿里?
3.前几家公司收获
4.有什么问题要问的?
5.工作中最大的挑战(最大挫折),如何克服的?
6.最大的优点和缺点?各自说一个?
7.未来的职业3-5年发展规划?