精选软件测试面试题

📅 2026/7/3 22:08:16
精选软件测试面试题
1、 CPU 和 GPU的区别一个是通用计算一个是专用计算。CPU主要负责操作系统和应用程序GPU主要负责跟显示相关的数据处理GPU的活CPU一般都可以干但是效率低下。CPU和GPU之所以大不相同是由于其设计目标的不同它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。2、 推荐的算法 有哪些推荐应该说分为两类个性化推荐和非个性化推荐“让全局优秀的内容被大家看到”应该算是非个性化推荐热门榜单/最多观看这类方法可以简单解决这个问题不同的人对于“好”的理解不一样换句话说也就是偏好不同所以推荐新加入的好内容我认为是个性化推荐问题。个性化推荐的两个主要思想八个字概括之物以类聚、人以群分。主要的方法及变种应该有很多像协同过滤、基于内容的推荐、基于标签的推荐等等。3、 协同过滤是怎么实现的4、 熟悉的Linux命令查看磁盘空间的命令如何找到一个文件中含有aaa 和 bbb和行查看磁盘空间命令df –lhgrep -rn aaa bbb ** : 表示当前目录所有文件也可以是某个文件名-r 是递归查找-n 是显示行号-R 查找所有文件包含子目录-i 忽略大小写5、白盒和黑盒测试的方法有哪些白盒测试语句覆盖、条件覆盖、判定覆盖、判定条件覆盖、条件组合覆盖黑盒测试等价划分法、边界值法、因果图法、猜错法、随机数法6、如何测试一个三角形是否是一个等腰三角形写出测试用例5、 三角形测试用例类别输入条件有效等价类无效等价类是否是三角形(A0) (1)(B0) (2)(C0) (3)(ABC) (4)(BCA) (5)(CAB) (6)(A0) (7)(B0) (8)(C0) (9)(ABC) (10)(BCA) (11)(CAB) (12)是否是等腰三角形(AB) (13)(BC) (14)(CA) (15)(A!B)and(B!C)and(C!A) (16)是否是等腰直角三角形(AB)and(A2B2C2) (17)(BC)and(B2C2A2) (18)(CA)and(C2A2B2) (19)(A!B)and(B!C)and(C!A) (20)是否是等边三角形(AB)and(BC)and(CA) (21)(A!B) (22)(B!C) (23)(C!A) (24)三角形测试用例用最少的测试用例覆盖所有的有效等价类而无效等价类每个类型都要覆盖到序号输入[A,B,C]覆盖等价类输出1[3,4,5](1)(2)(3)(4)(5)(6)是三角形2[0,1,2](7)非三角形3[1,0,2](8)非三角形4[1,2,0](9)非三角形5[1,2,3](10)非三角形6[1,3,2](11)非三角形7[3,1,2](12)非三角形8[3,3,4](1)(2)(3)(4)(5)(6)(13)等腰三角形9[3,4,4](1)(2)(3)(4)(5)(6)(14)等腰三角形10[3,4,3](1)(2)(3)(4)(5)(6)(15)等腰三角形11[2√2,2√2,4](1)(2)(3)(4)(5)(6)(17)等腰直角三角形12[4,2√2,2√2](1)(2)(3)(4)(5)(6)(18)等腰直角三角形13[2√2,4,2√2](1)(2)(3)(4)(5)(6)(19)等腰直角三角形14[3,4,5](1)(2)(3)(4)(5)(6)(16)(20)(22)(23)(24)是三角形15[3,3,3](1)(2)(3)(4)(5)(6)(16)(21)等边三角形16[,,,]无效等价类错误提示17[-3,4,5]无效等价类错误提示18[a,3,]无效等价类错误提示19[3,4]无效等价类错误提示7、排序的算法以及时间复杂度8、对一个自动贩卖机进行功能测试按照功能测试的划分等价类来测试有效的等价类有金额刚够顺利出货金额超出找零出货金额超出, 没钱找零,出货.金额不足进行提示把货币退出金额足够取消交易假币不出无效等价类投入金额不出货不找零投入金额不出货退钱金额超出出货不找零金额超出不出货找零金额不足出货找零l金额不足出货不找零金额不足不出货不退款金额刚够不出货退款金额刚够出货找零金额刚够不出货找零不投金额直接出货9、为什么选择软件测试 这个岗位现在的软件行业日新月异发展的如日中天同行之间的竞争更是此起彼伏稍有不慎就会面临破产其中产品的质量更是重中之重出现一点点小问题就会导致用户量骤减由于我国的互联网行业起步较晚在质量把控这方面没有国外做到到位但我相信软件测试行业将会有很大的发展前景我也能在这个领域一展我的抱负。10、应聘软件测试的优势与劣势优势1、 我有足够的责任心2、 有很好的学习能力3、 适应新事物新环境很迅速4、 有计算机相关理论基础劣势1、 缺少社会经验2、 编程能力较弱11、有50个红球50个蓝球如何放入两个盒子中使得拿到红球的概率最大不管你怎么放概率都是二分之一。譬如红的全放一个箱子那么只要你从俩个箱子中选择这个箱子就一定是红球为二分之一。二如果一个箱子放一半红球一半篮球那么你随便抽一个箱子都是二分之一的概率抽到红球。三任意情况如箱子一有30个红球那么红球的概率为1/2*30/501/2*20/50还是二分之一12、有5个强盗分100枚金币从1号开始进行分配必须有半数服从分配才通过否则否则1被毙掉由2号开始分问1号要怎样分才能使自己利益最大化采用反推过来的算法:5号表决时,形成的状态是:1得到0个宝石,死2得到0个宝石,死3得到0个宝石,死4得到0个宝石,死5得到100个宝石,活,同意原因:不用讲了,能轮到5号表决当然他独吞了但是也会与题目违背了,因为前面几个海盗都是傻瓜差不多4号表决时,形成的状态是:1得到0个宝石,死2得到0个宝石,死3得到0个宝石,死4得到100个宝石,活,同意5得到0个宝石,活,不同意原因:这时只剩下二比一的情况,只要自己同意即可达到半数而通过表决,不存在生命危险但是3号也不是白痴3号表决时,形成的状态是:1得到0个宝石,死2得到0个宝石,死3得到99个宝石,活,同意4得到0个宝石,活,不同意5得到1个宝石,活,同意轮到3号时,他只要给5号1个宝石就够了原因:因为5号会意识到,一旦轮到4号时他就一个也得不到,现在能得到1个宝石已经是给了面子了但2号也很聪明的,能否轮到他只是一种期待,来看看2号的情况2号表决时,形成的状态是:1得到0个宝石,死2得到99个宝石,活,同意3得到0个宝石,活,不同意4得到1个宝石,活,同意5得到0个宝石,活,不同意要是轮到此海盗他必会拿走99颗宝石,然后给4号1颗即可!为什么? 原因是:4号已经意识到,要是轮到3号表决时,他将一个也得不到,所以这时有点收获,固然同意了这时也考虑到:3号不可巴结,会损失太多,因为如果只是单单给3号的话,他随时都可以不同意而获得表决权5号也可巴结,但需要2颗宝石,不合算,因为5号也知道即使下一轮也是拿定一颗宝石的1号:此海盗当然也聪明了从上述看出,既然轮到2号的局势已定,那他早已知道后面的海盗心里想什么了也就是简单的说,他们清楚认识到,轮到2号时,3号和5号得不到宝石!那么这样的话,事情就好办多了,给他们一人一颗自然就搞定了!所以,1海海盗毅然作出决定,分别给3号和5号各1颗宝石最终结局的状态是:1得到98个宝石,活,同意2得到 0个宝石,活,不同意3得到 1个宝石,活,同意4得到 0个宝石,活,不同意5得到 1个宝石,活,同意即:98,0,1,0,1 (达到1号利益最大化)13、如果没网可能是什么原因造成的一、使用的是有线网线1、路由器数据堵塞一般重启路由可以解决如果重启仍不能解决可能是运营商的问题了及时电话咨询2、自身电脑问题连接有线网的情况这种情况很少见二、连接的是无线网1、路由器问题重启路由试试也不排除线路问题2、无线接收器问题看灯闪烁是否正常可以尝试拔队重新插上3、也可以尝试把无线禁用然后重新开无线网络4、重新安装无线网驱动试试14、怎样测一张A4纸1.纸张的质地是否为纸张2.纸张的品质是草木、皮革。。。3.纸张的类别是否为白纸4.纸张的功能能否书写图画等5.纸张的兼容性水笔、油笔、铅笔是都都能正常书写6.纸张的扩展性折叠、拉伸7.纸张的安全性纸张的生产工艺是否安全纸张有无有毒性物质8.纸张的结构9.纸张的性能对各种笔的吸油性是否够快15、数据库知识姓名班级、课程名、分数1、求语文分数最高的学生Select 姓名max分数from 表名where 课程名“语文”2.求每个班语文成绩最高的学生16、三次握手每次发送的内容都是什么第一次握手建立连接时客户端发送syn包synj到服务器并进入SYN_SENT状态等待服务器确认SYN同步序列编号Synchronize Sequence Numbers。第二次握手服务器收到syn包必须确认客户的SYNackj1同时自己也发送一个SYN包synk即SYNACK包此时服务器进入SYN_RECV状态第三次握手客户端收到服务器的SYNACK包向服务器发送确认包ACK(ackk1此包发送完毕客户端和服务器进入ESTABLISHEDTCP连接成功状态完成三次握手。补充完成三次握手客户端与服务器开始传送数据在上述过程中还有一些重要的概念未连接队列在三次握手协议中服务器维护一个未连接队列该队列为每个客户端的SYN包synj开设一个条目该条目表明服务器已收到SYN包并向客户发出确认正在等待客户的确认包。这些条目所标识的连接在服务器处于SYN_RECV状态当服务器收到客户的确认包时删除该条目服务器进入ESTABLISHED状态。17、关闭TCP连接改进的三次握手对于一个已经建立的连接TCP使用改进的三次握手来释放连接使用一个带有FIN附加标记的报文段。TCP关闭连接的步骤如下第一步当主机A的应用程序通知TCP数据已经发送完毕时TCP向主机B发送一个带有FIN附加标记的报文段FIN表示英文finish。第二步主机B收到这个FIN报文段之后并不立即用FIN报文段回复主机A而是先向主机A发送一个确认序号ACK同时通知自己相应的应用程序对方要求关闭连接先发送ACK的目的是为了防止在这段时间内对方重传FIN报文段。第三步主机B的应用程序告诉TCP我要彻底的关闭连接TCP向主机A送一个FIN报文段。第四步主机A收到这个FIN报文段后向主机B发送一个ACK表示连接彻底释放。18、为什么要采用三次握手两次不行吗保活计时器为了防止已失效的连接请求报文段突然又传送到了服务端因而产生错误。设想有这样的情况客户端已主动与服务器建立了TCP连接但后来客户端的主机突然出现故障。通常设为2小时。若2小时没有收到客户端的数据服务器就发送一个探测报文段以后则每隔75分钟发送一次。若一连发送10个探测报文段后仍无客户端的响应服务器就认为客户端出现了故障接着就关闭这个连接。19、为什么连接的时候是三次握手关闭的时候却是四次握手答因为当Server 端收到Client端的SYN连接请求报文后可以直接发送SYNACK报文。其中ACK报文是用来应答的SYN报文是用来同步的。但是关闭连接时当Server端收到FIN报文时很可能并不会立即关闭SOCKET所以只能先回复一个ACK报文告诉Client端你发的FIN报文我收到了。只有等到我Server端所有的报文都发送完了我才能发送FIN报文因此不能一起发送。故需要四步握手。20、为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态答虽然按道理四个报文都发送完毕我们可以直接进入CLOSE状态了但是我们必须假象网络是不可靠的有可以最后一个ACK丢失。所以TIME_WAIT状态就是用来重发可能丢失的ACK报文。21、微信发送消息功能的测试1、功能测试图片、文字大段文字、小视频、语音是否发送顺利数据有没有丢失、有没有延迟一个人发了100遍同样的数据能否发送成功群发功能2、性能测试并发度响应时间系统资源占用、压力测试、兼容性测试硬件兼容和软件兼容、还有就是考虑多端登录消息的同步22、main函数执行之前都发生了什么23、fidler抓包原理Fiddler是一款非常流行并且实用的http抓包工具它的原理是在本机开启了一个http的代理服务器然后它会转发所有的http请求和响应因此它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此它还可以支持请求重放等一些高级功能。显然它是可以支持对手机应用进行http抓包的。24、设计测试用例有哪些方法黑盒测试等价划分法、边界值判定、因果图、错误猜测白盒测试语句覆盖、条件覆盖、判定覆盖、条件/判定覆盖、条件组合覆盖25、Vim怎么删除行dd 删除一整行D d$ 删除光标位置到本行结尾d0 删除光标位置到本行开头26、Linux怎么查看大文件怎么实时查看文件[rootgetlnx01 u03]# find . -type f -size 800M -print0 | xargs -0 ls –l27、性能测试有哪些负载测试、压力测试、疲劳性测试、容量测试28、TCP的拥塞控制29、http中的get和post请求的区别1、GET请求请求的数据会附加在URL之后以?分割URL和传输数据多个参数用连接。URL的编码格式采用的是ASCII编码而不是uniclde即是说所有的非ASCII字符都要编码之后再传输。POST请求POST请求会把请求的数据放置在HTTP请求包的包体中。上面itembandsaw就是实际的传输数据。因此GET请求的数据会暴露在地址栏中而POST请求则不会。2、传输数据的大小在HTTP规范中没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中对于GET特定的浏览器和服务器对URL的长度有限制。因此在使用GET请求时传输数据会受到URL长度的限制。对于POST由于不是URL传值理论上是不会受限制的但是实际上各个服务器会规定对POST提交数据大小进行限制Apache、IIS都有各自的配置。3、安全性POST的安全性比GET的高。这里的安全是指真正的安全而不同于上面GET提到的安全方法中的安全上面提到的安全仅仅是不修改服务器的数据。比如在进行登录操作通过GET请求用户名和密码都会暴露再URL上因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因此时的用户名和密码就很容易被他人拿到了。除此之外GET请求提交的数据还可能会造成Cross-site request frogery攻击30、怎么确认post请求发送完毕31、专利是第一作者么不一定32、loadrunner用来干了什么做性能测试用的。测试软件的性能、压力、负载情况、服务器的响应时间吞吐量、监控服务器、数据库的性能指标。等等。总之很强大。感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。