测试开发面试实战总结

    为了早日走上测开之路,最近面试了多家互联网公司,也顺利的拿到了不错的offer!下面就将面试过程中遇到的题目和自己的一些感悟分享给大家,希望对各位能有帮助。

面试前的准备:

1.准备简历:
模板尽量简洁明了,联系方式要清晰,项目经历最好按照时间倒叙阐述,描述清自己在项目中承担的职责,最好附上自己的作品链接(github地址,博客地址等)

2.自我介绍:
众所周知这是面试必考的,建议提前写好并背下来。一般控制在2,3分钟即可,主要内容就是突出自己亮点,优势不明显的尽量不提,大体涉及教育背景、工作经历、测试经验、发展方向等,逻辑要清晰,有条理;

3.基础知识准备:
这是最根本的,如果不知道准备哪些,跟着吴老学一年(全方位立体指导);

4.投递简历:
推荐boss直聘,个人觉得很好用,提前有互动。当然在群里也会有很多的内推职位。

5.面试心态:
将面试当成一个交流学习的过程,心急吃不了热豆腐,pass掉很正常,offer总会有的;

面试问题类型:

1.个人基本信息

前文提到过的自我介绍。可根据实际情况,将自我介绍幽默的描述出来。一方面是放松自己,缓解气氛,避免紧张;另一方面也能给面试官留下个好印象。注意:巧妙掌握力度

2.项目描述

一般都会让详细阐述在当前公司所负责的项目,在团队中扮演的角色;意在考察对项目的熟悉程度(建议提前梳理,最好是从宏观和微观角度上整体把控)。

这里也会引申出测试开发团队规模、公司测试流程、工作过程中遇到的问题及解决方案、如何保证项目质量、评价与你合作的开发产品团队、当前领导对你的影响、在工作中是否会很强势、举例子说明个人在评审过程中的参与度等问题。

3.测试理论相关

a.根据场景设计测试用例:如测试黑板、测试分享功能等;
b.如何测试接口,注意哪些方面,可从业务功能、逻辑,参数合法性,容错处理,数据校验,与数据库的交互,性能方面,安全性等方面阐述;
c.在对接口设计测试用例时,如何保证测试粒度;意在考察测试用例方法,如等价类、边界值、最重要一点要表述出来即正交实验设计;
d.在测试中,遇到点击button无响应,猜测会是哪些问题导致的;
e.例举使用过的bug工具,bug等级分类;

4.自动化测试框架

建议最好结合公司实际测试工作中,实践搭建web端、接口端、移动端的自动化测试框架,
这也是面试过程中的一个亮点;

详细阐述框架设计思路,重点是解决了什么问题,有哪些好处;有哪些还需要待完善的地方;web自动化中都有哪些定位方式;遇到过哪些问题,怎么解决的;有没有持续集成的思路等;

结合实际搭建的框架考察了

a.    加解密(MD5RSA);
b.    如何判断测试用例执行成功;
c.    如何处理接口数据依赖;
d.    python读写excel用到的模块和方法;
e.    关键字驱动和数据驱动的区别;
f.    如何保证测试数据不受影响(初始化准备和测试完毕后的环境清理);
g.    selenium的原理描述;

5.数据库相关

a.    查询出user表中以张姓开头的所有name;
b.    Windows/linux环境下搭建mysql的流程;
c.    新建用户并赋予权限、取消权限;
d.    如何查看慢sql;
e.    Python操作mysql数据库(pymysql),连接数据库,获取游标,执行sql,关闭游标,关闭数据库连接;
f.    给已存在的表新增字段,修改字段类型,修改字段名称;
g.    添加、删除索引;
h.    分组查询,例如一张表中有三个字段,分别为学生姓名、学科、成绩;查询出双科成绩在90分以上的学生姓名
i.    数据库最常见的引擎;myisam与innodb两者有什么区别;对redismongodb的熟悉程度,redis中的数据类型,mongodb通常用来存储什么数据;

6.Linux相关

a.    例举常用的linux命令,最起码能说出20、30个;
b.    实时查看日志 tail -f filename;
c.    查看某文件中指定字符串所在的行:grep string filename;
d.    查看端口是否被占用:netstat -anp|grep 端口号;
e.    查看某个进程占用的cpu和内存:ps -aux | grep 进程名/进程ID;
f.    查看内存、CPU、IO:freetopvmstat;
g.    远程连接服务器:ssh
h.    tail 、cat 、more、less、head的区别;
i.    打印出所有的进程id:awk;
j.    Shell脚本实现定时清理测试环境的日志;

7.性能相关

虽压测实践经验尚浅,但面试中理论知识问到了不少,几乎都是围绕下面话题来的

a.    性能测试方案设计;
b.    性能测试关注的指标;
c.    性能调优可从哪些方面下手;

弄清这三道问题,再去实践也是有思路的。

8.协议相关

a.    tcp和udp的区别;
b.    http状态码的分类,会问到具体的403,502,304等的含义;
c.    Cookie和Session的区别;
d.    http和https的抓包;
e.    get和post的区别;
f.    基于rpc协议的dubbo分布式框架,对dubbo的了解以及dubbo接口的测试;

9.架构相关

描述当前公司的整体架构体系;
建议大家找公司的开发或架构师多问问,结合公司的实际情况阐述;当然,吴老的测试开发课程中也会有详细介绍,适用于大部分互联网公司;

10.编程题

a.    将[1,2,3,4]转化为[1,4,9,16];
b.    找字典中最里层的value,value只有一层,如{key:{zhang:{li:{sun:gang}}}};递归实现
c.    对比两个json串,如果key相同则输出key,如果key不同则输出key和value;
d.    输出日志文件中不重复的code码,(读文件,正则匹配,添加在列表中,set去重);
e.    质数判断;
f.    找到相邻之和最大的数字组合之和,可能是相邻2位,也可以能是相邻多位,如[-2,1,-3,5,7,-1,4];
g.    斐波那契数列:分别用递归实现与非递归实现;
h.    shellpythonmysql三种方式处理下面一个场景:在日志文件中,找出时间点在15点和17点之间的,指定端口并指定访问来源的,出现次数最多的ip地址,打印前10个;
i.    二分法查找;
j.    找出凶手;光荣之路公众号之前分享过这道面试题;
k.    比较字符串数字,如”123″,”321″ 返回True, “1234””2342″返回False’;
l.    排序:冒泡排序、插入排序、选择排序、快速排序(任选其一);
m.    找出一个字符串中重复出现次数最高的元素位置;(可能是一个,也可能是多个)

11.其他问题

a.    因为是在职状态出去面试的,所以必问到跳槽原因,结合自己实际情况来回答;
b.    职业生涯规划;
c.    工作中能接受的测试开发比率,对测试开发的理解及认为测试开发在工作中需要做哪些事情;
d.    对加班的态度,怎么看待996;
e.    面对产品开发压缩测试,如何提高测试效率?
f.    Git相关命令;
g.    Mock数据,浅拷贝与深拷贝的区别;
h.    对持续集成的理解;
i.    交给你一个项目,你如何安排?考察测试计划、测试方案的指定;

面试感悟

遥想起两年前的跳槽,感觉面试没有现在这么复杂,基本上就是考察测试理论知识、业务经验、数据库相关和linux命令;现在更偏向于代码能力,自动化和性能相关。这也给我们提了个醒,测试行业的门槛越来越高,越来越规范,不仅要会测试,还要求能开发。这个行业更新迭代很快,想要在这个行业立足,就要与时俱进,通过不断的学习来提升自己!

[本文采集自微信公众号”光荣之路”,微信搜索直达]

       

本站文章如未特殊注明,均为原创,转载请注明出处: 未必平凡  本文链接地址: https://vv2014.com/416.html