《2022年百度测试面试题整理 .pdf》由会员分享,可在线阅读,更多相关《2022年百度测试面试题整理 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学而不思则惘,思而不学则殆1. 解释一下 JAVA的面向对象和 C的面向过程的区别面向过程的语言管理起来比较麻烦,一条代码地执行, 而面向对象代码可以进行重用2. 什么是树,什么是二叉树,什么是平衡树3. K层楼,两个玻璃板,最少多少次能测出在哪儿层楼杯子会碎既然第一步(确定临界段)的投掷数增加不可避免,我们就让第二步(确定临界层)的投掷数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。假设第一次投掷的层数是f ,转化成数学模型,就是要求f+(f-1)+.+2+1=99,即 f(f+1)/2=99(第一次测试点选择 100 层是无意义的,必然会碎,
2、所以无任何测试价值,所以第一次测试点k是 1-99 中的一个数 ) , 解出结果等于 14。 丢下第一个玻璃板的楼层就分别是 14 ,27 , 39 , 50 , 60 , 69 , 77 ,84 , 90 , 95 , 99 。4. 两个人交流一次能得到相互的信息,三个人呢?N个人呢?5. 你为什么选择做测试而不是研发呢?答:测试和研发是相通的6. 讲做过的最深刻的一个项目7. 线程与进程有什么区别子进程和父进程有不同的代码和数据空间, 而多个线程则共享数据空间, 每个线程有自己的执行堆栈和程序计数器为其执行上下文. 多线程主要是为了节约CPU 时间, 发挥利用 , 根据具体情况而定 . 线
3、程的运行中需要使用计算机的内存资源和 CPU 。通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。8. 进程间通信有什么方法shared memory,message passing 。管道( Pipe )及有名管道(named pipe ):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此, 除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号( Signal ):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通
4、信外, 进程还可以发送信号给进程本身;Linux 除了支持 Unix 早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于 BSD 的, BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);报文(Message)队列(消息队列) : 消息队列是消息的链接表,包括 Posix 消息队列systemV消息队列。 有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。精选学习资料 -
5、- - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 7 页学而不思则惘,思而不学则殆共享内存: 使得多个进程可以访问同一块内存空间,是最快的可用IPC 形式。 是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。信号量( semaphore ):主要作为进程间以及同一进程不同线程之间的同步手段。套接口( Socket ):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由 Unix 系统的 BSD分支开发出来的,但现在一般可以移植到其它类Unix 系统上: Linux和System V 的变
6、种都支持套接字。9. 同步有那些方法Java synchronize wait notify 事件 临界区域互斥器 信号量 锁10. rpc 是通过什么实现的?通过 socket 实现的11. 一个表,主键是 id ,还有有名字,个人简介等。找出出现次数在a,b 的名字。12. 找出平衡点public class Test public int findBalanceableNod( int a) if (a = null ) return - 1 ; long sum = 0l ; long subSum = 0l ; for ( int i = 0 ; i a.length; i + )
7、sum += ai; for ( int i = 0 ; i a.length; i + ) if (subSum = sum - subSum - ai) return i; else subSum += ai; return - 1 ; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 7 页学而不思则惘,思而不学则殆13. 给一个三层楼房,有两部电梯,问要测试些什么。14. 有一个数据库,随着数据的增加响应越来越慢,问怎样改进。我首先反应过来的是多用几台机器,每台机器负责一部分, 然后汇总返回给用户。他点点头,说思路是对的,马上追问
8、如果只有一台机器怎么办?他说,同样的思路,能不能分块考虑呢?我说按照区段划分吧,例如1-10000 一段,10001-20000 一段。他说那随着记录的增加,有什么方法保证能平均地分到每块呢?我想了想,还是请他给提示。他说,例如1001 分到第一块, 1002 分到第二块1005分倒第一块 ,1006 分到第二块我反应过来了, 说按照关键字求余 。他终于点头了。15. 有若干个文件,每个文件里有很多单词,用空格隔开。现在给出一个单词,要求返回单词出现在哪些文件中。我想了一下,说建一个从关键字到出现的文件记录的索引,用hash 或者 B+树。16. 他又问能不能把具体的数据结构写一下?17. 然
9、后问了是否用过百度mp3搜索。问按照什么方式对mp3结果排序。我说按照链接数多的, 页面访问量大的, 链接目标的大小, 还有优先考虑正规网站的链接,还有关键字模糊匹配等。最后他补充了一个速度因素。18. 用 c 完成一个函数 char* function(char * s,int n),返回 s 的前 n 个字符,要求尽量考虑健壮性。19. 假设有 N个(大约几百万个文件),每个文件存储的都是英文单词,文件大小都是 1MB 左右。输入一个单词,输出包含这个单词的文件名(按文件大小排序)。要求尽量优化算法。一开始, 理解成文件里面存的是不定长的连续字符串了,光给了个分块扫描,还想着用 KMP ,
10、被否决;磨了一段时间,后来发现文件的单词是用空格隔开的。再提示下,给出了个多叉树结构(类似于字典树?),每个节点存储包含这个单词的文件名链表。后来想到 二叉排序树 ,提到了,好像这个就是面试官要的答案,不过我又提出用排序树查询方便, 但是输出排序的结果 (深度或广度遍历) 没有直接链表遍历方便。20. 问了个 socket 编程,如何设计服务器端。回答多线程, 每一个请求开一个线程。 又问假设大量用户请求来到的话如何优化(提示线程的创建与销毁比较耗资源)。想到数据库连接池的原理,套用在这里(其实不知道socket 能不能这样用),貌似面试官还比较满意。精选学习资料 - - - - - - -
11、- - 名师归纳总结 - - - - - - -第 3 页,共 7 页学而不思则惘,思而不学则殆21. 一个数据库,为了保证响应速率,会在数据库和客户端之间建立一个缓存,缓存里存储数据库常用的结果 (容量为 10000 条 item 或 1GB )。客户端先查询缓存,若没有结果再查询数据库,当查到结果之后再把这条结果添加到缓存中。对缓存的操作包括添加、删除、搜索item 。 要求尽量全面的测试这个架构。22. 其他还问了对测试流程的理解,问了下实习情况。面试结束的时候还追加了UNIX下 I/O 模式?和如何在 linux下查看程序资源消耗情况 (这两个都不会)23. 对于测试研发工程师的职位理
12、解;24. 自己对于这个职位有什么优势;25. 用过什么测试方法?答: JUnit 26. JUnit 测试的流程方法?测自己的代码还是别人的代码?觉得好用么?27. Java 中 String和 StringBuffer的区别28. 如果百度生产抽纸巾的盒子,如何检测纸盒的质量?写一个测试用例(这个题可以从比如果测试,比如测试百度知道,有哪些东西要考虑?(答服务器响应时间,并发程度,肯定还有其他,不过我不会了。)29. 如何编程模拟多用户并发请求页面,从而测出页面的性能?(答线程,又问如何实现请求?答http request,不知道对不对。)30. HTTP 协议的特点?31. 如果进了百度
13、,你觉得你每天都要做些什么样的工作呢32. 如何测试百度搜索引擎33. 算法: 2n 个数, 一半奇数,一半偶数,设计一个程序让奇数位上的数是奇数,偶数位上的是偶数,并计算程序的空间复杂度和时间复杂度建立一个 2n 大小数组 , 设置一个奇数计数器初值1, 一个偶数计数器初值0, 循环一下所有数,如果奇数 , 与 a 奇数计数器位置 元素互换,奇数计数器 +2,如果是偶数 , 与 a 偶数计数器位置 元素换位置 , 偶数计数器 +2,直到 2n 个数遍历完毕。空间复杂度 1(设置一个临时变量用于元素交换)时间复杂度 o(n)简单写下程序没调试你再改改阿#defined N 10 main()
14、int ai=1;/奇数计数器int bi=0;/偶数计数器int temp=0; a2N=1,5,6.2n; for(int i=0; i2n;i+) if(ai%2=1) 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 7 页学而不思则惘,思而不学则殆 temp=ai; ai=aai; aai=temp; ai=ai+2; else temp=ai; ai=abi; abi=temp; bi=bi+2; / 本题假设 a0 为 0 位偶数位 ,a1 为 1 位奇数位(不影响思想的说明)34. 开放性问题:怎么样统计世界上一共有多少个
15、理发师可以去工商局,可以去统计理发用的工具销量35. 现在有一台打印机或者多台打印机,你要怎么样进行测试,要测哪些点。36. 索引的几种方法, 比较各类排序的算法复杂度, 说说栈内存和堆内存的分配,介绍一下 socket 编程37. C/S结构, Server 端测试性能时需要注重哪些方面。38. 问是否了解 Socket 编程。 socket 编程中,如果请求非常多,服务器承受能力有限,怎么解决。39. 一个单链表,长度未知,如何快速的找出位于中间的那个元素。建立两个指针, 一个一次走一步, 一个一次走两步, 当走两步的指针走到末尾的时候。那么走一步的指针刚好到达中间的位置。40. 两个人,
16、在一个桌子上轮流摆硬币,每次每人摆一个,硬币不能重叠。直到桌子上再摆不下更多的硬币了,那么最后摆的那个人获胜。问取胜方案。你要争取先放, 并把第 1 枚硬币放在桌面的对称中心上,以后你应该根据对方所放硬币的位置, 在它关于中心对称的位置上放下一枚同样大小硬币这样,由于对称性,只要对方能放得下一枚硬币, 你就保证能在其对称位置上放下一枚同样大小的硬币,因此,失败绝对轮不到你41. 字符串的函数,树的遍历,还有数据结构的抽象概念42. 洗牌算法43. 算法设计: n 个连续自然数,乱序存放于一个数组中,缺失一个,缺失的位置处放置 -1,问怎么确定丢失的那个数?精选学习资料 - - - - - -
17、- - - 名师归纳总结 - - - - - - -第 5 页,共 7 页学而不思则惘,思而不学则殆对数组进行求和,然后对N个连续自然数求和。后者的和-1 减去前者的和得出的就是丢失的那个数。44. 重载和覆盖的区别, linux基本命令45. 操作系统的哲学家就餐问题46. 谈谈测试与开发的关系,对测试的理解,给出实例,自动贩卖机,冰箱,百度的搜索页等,从外观(视觉效果)、正确性、压力、性能等方面。47. IP 段去重48. 判断两颗二叉树是否等价49. 比如给你 ABC三个模块,现在想测B模块,比如要实现的功能是收到A来的报文,如果没有 page字段,则自动添加并让其等于1,如果有 pag
18、e 字段,则无条件转发,怎么写测试用例50. 为什么选择做测试,这个好像和你的专业(通信工程)基本上背离啊,还有你的未来是怎么规划的之类的,一一对答!51. 如果让你现在对一部电梯写测试用例,你怎么写?需求测试:查看电梯使用说明书、安全说明书等界面测试:查看电梯外观功能测试:1. 测试电梯能否实现正常的上升和下降功能。2. 电梯的按钮是否都可以使用。3. 电梯门的打开,关闭是否正常。4. 报警装置是否可用。5. 与其他电梯之间是否协作良好。6. 通风状况如何。7. 突然停电时的情况。8. 上升途中的响应。1)电梯本来在1 楼,如果有人按18 楼,那么电梯在上升到5 楼的时候,有人按了10 楼,
19、这时候是否会在10 楼先停下来;2)电梯下降到10 层时显示满员,此时若8 层有人等待电梯,是否在8 层停。可靠性:1. 门关上的一刹那出现障碍物。2. 同时按关门和开门按钮。3. 点击当前楼层号码。4. 多次点击同一楼层的号码等等。5. 同时按上键和下键会怎样。易用性:1. 电梯的按钮的设计符合一般人使用的习惯吗负载 / 压力测试:1. 看电梯的最大限度的承受重量在负载过重时是否有提醒。2. 在一时间内不断的让电梯上升,下降。稳定性测试:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 7 页学而不思则惘,思而不学则殆1. 最大负载下平
20、稳运行的最长时间。文档测试:1. 使用手册是否对电梯的用法、限制、使用条件等有详细描述52. 你觉得做测试工程师所具备的最基本的素质是什么?出色的沟通能力 = 20%良好的学习能力 = 21%全面的技术能力 = 18%写作能力耐得住性子 = 14%缜密的逻辑思维能力 = 23%专科及以上学历 = 4% 53. 如果现在你和研发人员就某一个程序段出现相左的意见,你怎么办?54. 如果你们实在是意见不同呢?领导决断55. 如果现在就要交项目了,突然发现因为计划没写好,现在有一部分没法完成了,而且就是 24小时加班也写不完,怎么办?出现这样的情况,直接告诉主管,推迟发布日期,这是你负责的事情,百度的原则是不能让任何没经过测试的东西上市56. 给你一个文本文件,里面存的全都是位数小于10 的数,有 5 千万个 , 怎么排序才能最节省资源?木桶排序精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 7 页