拓冰建站拓冰建站
首页 / 资讯中心 / 正文

360校招测试开发笔试客观题全面解析:考点与避坑指南

先给结论吧如果你是冲着2023年360校招测试开发岗去的这套客观题卷子考察的东西比你想的要“朴素”得多。它不考你用没用过某个炫酷的测试平台也不追问你有没有做过什么爆款项目而是像大学期末考一样把计算机基础、编程语言、数据结构、网络、数据库、测试理论这六块内容掰开揉碎塞进选择题、多选题和填空题里。很多同学刷完LeetCode和一大堆测试开发面经信心满满走进考场结果被一道数据库索引失效的题或者一道“TCP四次挥手能不能变三次”的判断题给干懵了。这篇文章就来还原一下这套客观题的真实面貌把我见过的高频考点和容易踩的坑一次性说清楚。先说清楚这套客观题的作用。360的校招流程基本是网申、笔试、面试、offer笔试阶段通常分两部分——客观题和主观题或者再加一道编程题。客观题存在的意义不是为了筛掉多少人而是为了在进入面试之前先确认你的“计算机底子”不是临时抱佛脚背出来的。测试开发这个岗位比较特殊它既要求你有开发能力又要你有测试思维所以客观题里一半是算法和语言基础一半是测试理论和网络数据库这两块权重都很接近。换句话说你光会刷题不行光会背测试概念也不行得两头都硬。1. 客观题的整体面貌与命题逻辑1.1 一张卷子背后的岗位画像先别急着做题先搞清楚命题人想要什么样的人。测试开发在业务团队里角色其实非常拧巴你要写自动化脚本就要懂代码你要定位线上问题就要懂网络和数据库你设计测试用例就要懂业务逻辑和用户心理。所以笔试客观题考察的维度基本就锚定在这几个能力上——编程基本功、系统底层认知、测试专业度。360的业务线覆盖安全、搜索、智能硬件、游戏等多个方向测试开发岗需要支撑的业务很杂所以客观题覆盖面特别广。我印象里题量大概在40到60道之间考试时间60到90分钟平均每道题只有一分多钟根本容不得你反复斟酌。这就很考验你对基础知识的“条件反射”程度看到一道题得在十秒内判断出考点是什么然后快速锁定正确答案。1.2 题型结构与分值分布从近几年的校招笔试情况来看客观题通常包括四类题型单选题、多选题、判断题和填空题。分值上单选和判断相对便宜多选最贵但也最容易错——多选少选都不得分这是很多人的失分重灾区。我根据自己的经验给各科目的出题比重排了个序完全基于个人观察供参考科目模块常见题量占比典型题型计算机网络15%-20%单选/判断操作系统10%-15%单选/多选数据结构与算法15%-20%单选/填空编程语言基础10%-15%判断/单选数据库10%-15%单选/多选测试理论与方法20%-25%多选/填空/判断注意测试理论占比是最高的。这也是测试开发岗笔试和其他开发岗笔试最大的区别开发岗可能完全不考测试但测试开发岗一定会考而且考得不少。你如果只看高数、刷LeetCode上了考场大概率会在测试题上栽跟头。2. 核心科目逐项拆解知识点与高频考点2.1 计算机网络缠着面试官不放的基础题网络题在测试开发客观题里出镜率极高而且题目难度通常会控制在“理论级别”——不会让你去抓包分析但一定会问你TCP三次握手的状态变化、HTTP和HTTPS的区别、DNS解析的过程之类的问题。我记得有一道印象很深的题问的是“TCP建立连接过程中客户端在第二次握手后处于什么状态”选项有SYN_SENT、ESTABLISHED、SYN_RCVD、LISTEN。很多人不敢选ESTABLISHED觉得还没完成三次握手呢怎么可能是已建立连接但实际上第二次握手完成时客户端已经能确认服务端的接收与发送能力都正常所以客户端会进入ESTABLISHED状态。这个知识点如果只是背握手过程没有理解状态变化很容易踩坑。除了TCP状态HTTP状态码也是常客。特别是301和302的区别几乎每年都考。记住了301是永久重定向302是临时重定向。放到测试场景里如果一个接口迁移了但不希望客户端更新缓存应该用302如果确定老地址不会再用了才用301。这种区分如果只是死记硬背考试换个问法就容易错。还有一个高频点输入一个URL到页面展示的完整过程。客观题通常会把中间某个环节抠出来出题比如“DNS解析用的是TCP还是UDP”——记住DNS查询首选用UDP 53端口但区域传送或响应数据过大的时候会走TCP。这种细节题靠的是对整个请求链路的理解而不是背一条结论。2.2 操作系统进程线程与内存管理操作系统在客观题里的地位有点像“隐藏的boss”——看着不难但坑极多。测试开发偶尔会遇到线上问题排查进程卡死、内存泄漏、CPU飙升这些东西的底层逻辑都在操作系统里。进程和线程的区别属于必考题。但360的客观题不太会直接问你“什么是进程什么是线程”它更爱换着方式考比如“多线程程序比多进程程序更高效是否正确”——如果你答“正确”就掉坑里了。多线程的优势在于资源共享和切换开销小但Python因为有GIL锁多线程在某些计算密集场景下反而不如多进程。所以客观题里遇到这种“绝对化表述”多半是错的。死锁部分也是热点。四个必要条件——互斥、占有并等待、不可剥夺、循环等待——要背得滚瓜烂熟。但考试往往不会让你默写而是给你一个场景比如“两个线程各自持有一把锁同时等待对方释放锁这属于死锁的哪个必要条件”答案是循环等待。这种题考验的是你把抽象概念映射到具体情境的能力纯背概念的人容易懵。内存管理里LRU页面置换算法被反复考。尤其喜欢给你一串页面访问序列问你“内存中页框为3时缺页中断次数是多少”。这种题没有捷径老老实实画表格模拟。但我想提醒一点做题前要确认题目说的是“最近最久未使用”还是“先进先出”这俩的淘汰策略不一样结果能差出好几个缺页数。进栈思路要清晰别一上来就假设。2.3 数据结构与算法客观题里的“送分题”和“送命题”很多同学觉得算法题只能在编程题里考客观题里的算法部分顶多问问时间复杂度。实际上360的客观题也会出不少结构性的算法题比如“给定一个无向图的邻接矩阵判断该图是否连通”“二分查找的最多比较次数是多少”。这类题有个共同特点考的是结论和数据结构的性质而不是让你完整实现。比如二分查找在有序数组中查找一个元素最大比较次数是log2(N)向上取整再加1如果数组长度是1000那大约是10次。这类题复习到位的同学基本是秒选复习不到位的就开始瞎猜。排序算法那边最容易被拿来出题的是稳定性问题。快排、堆排、选择排序是不稳定的插入、冒泡、归并是稳定的。这里有个更刁钻的考法——给出一趟排序后的中间状态让你反推用的是什么排序。比如一个数组经过某一趟排序后最小元素被放到最前面但其他元素相对位置没有明显变化那大概率是选择排序。这种题光背排序原理不够得理解每一趟排序执行完的中间结果长什么样。栈和队列也是客观题里爱考的而且经常结合场景出。比如“用两个栈实现一个队列入队操作时间复杂度是多少”送分——入队直接压栈O(1)。但出队就有点绕需要把栈A的元素逐个弹入栈B再弹栈B均摊下来时间复杂度也是O(1)。这种题如果不在纸上画一下很容易想当然选成O(n)。客观题的时间限制就是这样它要求你连“想当然”的余裕都没有。2.4 编程语言与数据库客观题的常青树语言基础这块360的笔试不限定编程语言Java、C、Python的题都可能会出现。但考察的内容比较基础不会让你写一段长篇代码而是考语法细节和语言特性。以Python为例常考的有GIL、列表和元组的区别、深拷贝浅拷贝。有一道经典题“下面哪个操作不能原地修改列表”选项大概是list.append()、list.sort()、sorted(list)、list.reverse()——sorted返回新列表不会原地修改这就是正确答案。这种题对写惯Python的人来说就是肌肉记忆但不熟悉这些API的同学就会被坑。C那边则喜欢考指针和内存管理比如“指针和引用的区别”“new和malloc的区别”这些属于老生常谈基本送分。但C的析构函数为什么建议声明为虚函数、vector扩容的过程是怎样的这类稍微进阶一点的问题会筛掉一部分“只背面经不写代码”的人。数据库在测试开发笔试里也是很关键的板块。测试经常要构造测试数据、验证线上数据的一致性SQL写得溜是基本功。客观题一般不会让你手写完整查询但会给你一个表结构让你判断几条SQL哪条能正确执行。常见的坑包括聚合函数和GROUP BY一起用时SELECT后面的普通列必须出现在GROUP BY里WHERE不能直接使用聚合函数做条件过滤应该用HAVING索引列上用了函数索引就会失效。还有事务的ACID特性以及隔离级别的问题。测试同学在验证并发场景时会频繁接触到这些概念所以笔试一定会考。多选里“哪些操作会导致索引失效”这种题是重灾区因为选项多少有点模糊。我的建议是凡是看到“在索引列上进行计算”“使用IS NULL判断”“左模糊查询”这些表述基本都可以选上。尤其左模糊查询这个陷阱很多人写SQL习惯写LIKE %abc但数据库在B树索引上没法实现前缀未知的查找索引直接失效。3. 测试理论拉开差距的“得分区”3.1 测试用例设计方法等价类、边界值、判定表测试理论是测试开发岗笔试和别的开发岗拉开差距的核心板块。这里面的题没有太多逻辑难度考的是你有没有系统地学过测试方法论以及能不能应用到实际场景里。等价类划分和边界值分析法是客观题里的常客。比如一个输入框要求输入1到100的整数问“下列哪组数据最适合作为边界值测试的用例” — 答案是0、1、2、99、100、101偶尔还会加上一个正常值比如50。很多人在笔试现场会犹豫为什么不是直接用1和100因为边界值分析法的核心思想是“错误最容易发生在边界附近”所以既要有边界上的值也要有刚好越过边界的值。这一点在真实测试中同样重要线上很多bug都是边界条件没考虑周全导致的。判定表法也是一个高频考点它特别适合用在“多个条件组合决定动作”的场景。比如优惠券系统条件是“用户是否新用户”“订单金额是否满100”“是否使用优惠码”动作是“是否免运费”。这种场景用判定表来设计用例就能保证覆盖所有条件组合。笔试可能会给你一个简化的条件表问“最少需要多少条测试用例才能覆盖所有组合”——答案通常是各条件取值个数的笛卡尔积。这个计算本身不难但要先识别出有几个条件、每个条件有几种取值。条件组合场景还有一个很容易出多选的考点——场景法。场景法基于事件流来设计用例基本流和备选流组合起来可以覆盖一条完整的业务路径。真题里会给你一个登录模块的事件流问哪些属于备选流比如“用户名错误”“密码错误”“账号被锁定”这些就是备选流“登录成功进入首页”是基本流。这道题基本靠理解背是背不下来的。3.2 自动化测试与性能测试的基础概念客观题对自动化测试的考察通常停留在工具和框架的使用层面。Selenium、pytest、TestNG、JMeter这些名词至少得认识而且还得知道它们是干什么的、各自擅长什么场景。Selenium是浏览器自动化测试工具用于Web端UI自动化pytest是Python生态里的测试框架用来组织和管理测试用例JMeter是性能测试工具用来做压力测试和负载测试。这类题的问题是“以下哪个工具可以用于接口自动化测试”或者“pytest中fixture的作用是什么”。如果你平时只是听说这些工具的名字没有真正写过程序很容易在这类多选题上犹豫。性能测试的概念也是高频点。并发用户数、响应时间、吞吐量、TPS/QPS、PV/UV这些指标的定义和区别会被反复考。比如常考的“吞吐量”和“并发用户数”的关系吞吐量通常用TPS每秒事务数来表示它并不等于并发用户数而是系统在单位时间内能处理的事务数量。这个点看起来简单但有不少同学把它当数学题去算结果忽略掉了“事务成功率”“思考时间”这些干扰选项。关于性能测试的流程有一个问题经常出现在多选题里——性能测试的一般步骤包括什么选项里会混入“修改线上数据”“修复代码Bug”这类明显不对的干扰项。这题没有捷径只能靠记忆。完整的性能测试流程大致是需求分析、计划设计、脚本开发、测试执行、结果分析与调优、测试报告。如果你只是“听说过”性能测试遇到这道题很容易被带偏。3.3 测试流程与缺陷管理容易被低估的送分题测试流程这块很多科班学生学过软件工程但未必能把流程和测试工作结合起来。客观题喜欢考的点是“测试在软件开发流程中的介入时点”——早年间是瀑布模型测试在编码完成后才介入现在敏捷模式盛行测试从需求阶段就要开始介入。这题的“标准答案”通常是测试越早介入越好因为缺陷发现越晚修复成本越高。缺陷管理也常考尤其是缺陷的状态流转。比如一个Bug从提交到关闭经历的典型状态包括New新建、Open打开/确认、Fixed已修复、Closed关闭。如果在回归验证后发现修复不彻底则会从Fixed重新置为Reopen重新打开。这里有个细节很多人会忽略“缺陷单上的优先级和严重程度不是一回事”——优先级表示处理的先后顺序严重程度表示缺陷对系统的影响程度。有些bug严重程度很高但优先级很低比如一个不会触发的老旧功能挂掉了有些则正好反过来。客观题很可能给你一个例子问“应该把优先级设为高还是低”然后选项里混着严重程度的干扰。我在实际工作中也发现很多测试新人特别容易把这两个概念搞混提Bug的时候把“严重程度”和“优先级”填反了导致开发处理顺序不合理。所以这个考点不仅仅是笔试要拿分进入职场后也超级实用。4. 真题视角考场上的常见陷阱与实战策略4.1 客观题里最容易丢分的几类坑如果你是第一次参加这种校招笔试我建议你把下面这些坑提前记住能帮你省下不少钻牛角尖的时间。第一类坑是“多选题的少选漏选”。很多笔试系统对于多选的规则是“少选不得分”并不是选对一个给一半分。所以遇到多选题宁可少选一个不确定的也不要为了凑数去赌一个拿不准的选项。测试理论的多选题最爱在这种地方设埋伏尤其题干写的是“以下说法正确的是”然后给你四个看上去都挺有道理的选项。我的策略是四个选项中先把能100%确定的选上剩下那种半懂不懂的如果它看起来像“绝对化表述”一般不要选。第二类坑是“判断题的绝对化表述”。命题人特别喜欢把判断题的某个正确结论改写成绝对化表述然后让你判断对错。比如“只要自动化测试覆盖率达到100%就可以保证软件质量”明显是错的。这类题的解题思路很简单看到“一定”“必须”“只要……就”“所有”这类词第一反应就是找反例。找不到反例再判对通常能找到。第三类坑是“考场时间分配”。我前面提到客观题平均一道题只有一分多钟所以千万不要在一道题上死磕。遇到不会的先标记跳过去最后再回头慢慢想。360的客观题总量不算少如果每道题都磨蹭后面会的题反而没时间做特别亏。4.2 做客观题的节奏与技巧有些同学平常知识点都懂一到考场就手忙脚乱这里面有个重要原因是“读题不仔细”。客观题里的陷阱往往藏在题干细节里比如“以下哪一项不是……”的否定词或者“在最坏情况下”这种前置条件。我习惯先把题干的否定词用笔圈起来再去看选项能避免一半以上的低级错误。还有一个技巧就是利用“选项之间的逻辑关系”来辅助判断。多选题里如果两个选项表达的语义完全相同这俩通常都不会同时正确如果两个选项是完全相反的说法那至少有一个是对的。比如有一道题问“关于进程和线程的说法正确的是”选项A说“进程是资源分配的基本单位”选项B说“线程是资源分配的基本单位”那A和B必然有一个是错的——事实上进程才是资源分配的基本单位线程是CPU调度的基本单位。这两个概念绑在一起出题就是为了看你懂不懂这两个角色的差异。时间分配上我会先花5分钟快速浏览整张卷子把一眼就会的送分题先做掉把拿不准的标记出来。然后按照网络→操作系统→数据结构→语言→数据库→测试理论的顺序去做倒不是因为难易程度而是因为这些模块之间切换思考模式会有点累同类知识点连着做反而更顺手。最后留出10分钟专门用来检查刚才标记的题目和判断题。检查判断题的时候我会特别注意那些表述里带着绝对化词语的选项把之前犹豫的重新推一遍。4.3 踩过坑之后笔试后的复盘思路客观题考完之后不管你自我感觉是凉了还是稳了都建议趁热打铁做一轮复盘。我自己的习惯是从考场出来的那一小时内趁着记忆还清晰把不确定的题目拿手机备忘录记下来回去挨个查资料确认。笔试里的“不确定”往往就是你知识体系里最薄弱的环节这些点不补上面试还是会被问倒。比如我在做类似笔试的时候有一道关于“死锁避免和死锁检测区别”的题没选准回来翻了《操作系统概念》才发现死锁避免是在资源分配之前通过银行家算法判断是否安全而死锁检测是在死锁发生之后通过资源分配图来判断。这两者属于“事前预防”和“事后发现”的区别。这种复盘对我的帮助远比刷一遍错题大——因为它逼我把一个模糊的概念彻底搞清楚了。另外复盘的时候要特别关注“题干关键词和考点之间的关系”。比如看到“强一致性和最终一致性”要能立刻联想到CAP理论和分布式系统看到“白盒测试和黑盒测试”要能马上想到逻辑覆盖率和输入输出验证的区别。如果你能在复盘阶段把这种“关键词→考点→应用场景”的映射关系建立起来面试阶段也会明显轻松很多。5. 从客观题到真实岗位测试开发的学习路线与能力进阶5.1 校招客观题和真实工作的距离客观题虽然是校招筛选的一道门槛但你千万不要把它当成测试开发工作的全部。真实的测试开发日常远比笔试要复杂得多。笔试考的是“你知道什么”工作看的是“你能解决什么”。举个例子笔试里考“等价类划分和边界值分析”工作里你要在版本提测后面对几百个埋点、几十种用户状态、各种边界输入快速设计出能覆盖核心风险的用例。笔试里考“LRU页面置换”工作里你可能要排查一个服务内存持续增长的问题最终定位到某个缓存组件没有做淘汰策略。这两个场景的距离大概是“背书”和“行医”之间的距离。所以我的建议是笔试复习要有“向上追溯”的意识——每个知识点都问问自己“公司里这东西会用在哪里”。TCP状态和线上连接排查有关索引失效和慢查询优化有关死锁和数据库事务调优有关测试设计方法和版本质量保障有关。只有把知识挂在实际场景上面试官深挖你的时候你才答得上来。5.2 一套自洽的测试开发学习路线围绕校招客观题备考我整理了一条自认为比较高效的学习路线适合计算机基础一般或者非科班出身的朋友。第一阶段是“补地基”大概用两到三周。把计算机网络、操作系统、数据结构这三门课的系统性知识过一遍。这里不推荐直接啃大部头教材第一遍可以用网课入门重点是理解核心概念而不是背细节。比如网络先把TCP/IP四层模型搭起来再往每层填充协议操作系统先搞清楚进程线程、内存管理、文件系统三个大块。这个阶段的目标是“遇到名词不陌生”。第二阶段是“刷专项”大概用两到三周。集中在数据库SQL、编程语言特性和测试理论三块。数据库重点刷SQL题尤其是JOIN、GROUP BY和索引相关的题目编程语言认准一门Python或Java都行把垃圾回收、数据结构API、线程模型这些经典考题刷熟测试理论可以找软件测试的公开课或者教材把测试用例设计、缺陷管理、自动化测试、性能测试的基本概念系统学一遍。这个阶段的目标是“看到题目能判断考点”。第三阶段是“真题模拟”考前一周左右。严格计时做整套模拟题目标不是做对而是练节奏和心态。第一次做套题的时候你会发现时间根本不够用然后倒逼自己学会取舍。我当时练了三套题之后才把自己的做题顺序和时间分配稳定下来。这个阶段做错的题千万别只看答案就完事要回到第一阶段的教材里去把相关知识点重新理解一遍直到能用自己的话解释清楚为止。5.3 2023年之后的新信号AI辅助测试与全流程开发写到这里我想聊一点更有前瞻性的东西。最近几年测试开发这个岗位的边界在持续拓宽尤其是AI工具出现以后用AI辅助做需求分析、编码、测试已经变成了常规操作。甚至已经有团队尝试用AI从需求到设计到开发再到测试全流程地生成一个最小可用项目。笔试可能不会直接考你“如何用AI写测试用例”但面试官很可能问“你在实际项目里怎么用工具提效”。比如现在挺流行的AI编程工具可以用来做接口测试脚本的脚手架也能帮你自动生成大量边界测试数据甚至能根据一段需求描述直接生成测试用例草稿。注意AI生成的测试用例质量参差不齐你必须具备人工审查和补充的能力这就是测试开发的核心价值——不是会写脚本而是能判断哪些脚本有效、哪些用例是无效的。还有一个肉眼可见的趋势是上位机和硬件产品的测试需求。360有大量智能硬件业务这块的测试开发岗位和纯互联网软件测试很不一样它涉及设备通信、数据采集、协议分析。上位机通常是一个PC端的控制程序用来和嵌入式设备进行数据交互你要测试的就是这个上位机软件的逻辑正确性、稳定性、兼容性。这块在笔试里不会直接考但它代表了测试开发岗的多样性——越是业务多元的公司测试开发的日常越不像一个模子刻出来的。所以如果你还有时间别只盯着笔试那些概念。不妨动手做一个小项目哪怕是一个简化版的电商下单系统把需求分析、接口设计、开发、测试用例编写、自动化脚本、性能压测这个闭环完整走一遍。等你真正跑通一次全流程再回头看笔试那些测试理论题你会发现所有题目都变得非常有画面感选起来也自信得多。写在最后从笔试到offer的最后一公里客观题刷得再熟也只是拿到面试的入场券。测试开发岗的面试考察的往往是比笔试更贴近实际的东西——你做过的项目、遇到过的bug、定位问题的思路、对测试工具链的熟练度。客观题的复习本质上是给这些能力打底子它是地基不是高楼。我个人在实际操作中有一个很深的体会笔试复习阶段与其把自己埋在题海里不如拿出三分之一的时间去动手写点代码、写点测试用例、跑通几个自动化脚本。当你能亲手让一段代码按照预期运行、能让一个测试用例精准地发现一个隐藏Bug的时候那些客观题里的概念才算是真正长在了你身上。这也是我觉得测试开发这个岗位最有魅力的地方——它从来不是靠背答案就能做好的工作而是需要你不断地动手、验证、纠错、再验证。祝看到这篇文章的你笔试顺利面试顺利早日拿到心仪的offer。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门