结束秋招,回馈牛客,测试开发岗面经
百度凤巢——测试开发工程师面经
一面
1. 自我介绍以及项目:项目主要工作内容,自己负责的具体工作,遇到什么问题,遇到问题如何解决
2. C/C++:对C++三大特性的理解,C++的多态是如何实现的,如果父类没有定义虚析构函数,会发生什么情况,指针和引用的区别,sizeof对指针和引用计算的结果
3. 数据结构:给定一个入栈顺序6,5,4,3,2,1,给出四个选项,分析哪个出栈顺序是不可能的,为什么
4. 算法:说一下选择排序的原理,时间复杂度是多少,空间复杂度是多少,为什么?
5. 数据库:给定一个表,表中含有学号以及成绩,要求查找平均成绩大于60的所有学生,多表关联查询
6. 脚本语言:Python语言中,列表、元祖、字典、数组的区别,给定一个列表,删去其中重复的元素,如[1,2,2,3,4,5,5,6],结果为[1,2,3,4,5,6]
7. Linux:Vim命令,替换字符串
8. 代码优化:如果有一个函数需要多次重复调用,需要如何优化(宏定义、内联函数)
9. 测试:对测试的理解,测试的基本流程,给你一个百度搜索的主页,要如何进行测试
二面
1. 自我介绍以及项目
2. 编程:给定一个字符串,如何判断是否是有效的ipv4,针对所写代码设计测试用例
三面
1. 自我介绍以及项目,简历上的每一个地方都问了
2. 如何测试百度云
字节跳动——测试开发工程师
1. tcp/ip三次握手、四次挥手以及期间各个状态
2. 如何理解c++的面向对象(继承、多态、封装)
3. 虚函数实现机制
4. 手撕代码:实现一个栈的数据结构
5. C++中垃圾回收机制,内存管理
6. 共享单车app如何设计测试用例
7. 手撕代码:带有随机指针的复杂链表复制
8. 手撕代码:如何模拟一副扑克牌的洗牌过程
9. 手撕代码:计算一个64位无符号整型数中二进制位为1的个数
10. 一个m*n的矩阵,从左上角出发,走到右下角终止,每次只能向右或向下前进,求一共有多少种走法。
11. 从在浏览器输入url开始,到显示出相应的页面的整个流程是怎样的,数据包是如何传递的。
爱奇艺——测试开发工程师
1. tcp三次握手的过程
2. 二叉树的层次遍历
3. 简单介绍sql注入,如何防御sql注入,业界目前的主流防御方法
4. 近期的安全大事件
5. 有一个大文件,100万个数,如何实现排序(使用位)
6. 为什么选择测试,不选择开发
7. Php中有一个函数strpos(str1,str2),如何设计测试用例
8. 有一个大文件,里面含有一些列搜索关键词,如何判断一个给定的关词是否包含在内(使用哈希表),使用什么哈希函数,是否存在冲突,如何解决冲突
在上述的基础上,数据中还包含ip,时间段,如何根据ip查找相应关键词以及时间段,如何根据关键词查找某个时间段内的所有ip
9. 对测试开发工作的理解
10. 是否有遇到过什么挫折,如何克服和解决的
11. 一句话简述一下你的专业
12. 简述一下个人的优势和不足
金山云——测试开发工程师
1. 有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?
4. new,malloc的区别
5. 写一个排序算法
6. 为什么选择测试
7. 虚函数表
8. 七层协议并举例
9. 生产者、消费者问题、银行家算法
10. 单例模式,工厂模式,写单例模式(多种)
依图科技——测试开发岗
1. 给你12个球,有一个重量不一样(可能轻,可能重),给你一个天平,最多称三次,如何称,找到重量不一样的球
2. 对测试的理解
3. 支付宝中的手机充值功能如何进行测试
4. 编程题,如何判断一个数是否是2的N次幂
((2^N-1)&2^N==0)