前言
下面是我根据工作这几年来的面试经验,加上之前收集的资料,整理出来350+道软件测试工程师 常考的面试题。字节跳动、阿里、腾讯、百度、快手、美团等大厂常考的面试题,在文章里面都有 提到。 虽然这篇文章很长,但是绝对值得你点击一下收藏。
文章导读
- 面试中面试问题的分类
- 大厂面试真题
- 书籍分享
- 经验分享
- 尾声
第一类问题:
自我介绍(心理学首因效应告诉我们第一印象非常重要)。自我介绍最重要的是能够 在面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是 直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。
其实 面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您 好,我叫XXX,很高兴能获得这次面试机会,今天来面试是想证明自己是最合适的人选,另一个方 面是获得您的认可,结合我过去的工作和学习经历,我自信我能符合咱们公司的认可,接下来您看 是我继续介绍我做过的项目,还是您问您关心的问题?”
第二类问题:
项目介绍(项目经验直接决定一个人能否胜任一份工作,企业更应该看重一个人解决问题的思路和具体能力)。 项目介绍部分最重要的思路是应该先整体后局部,介绍整体的时候要有量化的数据(从项目度量的五大维度:规模,包括项目代码规模,需求规模、用例规模,工作量进度,质量和成本),然后是整体的测试流程,然后再是角色与职责,接下来是项目中自己的特色,比如做得最好的是、遇到最大的困难时、最差的是最后是心得体会
第三类问题:
数据库方面知识最基本的要求是数据库记录的增删改查(insert、 delete update、 select) ,表结构的增删改查(create drop alterdescribe 存储过程、触 器等
第四类问题:
linux操作系统相关。最基本的目标是熟悉常见的50个命令,比如find命令(- name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环 境。比如LAMP环境搭建。
第五类问题:
缺陷相关知识。最基本的是缺陷跟踪的流程(流程的基本要素),整体的流程,最好 能在纸上给面试官画出来(尤其是男面试官,从男人好色的角度来看,写得很清楚很重要),缺陷 单的属性,至少能列出20个属性,每个属性的意义,如何描述好缺陷单,缺陷单描述的5C原则,比 如缺陷重现步骤应该complete。
如何描述一个你认为的最经典的Bug单。
第六类问题:
用例相关。最基本的包括用例的格式要素,用例设计工程方法论,每个方法要求(方 法的背景,操作步骤,优缺点、适应范围,与其他用例方法如何配合),在项目中如何利用测试用 例设计工程方法。如何评价、评审测试用例,评审从哪些维度?要设计好测试用例需要哪些方面的 知识结构,比如技术、业务、方法。
第七类问题:
软件测试流程。系统测试相关规范和标准的流程:熟悉产品/项目,需求评审,测试需 求,测试计划,测试方案,测试用例,预测试,第一轮正式测试、第二轮回归测试、第三轮测试, 测试报告,测试总结,测试指南。
第八类问题:
网络相关。最基本的网络基础知识,比如TCP/IP协议。
第九类问题:
测试工具。包括三个大的类型,第一类是性能测试工具、自动化测试工具、测试管理 类工具。最起码的要求是熟悉工具的使用。
第十类问题:
给你一个软件,比如QQ、QQ斗地主,你如何去测试。这类问题基本的思路是,从软 件质量模型、测试工具、测试方法、测试流程、探索式测试等角度先宏观解决,然后再具体微观讲 解用例如何设计等。
第十一类问题:
一个优秀/卓越的软件测试工程师应该具备哪些能力与素质,素质方面包括沟通、五 心工程师、追求完美等。 第十二类问题,最后一个问题,面试官一般会问你还有什么想问或者想要了解的。
总体上来说最重 要的是留下一个好的近因效应,就好比相亲的时候,分手离开的时候,留下好的最后的印象,基本 的思路应该分三种情况,第一种是面试官对你满意,自己也感觉不错的情况下,先表示感谢,然后 积极主动的问题,比如,非常感谢您给的这次机会,但是我还是想问,如果我有下一轮面试,我想 知道知道是什么时候,我应该再做哪些方面的准备。
大厂面试题分享
京东一面 45min
1、自我介绍
2、挖项目
负责的工作,怎么实现?
是做的脱敏工作吗?
效果怎么样?
3、java
基本类型有哪些?(八种 char boolean byte short int long float double)
int 和 integer 有什么区别?(1、integer是int的包装类,int是基本数据类型 2、Integer必须实例化使用 3、Integer存的是一个指针指向一个对象 4、初始化时 int默认值是0,Integer是 null * 空指针)
4、数据库
Mysql是什么数据库?(关系型数据库)
mysql和mongoDB有什么区别?
distinct 、order by、count的用法
count(*) 和 count(1) 的区别
5、计网
京东app点击一个服务所经历的过程?(访问一个服务的过程)
6、测试
为什么做测试开发?
学习了测开的哪些知识?
如果有25个关键词需要关联查询,怎么测试?
写代码过程中有异常(空指针等错误),如何抛出异常?
你为京东app的优缺点?
面试官建议:
1、多去了解软件测试的必备知识,而非教科书式回答,要理解透了再去形容
2、可以多去学一些消息中间件MQ、 JMQ、 redis、队列内存等知识
二面:25min
1、实习过吗?
做了什么?
举个例子讲一下
2、测试
怎么理解测试开发?
你认为你有哪些品质做测试开发?
白盒测试和单元测试有什么区别?
3、网络
为什么要分层?
路由算法有哪些?
IP报文头部内容?
4、java
集合有哪些?( java超常见的问题,每个公司必问)
List是否线程安全?
HR电话面:13min
1、自我介绍
2、项目
做了什么
和项目成员如何沟通
3、工作内容
干了哪些事
4、是否了解部门的测开工作
5、其他offer情况
6、为什么不做算法/开发
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取