写点什么

测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

  • 2022 年 9 月 20 日
    北京
  • 本文字数:2988 字

    阅读完需:约 10 分钟

霍格沃兹测试学院优秀学员学习心得与面试经验分享,进阶学习文末加群!

学习心得

本人本科毕业后在一家金融类软件服务商做测试,工作了近 2 年的时间。这家公司作为乙方,需要满足甲方提出的各种定制化需求,而且当时所在的项目组常常需要去甲方单位现场出差。一方面,我个人不太喜欢这样的工作方式;另一方面,感觉测试工程师在公司的地位很低,连代码权限都没有,也没人关心你的个人成长,所以下决心跳槽去互联网企业发展。

在准备面试期间,了解到霍格沃兹测试学院的测试开发实战课程,课程内容设计很丰富,涵盖了互联网测试行业各大主流技术方向,感觉随便拿一个出来都可以当做一个专职的来做,比如 UI 自动化测试,接口自动化测试,性能测试,代码覆盖率,静态代码扫描,专项测试等,各个部分可组装成一个完整的体系,可以全面补齐我的技能短板,当下就决定报班学习。比较幸运的是,在霍格沃兹测试学院学习不到半年内,就顺利拿下了某互联网电商平台的测试开发岗位 Offer,不仅薪资翻了一倍多(涨幅 114%,年薪 23W+),更重要的是工作模式和技术栈发生了很大的变化。

在新的互联网测试团队,测试 QA 需要对整个产品质量负责,从需求初审,终审,设计用例,测试,UAT 验收,回归验收,项目上线等整个流程都贯穿其中,并辅以接口自动化测试和 CI/CD 持续交付等提高测试效率。UI 自动化因为项目变动频繁,且考虑到 ROI,只做了核心功能的 case。线上监控有 Grafana,日志平台使用的是 ELK,而且已经陆续要迁移到自研的平台上了。另外各种环境部署都配合 Docker,也慢慢由 Mesos 迁移到 K8S。很喜欢这里的工作氛围,有很多技术挑战也有很多成长机会,也需要不断学习保持自己的竞争力。

这里也简单分享我个人的一点测试开发学习心得和面试经验:首先,要有意识系统构建自己的测试开发技能体系。比如学院课程里接口自动化测试+静态代码扫描+代码覆盖率+报告展示+邮件生成这个流程结合 Jenkins,可以形成一个完整的闭环监控体系,对于开发每次提交代码则触发一次。再比如 UI 自动化+STF 整合成一个兼容性测试平台,结合 Jenkins 也可以做到闭环。

其次,学习过程中,最重要的是动手实践。一定要动手自己去敲代码,去搭建环境,去把整个流程跑通,即使是实现一个 Demo,也会让你有成就感。在学习过程中,我就在阿里云买了一个服务器,自己搭建 Jenkins,把自己写的接口自动化和 UI 自动化跑起来,并搭了一个 Grafana+Prometheus 的监控体系,虽然都是些小玩具,但还是倍感欣慰,由于内存有限,像类似 STF、SonarQube 无法搭建在服务器上,但自己本地都尝试过。一番动手实践下来,感觉收获很多,也才能正真理解很多技术细节要点。最后一点是,知识既要有广度,也要有深度。一定要有自己最为擅长的东西,像我自己虽然接触了很多,尝试了很多,但感觉技能水平深度还不够,仍需不断学习,这里也与各位同学共勉。

面试经验

因为在异地,我的面试经历是通过远程视频面试的,整体体验还不错。

首先,是惯例的自我介绍,当前工作主要负责哪些内容。

然后,面试官按简历内容进行了一些提问,比如当前接口测试怎么测的,讲一下大概的流程。UI 自动化这一块目前工作如何,这两个问题因人而异,但主要就是讲数据准备,用例执行,数据清理,以及框架封装,平台工具之类,就不多讲了。由于简历上提到了资源监控的服务的搭建经历,就详细介绍了一下我用 Docker+Prometheus+Grafana 搭建的服务监控阿里云服务器和 MySQL 资源使用情况,讲了监控的内容有哪些。

接着,问了一下平常有开发过什么工具吗,说了一下之前写的数据回滚的工具,根据数据库事务 Log,Oracle 提供的那个 Flashback,先把数据准备和用例执行过程中会变动的表全部拿到,开启表行权限,再记录当前的 scn 号,在执行完以后将表全部回滚,里面还封装了一下 HTTPClient,写了一个 get 方法,两个 post 方法去刷缓存,一个是 json 串的,一个是 key-value 的。

再接下来就是具体的出题目了。

第一个题目是 Linux 技能。问我平常 Linux 哪些命令用的比较多,我写了一部分 cpcdscprmmkdirgrepsedawknetstatpslslsofvimechocat 大概这么几个(其实平常用到很多,当时紧张没想起来),让我介绍一下这几个命令,tarmvhistorytailtopwgetfindtouchcleardfduchmodcurl 这些,然后就针对我写的那几个命令问了几个问题,mkdir 怎么创建 a/b 这样的目录(a 不存在)?三剑客如何使用?注意 grep 命令会把自身 grep 出来,如何去掉这个内容?还有问了一下 ps-ef 和 psaux 有什么差别?最后给了一个 properties 文件,让找出某个配置的值(这个挺简单了)!

第二个题目给了道编程题。直接在在线 IDE 里写出来并调试出结果。给一个数组 a,输出这个数组里元素出现次数大于数组长度一半的那个元素。题目相对来说简单,但面试手撸代码这个过程让人感觉有点紧张。写了大概十来分钟,所幸还是写出来了,不过还是有 bug,只适合数组元素都是正数的情况,我就是遍历数组,找出最大值记录,然后同时 new 一个和原来数组一样大小的数组 b,关键就一行代码 b[a[i]]++,将 a 的值当做 b 的下标,遍历到一个相同的值 b 对应的下标加 1,然后再遍历新数组,当值大于原来数组长度一半直接输出下标,之前的 max 值控制遍历的长度,因为只需要遍历到 b[max]就结束了,当时还在想怎么考虑负数的情况,面试官直接就问我思路,提到其实 hashmap 可以很轻松实现,但是平常没怎么写过,怎么遍历 key 和 value 也记不太清,算是勉强过关。

第三个题目是设计测试用例了。因为是电商公司,自然就是一个类似淘宝下单的界面。有库存,价格,图片,尺码,颜色,购买数量这几个,让我直接在 ide 里面写一下测试点,分别对功能、性能、兼容性、安全四个方面写了一下。这个问题具体的就不展开讲了,就讲一下我漏了的地方,购买数量上限是 5,即[1,5],当库存不够的时候忘了考虑数量即使在这个区间也无法购买的情况,然后就是图片,面试官点了一下,我只写了检查图片是否符合预期,没仔细写,然后说了一下图片是否符合衣物,图片的清晰度,是否经过压缩,图片大小限制,是否经过裁剪。

最后问了一下数据库相关的问题,问我是否平时都是增删改查,有没有经历过相对复杂一点的问题。刚开始没听太懂,我以为是指 SQL 的分析函数,事务,触发器编程等东西,实在没用过,就简单说了下除了增删改查还用过 orderby,groupby,partition 等,后来面试官说是对于数据库优化有没有实际经验,比如慢 SQL 之类,也没怎么经历过,就说了下一般通过增加索引来提高查询速度,然后面试官根据索引问了一些问题,什么情况下使用索引,使用索引以后会有哪些负担,索引怎么实现的?这个我只说了下 B+tree 或者 Btree?可能只是想问问我知不知道是什么东西,并没打算真的问怎么实现的。

到这差不多一个小时了,惯例结束前会让面试者提问,我问了一下那边的测试流程(想知道项目管理这一块乱不乱),面试官说了一下需求都会有评估时间,开发提测时间延后测试肯定也延后,不会出现压缩测试时间的情况;最后问了一下那边接口测试怎么开展的(主要还是全代码实现的,基于 Python 用 Unittest 实现的,自己封装了一套),至此就结束啦。

以上,整体感觉比较顺利,可能我之前的学习实践经历给面试官留下了较好的印象,这里也再次感谢霍格沃兹测试学院各位老师的指导和帮助,也祝各位测试小伙伴能收获成长,一起进步!


点击下方链接免费领取:性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档

http://qrcode.testing-studio.com/f?from=infoQ&url=https://ceshiren.com/t/topic/22265

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019.10.23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验_霍格沃兹测试开发学社_InfoQ写作社区