本人本科毕业之后,就入职了安防行业。安防行业测试方法主要是以手工测试为主,测试的技术栈非常落后。如何从手工测试进阶测试开发以谋求更好的发展呢?机缘巧合之下,在知乎看到了学院的课程。试听之后,便毫不犹豫的报了课程。通过学习,明确了未来的发展方向。学院的项目实践,极大程度的加深了我对测开知识框架的理解和掌握。在这里先谢谢思寒等一众大佬授课解惑,安伶儿小姐姐对简历,面试的耐心指导。也分享一下自己的一点学习心得和成长经验。
学习的心路历程
在接触到学院的课程之前,我有接触过一些测试开发的知识,但是不管从知识框架还是知识细节都掌握的很模糊。举个最简单的例子:我一直在用python写脚本,但是连python的运行过程都不清楚。
作为往期的学员,我在一年多以前已经开始接触课程,和大多数人一样由于自身没有紧跟课程以及懈怠,直到收到到课率的时候我才猛然惊醒。于是在去年十月份的时候我就下决心先把课程学完,并计划在一月份开始投简历。经过三个月的学习,我将课程中的项目都做了一遍,并使用pytest相关的知识逐步取代部门之前使用的robot框架,这也给我敢于进大厂奠定了心理基础。
在熟悉完70%的知识之后(因为没法百分之百的看完所有知识,通过面试去促进自己补充知识对我来说更高效),我找到安伶儿修改简历,内推(不得不说大佬真的尽职尽责)
面试,都面哪些方面?
在面试的过程中,面试官一般会根据招聘需求,结合简历来进行提问。提问的知识面,真的是非常广的。这里不得不说,大厂的面试官,本身就是很精英的存在。根据面试过程中提问的问题,大概可以分类成以下几类问题:
数据库: 查询,主键外键索引,另外了解下数据库的设计原则等等
操作系统: 进程线程,死锁,进程调度,进程同步等等
用例设计: ui端用例设计,接口用例设计,白盒用例设计(了解)
**协议:**tcp,udp,http,https,dns,arp等等,涉及到自己行业的协议也要有所了解
Python: 类,数据类型,装饰器,了解进程线程协程等
自动化相关知识: pytest,ui自动化,接口自动化(跟一遍学院的课程,做一遍项目基本就没问题)
Linux操作系统: 常用命令,linux三剑客,了解一些linux相关的配置,文件,权限相关知识
持续集成: jenkins,docker,跟一遍课程基本够用
数据结构和算法: 数组(排序,二分),链表(相交,反向,成环等),栈(入栈,出栈,括号问题),队列,二叉树(前序,中序,后序),堆(堆排序),图
项目: 简历上的项目一定要多次熟悉
其他知识: restful,web架构,分布式,nginx,Apache,自己所处行业的知识与面试业务线交叉的知识点也需要重点关注
面试的经验之谈
由于大厂的算法是个门槛,在没有准备好的情况下面了某大厂,二面直接挂掉,当时心里还是有落差的,觉得算法题太多,而且没有基础知识的情况下,刷leetcode很难理解,多亏了学院给了相关的学习资料把对应的课和题都看了一遍,后面的算法题也基本在射程之内了
第一次大厂面试之一面
- 设计函数的白盒测试用例
- 输入一个url发生了什么
- http常用的方法,get,post
- http常见错误码
- 写一个sql ,group by,count
- 算法题有效的括号,设计函数的白盒测试用例
- 项目细问一个(包括软件架构,如何落地自动化测试,优缺点,项目产出)
总结:从个人经验看,一面基本是基础知识,面试官看的是你的知识广度,回答的时候尽量主动。比如在回答“url输入发生什么” 如果你了解dns和其他相关知识,要主动分享你的理解,这样面试官会对你有一个好的印象,同时会觉得你对基础的掌握很好,有的问题甚至不会再问你了(面评好即使后面没过,被其他部门捞起来的概率也大)
第一次大厂面试之二面
- 线程与进程
- 进程的调度算法
- 常用的数据结构
- 排序算法,两个数的和
- 算法的时间复杂度和空间复杂度
- 项目中的难点
总结:二面挂,主要是缺乏算法和操作系统的基础知识,后面复习之后发现难度并没有想象的大
第二次大厂面试题:
在第一次被挂掉之后,对算法进行学习,当时信心满满,但还是二面挂,挂在了测试方案上
第二次大厂面试之一面
- 问项目,如何落地,产出,我结合了公司的ui自动化项目和学院的接口自动化回答的
- 算法题,元素出现的频率,针对编写的函数设计测试用例(白盒用例设计方法)
- 装饰器,死锁
总结:不知道是不是第一次面试基础答得比较好,这一次没怎么问基础知识,主要问的项目
第二次大厂面试之二面
- 深问项目,由于我之前从事的是音视频相关的知识,所以问了很多音视频相关的测试方案对互联网音视频的测试方案和基本框架不了解,回答的不好
- 其他没问,就知道基本挂掉了
总结:这里就体现了传统行业和互联网测试的差距,传统安防不涉及到高并发等场景,我自己讲项目的时候又提到了,所以给自己挖坑了,大家在将项目的时候一定要结合自己的实践项目,一知半解的东西尽量不要提
第三次大厂面试之一面
经过第二次面试,我把互联网相关的视频测试了解了下(一面就用上了)
一面:
- 问项目(和之前两次基本一样),产品的协议比如rtsp,hls,rtmp等
- Restful了解吗
- Tcp和udp的区别,如果让你设计一个协议你会怎么设计(根据udp和tcp的特点),rtc协议了解吗
- 算法题:字符串相关的,具体题目忘记了,针对编写的函数设计测试用例(白盒用例设计方法)
第三次大厂面试之二面
- 深问项目
- 算法题,有13张牌,从最上面第一张抽出放在桌上,第二张放到这副牌的底部,以此类推,直到所有的牌都放在了桌上,已知桌上的顺序求这些牌原来的顺序
第三次大厂面试之三面
- 为什么来我们的公司
- 问项目(基本就是那几点,主要体现自己的测试思维,执行,产出)
- 教育产品用例设计
- 编程题:输入两个版本号,对版本号进行对比
第三次大厂面试之四面
- 为什么离职
- 面了哪些公司
- 期望薪资
- 毕业的时候面了哪些公司,为什么选择这个职业
大厂面试总结
总结:在复习和学习的时候,看了课程,csdn,掘金,各个厂的技术公众号之后要进行输出,比如写文档,写博客,做项目,做公司分享。
最后再次感谢学院开设的课程,各位大佬的指点。如出发必到达,希望各位也能尽快学习找到期望的工作。