背景介绍
计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实习是在一家初创公司里面做全栈。
本人面试的是测试开发岗,在今年8月初进行申请,最终在10月份拿到oc。期间经历了笔试->性格测试->技术一面->技术二面->总监面->OC这几个环节,基本上每周完成一个环节。由于华为面试环节全部完成后需要审核(大概1个多月)所以从申请到oc大概2个月左右。接下来为具体笔试面试的内容:
笔试
3条题目中AC了两条,但我看网上说华为笔试分数过一百就有面试的机会。题目难度为leetcode中等,一般50行代码就可以解决,主要注意一下边界的问题,具体题目可以到牛客上看看各位大佬的分析。第三题考了一道最短路径,由于前面的题目耽误了点时间就放弃了。
话说华为的笔试还是比较水的,只要平时有多刷题目通过笔试都没有太大的问题。
性格测试
笔试完成后大概一个星期收到性格测试的邮件,但在做第一次性格测试后却被hr告知挂了。。当时慌得一匹,因为有了解过华为的性格测评是会刷人的,还好有第二次的重新补做的机会。当时上网查阅了一篇关于华为性格测试的文章:
总共是有一百道题目左右,不能够返回答题,因为部分题是考察考生的回答题目的一致性。
现在想起来感觉第二次和第一次填写的答案差不多,就感觉emmm...很迷。
这里建议大家在答题的时候要保持一颗要努力拼搏,不怕困难以及积极向上的心态。
技术一面
其实之前也有了解过今年的华为面试比以往难了许多,在测试岗的面试中涉及手撕代码并说出解题思路,一旦没有做出来或者是思路比较混乱都有可能面临被刷的危险。
今年华为的招聘政策改革(难度加大:可能由于先前华为各大985口中的“保底”offer)导致了面试的难度提升以及对招聘者的能力要求更为严格。以下是面试的具体内容。
(1)项目深挖,项目中运用到的技术以及优缺点评论,这里博主把在第二次实习中的全栈经历包括vue全家桶,node.js,Mysql的存储引擎等都总结了一遍。
(2)笔试题的思路以及黑盒白盒是什么。
(3)数据结构题,这里考察了一个双链表的题目。
(4)TCP三次握手以及如何看待华为。
(5)压力测试,稳定测试,数据库。
技术二面
问完项目后就是手撕代码,这里在做第二题的时候卡住了。。但好在面试官很nice进行了引导,最后艰难解出来。
(1)简历深挖。
(2)字符串中的某个字符出现的次数。
(3)给定一个链表,将倒数第 n 个结点删除。(leetcode第19题)
删除一个结点,无非是遍历链表找到那个结点前边的结点,然后改变下指向就好。先遍历一遍得到它的长度,之后用长度减去 n 就是要删除的结点的位置,然后遍历到结点的前一个位置就好了。
(4)测试的流程。
业务主管面(综合面)
让我诧异的是华为的综合面试没有问到代码,只是问了许多关于职业规划的问题。
(1)实习中做得不足的一些地方。
(2)在之前的实习和项目中是如何面对突发状况的。
(3)对于加班的看法。
(4)如何处理和同事之间的关系。
(5)对工作地点的看法。
在综合面试结束后,官网的状态就会更新为:录用排序中。在联系了hr之后被告知需要等待4周左右。。前几天收到oc并谈好了薪资以及工作地点~
近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套软件测试复习面试的刷题以及答案,我知道很多同学不知道怎么复习,不知道学习过程中哪些才是重点,其实,你们经历过的事情,我也经历过,正应为经历过,所以不愿意看到还有万千学子为此伤神,也许这篇文章帮不到万千学子,但是能够在这个平台上帮助到正在看这篇文章的那个迷茫的你! 我也就满足了!
内容涵盖:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等 16 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份 PDF 拿下众多大厂的 offer,今天在这里总结分享给到大家!
博主这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录,完整版在文末自行拿取哦。
大厂软件测试岗经验分享
通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:
第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
第二部分,Linux( Linux基础+Linux练习题)
第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
第四部分,Web测试
第五部分,API测试
第六部分,App测试
第七部分,管理工具
第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
第九部分,Selenium相关
第十部分,性能测试
第十一部分,LordRunner相关
第十二部分,计算机网络
第十三部分,组成原理
第十四部分,数据结构与算法
第十五部分,逻辑题
第十六部分,人力资源
一、软件测试基础篇:2023版
列举常用的5种黑盒测试方法。
列举常用的6种白盒测试逻辑覆盖方法
写出学生成绩(0 --100)的分别处于有效等价类和无效等价类的边界值(只考虑整数)?
使用因果图方法进行测试,恒等、非、或、与的关系如何表示。
软件缺陷产生的原因?
应用边界值分析法进行测试用例设计时,应遵循哪些原则?
列举出动态测试的几个步骤。
简要画出软件测试V模型?
简要画出软件测试W模型?
画出5种基本控制流程图的结构图。
简述自顶向下增量式测试和自底向上增量式测试两种集成测试方法,并比较两者的优点和缺点?
黑盒测试有哪些优点和缺点?
什么是软件质量保证?软件质量保证人员与开发人员的关系如何?
二、MySQL篇:2023版
数据库概念及分类
SQL语句概念及分类
MySQL数据类型Spring
条件查询
别名、去重
排序、分页查询
聚合函数、时间相关函数
分组与having
子查询
关联查询
约束
索引
存储过程
事务
SQL的表连接方式有哪些?
表的连接查询方式有哪些,有什么区别?
什么三范式?
SQL的select语句完整的执行顺序?
…
三、 Linux篇:2023版
三种查看server.log的文件内容
编辑start.sh文件,查看文件前10行内容和后10行内容
删除temp.conf文件
查看后台所有java进程
结束后台java进程
编译maven项目
将start.sh文件改为可执行权限
启动jboss服务
跨服务器拷贝文件(怎样把共享盘的文件拷贝到linux本机里)
更改linux服务器系统时间
计划每星期天早8点服务器定时重启,如何实现?
linux系统中如何获取pid为100的进程所监听的tcp端口,请给出详细命令?
Ndinx与apache的区别?
四、 Web测试
http代码表,常考题目
TCP/IP四层网络模型
TCP/UDP区别?
html css js运行的先后顺序是什么?
session和cookie的区别是什么
session存放在服务器端用来校验客户端的身份
cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份
电商支付模块的测试如何展开?
如何开展兼容性测试?
nginx,tomcat,apache都是什么?
apache和nginx的区别?
Selenium有哪些定位元素方法
五、接口测试
get和post区别是什么?
cookie和session的区别
请求接口中常见的返回状态码
怎么设计接口测试用例
如何分析是前段还是后端的问题
在手工接口测试或者自动化接口测试过程中,上下游接口有数据依赖如何处理?
依赖第三方数据的接口如何进行测试?
接口测试中,依赖登录状态的接口如何测试?
接口测试一般是什么时候做
平常你是怎么测试接口的?
接口测试中,依赖登录状态的接口如何测试?
接口测试能发现哪些问题?
TCP建立连接和断开连接的过程?
HTTP协议的交互流程,HTTP和HTTPS的差异,SSL的交互流程?
TCP的滑动窗口协议有什么用?
HTTP协议都有哪些方法?
Socket交互的基本流程?
讲讲tcp协议(建连过程,慢启动,滑动窗口,七层模型)?
webservice协议(wsdl/soap格式,与restt办议的区别)?
说说Netty线程模型,什么是零拷贝?
TCP三次握手、四次挥手?
DNS解析过程?
TCP如何保证数据的可靠传输的?
六、APP测试
web测试和APP测试的区别?
如何测试一个APP的登录场景
push消息如何测试?
APP的闪退通常是什么原因?
测试过程中遇到 app 出现 crash 或者 ANR,你会怎么处理?
你平常会看日志吗, 一般会出现哪些异常(Exception)?
APP 测试的内容主要包括哪些,如何开展?
APP 性能测试关注点及常见 APP 性能测试工具
如何对 app 进行弱网测试
常见的 adb 命令
…
七、性能测试
性能测试的应用领域有哪些?
性能测试包含了哪些软件测试(至少举出3种)?
交付一个性能测试项目,请阐述你的性能测试流程
如何理解压力测试,负载测试以及性能测试?
jmeter如何设计性能测试场景?
介绍 JMeter 聚合报告包括哪些内容?
解释5个常用的性能指标的名称与具体含义。
你在性能测试中遇到哪些性能问题?
举例说明jmeter的定时器用法?
什么是性能测试?
什么是上下文切换?哪些场景会存在上下文切换?
如何用命令行生成测试报告?jtl文件怎么分析?
性能测试中Linux命令
什么时候可以开始执行性能测试?
简述性能测试的步骤。
性能测试时,是不是必须进行参数化?为什么要创建参数?
描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点
八、Selenium
如何开展自动化测试框架的构建?
如何设计自动化测试用例:
webdriver如何开启和退出一个浏览器?什么是自动化测试框架?
Selenium是什么,流行的版本有哪些?
你如何从命令行启动Selenium RC?
在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
什么是Selenium Server,它与Selenium Hub有什么不同?
你如何从Selenium连接到数据库?
你如何验证多个页面上存在的一个对象?
XPath中使用单斜杠和双斜杠有什么区别?
如何编写SeleniumIDE/ RC的用户扩展?
如何在页面加载成功后验证元素的存在?
你对Selenium Grid有什么了解?它提供了什么功能?
如何从你的Java Class启动Selenium服务器?
Selenium中有哪些验证点?
什么是XPath?什么时候应该在Selenium中使用XPath?
…
九、计算机与网络
一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
请简述DNS、活动目录、域的概念。
10M兆宽带是什么意思?理论下载速度是多少?
什么是IP地址?
OSI七层网络模型的划分?
TCP和UDP有什么不同?
HTTP属于哪一层的协议?
HTTP和HTTPS的区别?
cookies和session的区别?
HTTP的get请求和post请求的区别?
HTTP1.0和HTTP1.1有什么区别
TCP的连接建立过程,以及断开过程?
客户端使用DHCP获取IP的过程?
写出某个网段的网络地址和广播地址?
…
十、人力资源
你的测试职业发展是什么?你自认为做测试的优势在哪里?
你找工作时,最重要的考虑因素为何?
为什么我们应该录取你?
请谈谈你个人的最大特色。
一个测试工程师应具备那些素质和技能?
还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
为什么选择测试这行?
如果我雇用你,你能给部门带来什么贡献?
你的工作通常能在时限内完成吗.
你在五年内的个人目标和职业目标分别是什么?
对于以上这些知识点,经过长时间整理,已经形成了文档资料以及讲解视频,下面给出部分截图: