面试 | 百度测试开发岗位面试题目回顾

本文为霍格沃兹测试学院学员 JQY 同学面试百度高级测试开发工程师岗位的经历汇总,自带二次元呆萌搞笑风格,供金三银四跳槽季的各位同学参考!学院最近也在汇总优质名企内推 Offer 信息,敬请关注^_^

百度测试开发面试题整理

一面题目

1、自我介绍一下
2、说一下你们工作中的测试流程
3、数据库熟吗?用过哪些数据库?索引会吗?事务了解吗?写一个 SQL 查询语句:给一个字段,对其进行从大到小排序,取前十行。
4、用她的手机给我看了下百度贴吧的发帖功能的界面,给我张纸,让我写出测试点(只需要考虑内容,表情,添加图片,@功能),写完讲一遍逻辑。
5、问会什么语言?现场写两段代码,如下:
A、有两个有序链表,将他们组成一个有序链表。
B、给一个字符串,字符串里有 (){}[]“”这六个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。
6、Linux 熟吗?一般都用到哪些命令?

二面题目

1、问上一份工作的公司是做什么的?离职原因?自己的职业发展规划?
2、问简历上的第一个项目的详细情况,包括测试用例怎么写?怎么判断测试通过?项目的原理?
3、问第一个项目的测试框架的搭建、怎么用数据驱动测试?等等(问的超级超级详细,问了一个多小时...)
4、对接口测试这块熟不熟?是怎么测的?用的什么工具?为什么用 HTTPClient 类库,觉得它有什么缺点?用 Fiddler 主要做什么?
5、现场写一个代码,有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。(要考虑数据的长度问题)
6、如果是做功能测试,能接受吗? 
7、对工作上的压力怎么看待?
8、性能测试用过吗?什么情况下用的?主要测哪些方面?

面试经历详情

在招聘网站投递简历后,收到面试通知信息(如下图,为保护个人隐私,面试岗位、地点、时间等隐去)。虽然写的是高级测试开发工程师,但是面试官说他们部门的测试不一定都要写框架。

%title插图%num

面试过程包括了一面和二面,时间从下午 3 点到 6 点结束(都没给我杯水喝,讲的口干舌燥喉咙冒烟),面试地点在一个类似交谈区的房间,里面很多透明小圆桌。一面官是个瘦瘦小小干练的女生,二面官是个说话很温柔的魁梧壮汉。他俩人都很 Nice,面试过程比较轻松,如果遇到不会的,直接说不会也没关系(也可能有关系)。

一面题目

1、自我介绍一下 2、说一下你们工作中的测试流程3、数据库熟吗?用过哪些数据库?索引会吗?事务了解吗?写一个 SQL 查询语句:给一个字段,对其进行从大到小排序,取前十行。

我平时的工作中会协助提高数据库的查询效率,会给数据 id 等创建索引;
事务开发那边用的比较多,然后我举了 ATM 机取款的例子。
SQL 语句如下 selectfieldfromtable orderbyfield desc limit10

4、用她的手机给我看了下百度贴吧的发帖功能的界面,给我张纸,让我写出测试点(只需要考虑内容,表情,添加图片,@功能),写完讲一遍逻辑。

我从题面的四方面考虑的:

内容: 

* 内容为空,能否发帖成功,看是否有提示信息;
* 首字如果为空格,能否忽略首字空格;
* 内容的长度如果超出了,是否有提示或者说是不允许继续输入;
* 标题的长度限制若超出会怎么样;
* 标题若为空,将显示什么?若显示内容的第一句话,显示多少字符;
* 内容的输入是否支持英文中文、以及像日文、俄语等其他语言,是否支持颜文字;
* 内容是否会自动屏蔽反动色情暴力等敏感词
* 默认显示的“请输入内容”,在光标聚焦后,能否清空;
* 是否支持选中、全选、复制、剪切、粘贴;
* 点击左上角的“×”退出,如果有内容能否自动保存到草稿箱,没有输入内容是否有提示;
* 在光标所在位置输入内容,光标位置有无异常跳转;
* 修改内容时,光标的灵敏度是否足够;

表情

* 显示时以“/大笑”,还是直接显示的表情图案本身
* 表情是否否支持搜狗输入法中的表情;
* 表情的位置如果在内容或者标题的首位,能否正常显示
* 表情所占的长度是几位

图片

* 图片的大小限制、数量限制;
* 图片是否会被压缩;
* 图片能否自动检测到色情暴力反动图片;
* 点击图片按钮时,默认选择手机哪个文件夹里的图片;
* 若手机里的图片设置了隐藏,添加图片时,能否看到;
* 是否支持选中、剪切、复制、粘贴

@功能

* @时显示的效果,包括颜色,是否高亮等;
* 好友列表的来源?是哪种好友,互相关注的,还是仅自己关注的都能显示在选择列表里;
* 好友列表的排序规则是什么;
* 在好友列表进行好友搜索时,是否支持模糊查询,是否支持%_等通配符
* @好友时的数量限制;
* 除了从好友列表中进行好友的选择,是否能支持手写,例如手动输入“@张山”;
* @完好友后,界面上显示的“@李四”,此时能否进行编辑,例如变成“李四光”,或者删除的时候,能否全部删除;
* @到的好友,能否收到被@的消息

然后我讲完跟面试官说,我能想到的就这些,您有什么补充的吗?
然后她又补充了 HTML 安全注入,以及性能测试的并发用户测试。

5、问会什么语言?现场写两段代码,如下:

 A、有两个有序链表,将他们组成一个有序链表。  B、给一个字符串,字符串里有 (){}[]“”这几个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。

一开始面试官是让我写 A 代码的,此处我很虚,因为很久很久没用过链表。。。我问可以用数组来代替吗?她说这两个很像,数组取值是通过 index,链表是通过指针......,然后我很坦白跟她说,链表平时用的少,不知道怎么写......她说好吧,那我们换一题......然后出了B题,这道题我答的比较好,哈哈哈。

思路如下:
对原始字符创 str1 进行遍历,获取到这些符号,将它们构成一个新的字符串 str1(stringbuilder 类型),然后进行倒序操作(reverse方法),判断 str1 是不是回文字符即可。

接着让我根据这个算法写测试用例,注意还有要考虑没有这些符号但有其他字符的情况,以及字符串为空的情况。最好用等价类法,因为细分的话可以写的测试用例太多了,

6、Linux 熟吗?一般都用到哪些命令?

二面题目

1、问我上一份工作的公司是做什么的?离职原因?自己的职业发展?

2、问简历上的第一个项目的详细情况, 包括测试用例怎么写?怎么判断测试通过?项目的原理?

3、问第一个项目的测试框架的搭建、怎么用数据驱动测试等等等等,问的超级超级详细,问了一个多小时哭。

4、对接口测试这块熟不熟?是怎么测的,用的什么工具?为什么用 HttpClient 类库,觉得它有什么缺点?用fiddler主要做什么?

5、现场写一个代码,有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。(要考虑数据的长度问题)

拿到这个题我就想这不很简单嘛…很快就写完了…先判断这两个字符串是不是为空,若为空便返回 -1;接着判断这两个字符能不能转成 int 类型,若不能,则返回 -1,若能,则转成 int 类型进行相加并返回。

然后面试官说,如果数据特别大怎么办。。然后我刷刷把 int 改成了 long 类型,面试官看到说,long 类型也是长度限制的…….我想了会弱弱的问面试官,那用什么类型呢?对不起,这个我不清楚还有什么类型可以实现……然后面试官说,其实我出道题的意思呢,就是想让写个算法解决大数据相加的问题,所以输入的都是字符串类型,你再想想……

然后面试官就带着一抹迷之微笑在我边上用电脑办公了…我就绞尽脑汁想啊想,总算涂涂改改写出来了…(其实现在想也不难,但是当时的情景紧张啦各种因素脑袋短路你懂得…)

思路如下 : 先判断两个字符串的长度,获取长度小的那个字符串的长度,例如一个字符串 str1 是“12345”,长度为5,另一个 str2 是“922”,长度为3,所以取3。

对两个字符串进行倒序遍历,对长度相等的那一部分进行相加,即str1中的“345”+str2中的“922”(遍历相加,即5+2,4+2,3+9,并考虑进位的情况),如果有进位,则记录下来,此时加完后得到的是“267”,并且有一个进位1

将第二步相加的结果跟 str1 中的“12”进行拼接。正常拼接是“12”+“267”,但是第二步中还有一个进位1,那就得“12”+1,然后再拼接上上“267”,得到结果即为“13267”

我把代码写完给面试官看并讲了下我的思路…然后面试官问你在做拼接前如果有进位怎么办?(当时没有考虑到)然后我补救了一下,面试官又问你这个程序还有什么问题吗?我想了会说,不好意思我没有发现新的问题了,然后面试官沉默了沉默了沉默……气氛变得相当诡异,我就问他还有什么地方需要注意的吗,求指教!…他说基本没有了…简直要把我吓坏了…然后又开始问下一题

6、对工作上的压力怎么看待?

7、如果是做功能测试能接受吗?

8、性能测试用过吗?什么情况下用的?主要测哪些方面?

总结

面试完最大的感受,就是在面试过程中暴露出自己的很多技能漏洞,需要补充夯实基础。

其实这些互联网一线大公司问的问题都差不多,也不会太难。

基本都是测试用例设计,数据库 SQL 语句,然后是一些算法要求用熟悉的编程语言实现,还有就是 Linux 常用命令,adb 常用命令,这些技能全都是霍格沃兹测试学院《测试开发从入门到高级实战》课程里老师讲过得,可惜当时没记住,或之后没有继续用下去,还是得再跟着思寒老师好好学习。(end)