25届正式批-测试开发工程师-地图事业部 25.9.13
一面
自我介绍
Linux常用命令
grep用法
tcp udp区别
http https区别
在浏览器里输入url到整个界面加载过程
线程进程区别
==和equals区别
单列模式
算法:字符串反转(递归双指针两种思路)
找到1-N中缺失的那个数参数为int [] nums,int n
(比如nums={1,2,3,4,6},n=6缺失的数就是5)
(数学公式位运算亦或两种发方法)
针对第二道题设计测试用例
二面
微信发红包功能怎么测试
除了你刚才提到的功能测试、安全和兼容性外还有其他的吗
算法:先序遍历二叉树(我写了递归非递归两种方法)
判断一个图形是否在多边形内
(引申:如果只是凸多边形的话可以优化一下算法吗)
实现一个多线程的下载,能够控制多线程的开始、结束,完成下载任务的线程自动去下载等待任务(5个工作线程,最多同时下载5个文件)
实习当中遇到的最大挑战
三面
(上来聊了聊实习,然后直接场景题)
1.有一个数组,这个数组里边是公司员工的年龄,这个数组有 3 万个数,但是它现在是无序的,然后想让你按照从小到大的顺序 print 出来啊,这个怎么做?
(因为数据量大,我选择的是利用外存进行排序)
2.有 a 、b 两个文件,这个文件里面都是一些站点,每个站点占一行,比如说 a 文件里面呢,就第一行是那个baidu.com,第二行sina.com,第三行 Yahoo .com,b 文件同理。需求:把 a、b这两个文件里相同的那些站点找出来,然后放在一个文件里面,把 a 独有的那些站点放在一个文件里面,还有 b 独有的那些站点放在放在一个文件里面,这个怎么做?
(将a,b文件内容存到HashSet里,遍历a的同时检查是否元组再b中,说了一下程序思路)
3.(承接2题)当 a、b 都比较小,是可以这么做的。现在假如 a 和 a 和 b 两边都很大,比如说 a 文件有 500G ,b 文件有 600G,其实没有办法就是完全读到内存里面去做这事的。然后这个东西怎么做?为了简化一下这问题,给你确定一个思考的方向,假设你刚才的那个方法已经形成了一个工具的话,输入 a 和 b 两个文件,就可以输出三个文件,但是有个前提,就是要就 a、b 这两个文件都小于 200 兆,但是现在a 文件有 500G,b 文件有 600G,你怎么做?
(将文件分割为200兆的小模块,调用脚本,结果合并)(这里已经不知道自己说的是什么了,蒙了)
4.假设你是服务 a 的测试 owner,这个 a 服务大概是有十几个研发,负责平时的开发和维护,大概是两周之前,基于这个服务 a 最新的git 库的 2G 的程序,测试通过之后上线了,上线之后也比较稳定,没什么问题,在筛选完之后,你就去测其他的这服务了,比如说测服务 b,服务 c 去了啊,但是今天呢就接到一个任务,需要跑一下现在有的服务 a 的自动化测试用例,看一看当前的自动化测试用例对于服务 a 的最新代码的覆盖率是多少,所以你就拉取了服务 a 的最新代码,编译之后开始测试,但是这个测试用例运行了 5 分钟之后就挂掉了,你就去查了服务 a 的日志,也去通过 GDB 去 debug 了服务 a 的 code 文件,但是你没有定位到问题,之后,你又去查了这个服务 a最近两周的这个 git 的这个提交记录,发现在两周的时间里,十几个研发代码都有提交,加起来大概是有 100 多次的代码提交,然后你的统计测试覆盖率的这个任务是要在两天内完成,请问你现在准备如何定位问题,完成这个任务?
(直接蒙b,已经忘了怎么答的)
5.比如说今天是周三,你接手了一个测试项目,然后你评估了一下,正好需要大概测试 3 天的时间,正好项目的上线的 deadline 也是下周一,所以说你当前正好能够完成,保证它按时上线。但是到了周三的下午的时候,突然 PM 给你找过来,说有一个需求要插入,然后要求周五前要完成,你大概评估了一下这个需求的工作量可能需要 0.5 天,你怎么处理?
(将b拆解为多个阶段,周五前完成重要部分;a按照原计划测试,对关键点重点监控;周末加班测b剩余部分以及a和b的整体进行集成测试和回归测试)
6.自己的优缺点
#面经##滴滴#