收藏 分销(赏)

百度测试面试题整理.docx

上传人:仙人****88 文档编号:8923383 上传时间:2025-03-08 格式:DOCX 页数:7 大小:23.06KB 下载积分:10 金币
下载 相关 举报
百度测试面试题整理.docx_第1页
第1页 / 共7页
百度测试面试题整理.docx_第2页
第2页 / 共7页


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

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服