又到了跳槽季,最近经历了很多家公司的面试,职位有测试开发,也有普通的测试工程师,有成功有失败,最后我发现一些面试问题基本大同小异,因此觉得有必要跟大家分享一下,说一点自己的心得体会,欢迎大家指正和探讨~
1.自我介绍
这是一上来就会问的第一问题,也是一个展现自己优势,最能包装自己的部分,无论经过了几面,面对每一个面试官都得介绍一遍,每一次都要认真对哒,千万不要有倦怠的态度,因为你不知道你面前坐的是哪个高级大领导,直接决定你的薪资和去留。
对于如何回答这个问题,我的经验是,简单介绍下项目,重点在负责的工作是什么,在工作中运用了什么技术,学习到了什么,总结了什么经验。除此以外,还要把你自己学习的一些技术也说进去,哪怕你工作中没有用到,但只要你会的,都展现出来,当然前提是这个东西你确实自己研究过,禁得起拷问的才行。
此外,我的心得是从第一份工作开始说起,这样可以有一个能力从低到高的过程,表明自己是一个学习能力强,有上进心的人;而且在说到切换到下个公司的过程中,可以简单说下理由,表明你对未来的职业发展还是有自己的想法和追求的。
2.网络相关问题
网络相关的问题是每一家公司必问的,具体包含以下:
1.访问一个完整http请求会经历哪些问题
2.https和http请求的区别
3.五层协议有什么,每层的作用
4.http有哪些请求方式,get和post请求有什么区别
5.http请求和http响应包含哪些内容
6.TCP的三次握手过程、四次挥手过程
7.Socket编程了解么,应用在哪些地方
3.实际项目相关
1)你们的测试流程是什么
这个问题必问,必问,必问,如果所在公司比较小,基本没什么严格流程的话千万不要实话实说,要回答完整的流程,下面我来抛砖引玉一下,希望大家多多指正~
“需求评审->确定项目排期-,确定测试方案(功能测试、接口测试、性能测试、兼容测试等)>设计测试用例->用例评审->准备测试环境(准备测试机,配置好测试数据等)->开发自测通过(或简单功能冒烟,保证流程跑通)->正式提测,新功能测试,提出bug->开发改完bug后回归验证->遗留问题待产品评估方案->新功能封板后开始全面测试->开发改完bug后再次回归验证->重点功能的冒烟->封板上线->线上监控”
2)目前你们项目运用的架构是什么
一般这个问题指的都是服务端的架构,这个时候就要跟服务端开发搞好关系了,让他给你系统讲解一下,一般比较正式的公司针对架构都会有详细的原型图。
3)工作效率如何提高,有哪些工作成果
我感觉这个问题其实可以多展现自己能够在工作中懂得思考的一面,而不是只知道机械的干活,我列出我的回答,给大家提供一点思路。
“平时自己经常会进行总结,如编写测试用例时,有些其实测试点都是通用的,可以总结出功能测试的框架
还有例如,很多问题都是可以在软件开发之前规避的,自己根据经验总结了bug预防体系,在项目中进行了分享
还能够借助各种工具来提高效率,把一些重复性的工作来用自动化工具来完成,比如编写一些CPU监控、流量监控等小工具”
4)如何进行团队合作
“在整个测试过程中要多问,多学习:
在需求评审阶段,就要多听开发人员讨论的各种逻辑实现,只有了解这个内部的实现逻辑才能更好的去设计测试点;
在用例评审阶段,也要叫上开发人员一起,争取把一些之前需求评审没有想到的问题,在开发时尽量规避掉;
在开发解决bug后,对于一些没有太多规律,比较复杂的bug,要主动去找开发人员询问,问题原因是什么呢,怎么解决的,以便更好的回归验证。”
4.用例设计
每个公司必问的一道题,现在一些大公司已经不会问你测试方法有哪些这种理论问题了,都是直接让你设计一个具体功能的用例,从实际来看你对这些理论的运用。
我觉得首先要确定好面试官跟你描述的功能是什么,主要包括哪些方面,确定好范围,然后再开始设计;其次一定要自己多总结一些通用的功能测试框架,背下来,回答时套用在不同的功能上;而且不要只关注功能方面,接口、性能、兼容、安全等都要考虑全面,下面是具体我被问到的一些问题
1.测试朋友圈发送功能
2.测试微信的发送功能
3.测试输入框功能
4.测试数据加载过程
5.测试注册登录和验证码功能
6.测试视频播放
7.测试直播中的送礼物
5.算法
-------------------------------------------------------
这也是一些公司非常爱问的一个问题,并且现在已经不止要求能写出算法,还要求时间复杂度最小,找出最优方式,这就需要我们针对各种算法思考多种解决办法;同时需要注意算法中对异常情况的处理
1.排序(冒泡、堆排序、快速排序等)
2.二分查找
3.判断素数
4.单链表反转
5.判断是否为回文数(aabb格式)
6.十进制转换成二进制
7.判断IP的有效性
8.合并两个有序数组,生成一个有序的大数组,要求时间复杂度最低
当然除了上面这些基础的算法,有的面试官还会临时给个有规律的数据,让你写出一个算法或给出思路,考验下逻辑思维能力,当然如果不会也不要气馁,有的面试官会给你提供思路,引导你
6.Linux、mysql相关问题
(难易程度跟公司具体要求有关)
1)常用命令有哪些
2)ps作用是什么
3)查看内存的命令有哪些
4)简历中写到的一些命令
5)数据库的增删改查
6)数据库的关联查询
7)数据库建立索引的优点,如何搜索数据的
7.Java/Python/shell开发语言
这个问题也是被问到的概率很高,主要是看你简历中写了哪些语言,以下问题都是关于Java/shell/python的
1)./和sh执行shell脚本的区别
2)shell脚本中的第一行的作用是什么
3)怎么用shell脚本取出日志中倒数第二列的内容
4)lamda函数是什么
5)Python中的内存管理
6)字典、列表、元祖的区别,在内存中都是如何存储的,想要搜索数据时,各自的时间复杂度是多少
7)python怎么安装包
8)re模块中的match和search的区别
9)Java中的collection
10)Java中常用的一些类库
11)Java中怎么开启线程
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8052),我们将立即处理。
推荐课程:
透过招聘需求看软件测试职业发展
迷迷糊糊进了软件测试大门,但是不知从何学起?手工测试做了好几年,下一步到底该怎么提升?技术岗和管理岗,到底哪个会走的更远?互联网寒冬,你的岗位是否还保得住?如果你有这些职业发展困惑,可以来听这次的课程。
课程大纲 1、从地域、行业、测试工程师相关岗位来逐一分析人才市场需求;
2、对技术类岗位和管理类岗位进行技能分析,提升哪些技能最有用;
3、梳理规划职业发展路线的思路,对未来有更好的规划和准备
了解更多课程内容及课程安排,可咨询QQ 2852509883 或致电客服 400-821-0951(工作日9:00-17:30)
|