面试记录-测开
-
联想云
二面:
- 自我介绍
- C++面向对象,怎么解释面向对象
- C++内存管理
- const修饰指针时的含义
- 算法题1:找到字符串中第一个出现重复的字符。
//map<char,int> void firstrepeatchar(string s) { int len = s.length(); //字符串长度 map<char, int> str; //char:字符 int:字符出现的次数,map不初始化时,value为int型时,默认为0 for (int i = 0; i < len; i++) { str[s[i]]++; //字符出现的次数,s[i]为键,str[s[i]]++表示s[i]出现的次数 } for (int i = 0; i < len; i++) { if (str[s[i]] > 1) { cout << s[i] << endl; break; //找到一个重复字符,跳出循环。 } } }
第2种方法
//遍历字符串,每次遍历查找字符串中是否有与该遍历值相等的值,如果有,返回索引。 string str; int len; //字符串长度 int index; //索引 while (getline(cin,str)) { len = str.length(); for (int i = 0; i < len; i++) { index = str.find(str[i], i + 1); //与str[i]相等的第一个字符的索引 if (index != str.npos) //表示索引存在 { cout << str[i] << endl; //i = len; break; } } }
- 算法题2:一个整形数组,一个整数A,使得大于A的在数组前面,小于A的在数组后面。
/* 要求时间复杂度为O(n) */ //i,j的值初始为0,从前往后遍历数组j++,如果当前的值小于0的话,就将其存储在arr[i]中,然后i++,如果大于0的话,则i不变. //也就是j代表从数组中找到的小于0的数,与前面的大于0的数交换(i标记大于0的数) void Divide(int array[],int n) { int i = 0,j = 0; int temp = 0; for(j = 0;j < n;j++) { if(array[j] <= 0) //将小于0的数据存在array[i]起的数组里,i从0开始 { temp = array[j];//j array[j]= array[i]; array[i]= temp; i++; } } }
- 如何测试刚刚的算法2.
有效性、效率、复杂性、舒适性等 1、首先针对功能进行测试,输入的数组中的数全大于A或者全小于A; 2、针对性能测试,如果输入一个长度为10的数组,或者长度为10万的数组,对于计算时间的要求。
- 在一个团队中,谁是最该对产品质量负责的人。-->开发人员
质量保证不仅仅是测试部门的责任,开发人员不能把代码丢给他们就算了。团队中的每一个成员都需要对产品质量负责任。如果非要选一个最的话,我觉得是开发人员,开发人员是直接保证代码质量的第一人,就是如果开发人员开发的是50分的产品,测试人员就在50的基础上做测试,那如果开发人员开发的是90分的产品,那测试人员就是在90的基础上做测试。
- 项目,所用的加密算法。单点故障问题。
常用的加密算法有哪些: 1、对称加密算法:DES(DES 加密算法是一种 分组密码)、3DES、AES(对称分组密码体制) 2、非对称加密算法:RSA(两个素数相乘)、ECC、 3、哈希算法:SHA-1、MD5 4、数字签名:
- 你觉得C++和python有什么区别
1.Python 与 C ++ 重要的区别之一是内存管理。Python 提供了被称为「垃圾收集器」的自动内存管理机制,不允许直接进行内存处理操作。但在 C++ 里则没有这样的机制,并且所有内存管理操作都需要自行处理。 2.C++为编译型语言;python为解释型的脚本语言。编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言。 3.C++效率高,编程难;python效率低,编程简单。同样的功能,或许python可以很快的写出代码,但运行所需的时间需要成倍于C++。
- 什么是面向对象
1、面向过程-步骤化 面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可。 2、面向对象-行为化 面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成类(类实例化后才是对象),创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。
- C++内存泄漏的原因
1.new创建出来的对象没有及时的delete掉,导致了内存的泄露; 2.delete掉一个指向一个对象的void*类型的指针,导致没有调用到对象的析构函数,析构的所有清理工作都没有去执行从而导致内存的泄露; 3.new创建了一组对象数组,内存回收的时候却只调用了delete而非delete []来处理,导致只有对象数组的第一个对象的析构函数得到执行并回收了内存占用,数组的其他对象所占内存得不到回收,导致内存泄露;
- 加油
-
度小满
一面 40分钟
- 自我介绍
- 数据库的索引有哪些,底层结构是啥
- TCP的三次握手,为啥是3次
- 排序,快排的复杂度,原理,最坏的复杂度
- http与https的区别
- 有哪些加密算法,什么是对称加密和非对称加密,分别什么时候用
- 一道sql
- 又一道sql
积分最多的人
select user.name,t.grade_sum from (select user_id,sum(grade_num) as grade_sum from grade_info group by user_id order by grade_sum desc limit 1) t join user on t.user_id=user.id
- 代码题:判断链表是否有环
- 代码题:跳台阶问题
- 反问
二面 50分钟
- 自我介绍
- 实习
- 你觉得实习与你想的测开一样吗
- 讲一个你的项目
- 为什么用共享内存,其他的进程通信方式有哪些
- 说一个转账的测试用例,对于服务端应该怎么测
1.转账金额大于、等于、小于当前余额 2.有转账限额时,在转账超额时是否占用限额 3.金额字段校验:非数字、sql相关字符、负数、边界值与数据库设计长度,为空是否报错,必须输项校验和 4.正常发起一笔转账请求,检查点 5.取消转账 6.重新发起转账请求 7.转账密码错误/余额不足 8.转账成功,用户的余额对应减少
- 代码:用两个队列实现栈
- 讲一下思路,题目要求做什么,栈和队列的区别
- 如何测试刚刚这个代码
- 反问
三面 45min
- 自我介绍
- 实习工作
- 为什么想做测开(1、测开有意义有成就感2、)
- 遇到的困难
- 写还款日的测试用例
- 写一个思维逻辑的题
- 反问
-
转转
一面 45min
- 自我介绍
- 介绍一下实习
- 你觉得实习对于你来说的意义
- 你们整个项目的流程
- 那你觉得在这个流程中有什么你觉得可以改进或者不合理的地方吗
- 那你觉得应该如何改进
- 你实习做的移动端测试兼容性部分是怎么做的
- 对于京东搜索功能设计测试用例
- 那如果我们搜索显示结果是空白,你觉得会有哪些问题,以流程的方式说一下。
- 对于那种数据结构比较熟悉
- 对于排序算法,各自适用于哪些场景中
二面 35min
- 自我介绍
- 介绍一下实习做的一个工作
- 测试的流程
- 对于java语言的了解
- 你实习中有遇到什么困难吗
- 你觉得应该怎么解决这个困难
- 反问:测开重要的品质:1、主动 2、代码 3、责任心
三面
- 自我介绍
- 为什么想做测试相关行业
- 实习做了什么,有没有遇到什么困难
- 用三个词来形容自己
- 你身边的人都怎么形容你
- 你的缺点
- 最开心的一件事
- 最困难的一件事
- 还记不记的之前面试的内容,有啥问题是你觉得当时回答的不好,现在可以回答的更好的。
- 反问
-
融360
一面 50min
小姐姐超级美
- 自我介绍
- 你是班长,在工作中有遇到什么困难吗
- 如果你跟开发产品对某一问题有歧义怎么办
- 实习测了啥
- 实习中遇到的困难
- 代码题
- 测试一下小说阅读
二面 50min
- 自我介绍
- 实习
- 测试做了啥
- 如何验证你测试内容的正确性???
可以用一些工具类似postman,模拟用户发起HTTP请i去,将请求数据发送到服务端获取对应的响应数据,验证响应中的结果十有和预期值相匹配。
- 实验室的项目介绍。
- 如何针对这个模块来测试
- 解释一下非对称加密
公钥和私钥 https 1、首先是服务端获取到证书,然后有了私钥 2、将证书发送给客户端 3、客户端获取到证书后,验证真伪,获取公钥 4、用公钥加密对称密钥给服务端 5、服务端用私钥解密,获取到对称密钥 6、双方使用对称密钥来传输数据
- 为什么想做测试
- 现在有几个offer了
- 算法题:一个文件,读取姓名,获取存取数目最少的名字,如果一样则返回名字最短的那个。
- 如何测试刚刚写的这个代码
- 反问:测开:基础知识,代码能力,思维逻辑。
HR面 30min
- 自我介绍
- 最开心的事情
- 为什么想做测试
- 找工作看重哪些方面
- 有几个offer
- 薪资
- 为啥想来北京
- 反问
-
百度
一面50min
- 自我介绍
- 介绍一下项目
- TCP三次握手和四次挥手
- HTTPS和http的区别
- 代码:topK
- 实习做了啥
- Linux命令
- 查看内存和cpu的命令
- 赛马
二面 45min
- 自我介绍
- sql删除表中重复数据只留一行
DELETE FROM people WHERE peopleName IN ( SELECT peopleName FROM people GROUP BY peopleName HAVING count(peopleName) > 1 ) AND peopleId NOT IN ( SELECT min(peopleId) FROM people GROUP BY peopleName HAVING count(peopleName) > 1 )
- sql两表联合
- 代码:合并两个有序数组
- netstat
- 针对微信发消息设计测试用例
三面 30min
- 自我介绍
- 了解一些测试工具吗
- 介绍一下你的项目,项目中的难点
- 如果工作中让你快速掌握一门语言或者技术,你的学习方法是怎样的
- 你的缺点,怎么改进
- 你的职业规划
-
有赞
一面40min
- 自我介绍
- C++内存泄漏,解决机制
- 无参构造和拷贝构造
- 实习的经历,遇到的问题
- 深拷贝和浅拷贝
- 作为班长,组织过哪些活动,怎么一个流程
- 有人说你坏话吗,你怎么解决,给我一个系统化的方案
- 写一个sql题
- 反问
二面 30min
- 自我介绍
- 实习经历
- 为啥做测开
质量保证;编码提高测试效率;上线后继续跟进;各方沟通;保证上线周期;
- 你理解的测开
- 性能测试有了解吗
- 测试工具有了解吗
- Charles抓包工具啥啥啥
- 介绍一个你的项目,以及遇到的问题怎么解决的
- session和cookie有了解吗
- 你的优势
- 反问
测开:沟通、逻辑、代码理解力、编程、思维和方法论
HR面 40min
- 自我介绍
- 你对转转有了解吗
- 你找工作更看重哪些因素
- 你最有成就感的事情
- 你觉得最大的挫折
- 你实习期间有没有什么事情你现在回顾是可以做的更好的
- 有没有人当众批评你印象最深刻的一件事
- 用三个词总结一下自己
- 反问
-
字节
一面 40min
- 自我介绍
- 实习做的事情
- 比如首页链接跳转的测试用例
- 如果访问一个页面,出现空白页可能是什么原因
- 是呀Charles抓不到包的原因有哪些
- http和https的区别
- 数据库中左连接和右连接的区别
- TCP中的流量控制和拥塞控制是怎么实现的
- 代码题,输入一个日期,判断是一年中的第几天
- 反问