
几年前我在团队里筛校招简历的时候发现一个很有意思的现象很多人简历上写着“熟悉软件测试流程”“掌握黑盒测试方法”但一到笔试环节就露馅遇到用例设计题只会写正常流程遇到编程题直接空白。反倒是那些看起来没那么花哨、但基础扎实的同学能在笔试里拿到不错的分数。所以当有人把“网易2018校园招聘测试工程师笔试卷”翻出来问我还有没有参考价值时我的回答是不但有而且很值得研究。这份卷子考的并不是什么偏题怪题而是测试工程师这个岗位最核心的底层能力——计算机基础、逻辑思维、编码能力、测试思维这些能力放到今天的AI测试、全栈测试、游戏测试等任何一个细分方向依然是决定你能不能入行的关键。这篇文章我不会去逐题背答案而是从这份笔试卷出发带你拆解大厂测试工程师校招笔试背后的考察逻辑、核心知识点、避坑经验以及从2018年到今天测试工程师这个岗位的能力要求发生了哪些变化。无论是正在准备校招的应届生还是想转行做测试的朋友都能从中找到可以直接实操的复习路径和方法。1. 这份笔试卷到底在考什么很多人对测试工程师笔试有一个误解觉得测试嘛无非就是考一些测试理论什么等价类划分、边界值分析背一背就完事了。但网易这类大厂的测试工程师笔试卷根本不是这么回事。它更像是一张“能力体检表”通过一套题同时考察你的计算机基础、逻辑推理、代码能力、测试敏感性甚至在题目编排上还暗含了你在压力下的取舍能力。1.1 笔试背后的能力模型如果我们把这套笔试试卷的考察点拆开来看大致可以分成四个层面我习惯叫它“测试工程师能力金字塔”。第一层也是最底层是通用计算机基础包括数据结构、操作系统、计算机网络、数据库。这一层考察的是你的大学专业课到底学没学扎实。有人会问测试工程师又不写框架为什么要懂这些道理很简单一个连TCP三次握手都说不清楚的人肯定无法深入理解接口测试中的超时问题一个不懂索引原理的人写SQL查一天也不会想到去explain看一下执行计划。这一层决定的是你的技术下限。第二层是测试专业技能包括测试流程、用例设计方法、缺陷管理、Linux命令、SQL操作等。这一层是测试岗位的“吃饭手艺”笔试中常见的设计测试用例题目、数据库查询题目考的就是这部分。第三层是逻辑思维与表达通常会以逻辑推理题、场景分析题出现。比如给你一个异常场景问你最可能的根因是什么或者给你一个产品功能让你列出所有可能的质量风险。这一层考察的不是记忆能力而是面对复杂问题时的拆解和推理能力。第四层是场景意识与风险判断这也是最容易被忽略的。笔试里有些题目看起来很简单但选项里藏着陷阱比如同一个功能在不同并发量下的测试策略是完全不同的能不能识别出这种差异决定了你是“执行型测试”还是“思考型测试”。1.2 为什么测试岗也要考算法和数据结构这是每年校招群里讨论最激烈的话题之一。我明确说大厂测试工程师笔试考数据结构并不离谱。至少有三个实际业务场景是直接相关的。第一个是测试数据构造。你在做接口测试或者功能测试的时候经常需要构造大量符合特定规则的数据如果不懂用哈希表去避免重复、用栈去处理嵌套关系你的造数脚本效率会非常低。第二个是性能测试和问题定位。做性能分析时你要能判断一个算法接口的时间复杂度是不是符合预期一个O(n²)的排序在数据量突然变大时会不会直接把服务拖垮这些都需要数据结构和算法基础。第三个是自动化测试代码本身。哪怕只是写一个UI自动化脚本当你面对成百上千个测试用例时怎么组织用例的执行顺序、怎么处理用例之间的依赖关系这些本质上还是数据结构的问题。所以笔试图里出现二叉树遍历、链表反转、排序算法复杂度这类题目不是为了难为你而是在检验你有没有能力处理真实世界中结构化的测试问题。1.3 2018年笔试试卷的难度定位从这几年来公开渠道能够看到的各种笔试回忆来看网易校招测试工程师笔试卷的难度定位大致介于“基础专业课期末考试”和“研发工程师笔试”之间但又有明显的测试特色。选择题分值占比不算低覆盖的知识面广但不会刻意深挖某个偏门的语法细节。编程题通常是一两道难度中等偏下但非常看重边界条件的处理。简答题和用例设计题才是真正的分水岭这类题没有唯一标准答案考察的是你能不能想得全面、写得清晰、考虑得深入。整张卷子的题量偏大很多人做不完这本身也是在筛选——当时间不够的时候你是选择放弃分值低的难题去保住能拿到的分还是死磕一道题导致后面全崩这个决策能力在真实项目当中同样重要。2. 典型知识点的考察方式和解题思路我翻了不少历年真题回忆结合我自己作为面试官出题的经验把网易测试笔试里最高频的知识点归纳成四大类逐个说说它们用什么样的方式考、需要怎么答才能拿高分。2.1 测试基础与用例设计题别只写正常流程用例设计题是测试工程师笔试的送分题也是拉分题。送分是因为基础分好拿拉分是因为高分不容易拿。这类题目通常会给一个功能描述比如“设计一个登录功能的测试用例”然后让你列出尽可能多的用例。很多人拿到题就写输入正确的用户名和密码登录成功。输入错误的密码提示错误。这两条写完之后就卡住了。这种答案只能拿基础分。真正的高分答案长什么样至少要覆盖以下几个维度功能维度正常流程、异常流程、分支流程参数维度必填项、可选项、长度边界、字符类型数字、字母、特殊字符、中文、SQL注入关键词交互维度键盘回车、Tab切换、粘贴与输入、大小写锁定状态维度账号锁定、密码过期、首次登录、异地登录、记住密码、找回密码安全维度密码明文传输、登录接口被暴力破解、验证码时效兼容维度不同浏览器、不同操作系统、不同分辨率我随便举一个会员登录功能的用例设计表格你可以参考这个思路去扩展用例编号测试点前置条件操作步骤预期结果TC01正常登录已注册会员密码正确输入手机号和正确密码点击登录登录成功跳转到首页TC02密码错误已注册会员输入正确手机号和错误密码提示“密码错误还可尝试4次”TC03密码连续错误5次已注册会员连续输入5次错误密码账号被锁定30分钟提示锁定时间TC04手机号格式错误无输入11位但首位为0的手机号提示“请输入正确的手机号”TC05密码边界长度无输入99位密码输入框限制最大输入位数或提示超长TC06密码含特殊字符无输入含单引号、双引号的密码能正常校验不触发SQL异常TC07空值校验无手机号或密码为空点击登录登录按钮置灰或提示请输入完整信息TC08密码框特性无观察密码输入过程中是否显示掩码默认掩码显示可手动切换明文写用例设计题的时候还有一个隐藏得分点格式。分点列条、编号清晰、覆盖维度标注明确会让面试官觉得你是一个有工程习惯的人而不是想到哪写到哪。2.2 数据结构与算法选择题稳拿基础分这部分题目不会出得太深主要考察经典数据结构的特性和常见算法的时间复杂度。栈和队列的区别及典型应用、二叉树的前序中序后序遍历、哈希表的冲突处理、排序算法最好最坏复杂度对比这几个考点几乎年年出现。给你一个复习切入口不要死记硬背结论要想清楚底层逻辑。比如为什么快速排序在平均情况下是O(n log n)但在已经有序的数组上反而会退化到O(n²)因为基准点选取策略导致分区极度不平衡。想清楚这个之后你再看“什么情况下应该用快排、什么情况下应该用归并”这个经典问题就会有自己的判断。再比如二分查找几乎每年都有题目涉及。它有两个高频陷阱一个是循环条件“left right”还是“left right”的区别另一个是mid的取值到底是向下取整还是向上取整。笔试里遇到的二分查找变体题很多都是在这两个细节上做文章。你复习的时候一定要把这两种写法的手动推演各跑一遍不要只是在IDE里跑通了就算会了笔试的时候大概率是要手写或者纸面推演的。2.3 编程题边界条件是最大的分水岭网易测试工程师笔试的编程题整体难度不高但非常看重代码的完整性和边界处理能力。常见的有字符串处理、数组操作、简单排序、链表反转之类的题目。我举一个典型的例子这道题在面试辅导中我讲过很多次给定一个整数数组将所有的0移动到数组末尾同时保持非零元素的相对顺序。题目要求在原数组上操作不开辟额外空间。很多人看到题目马上动手写写出来的代码大概是这样的public void moveZeroes(int[] nums) { int index 0; for (int i 0; i nums.length; i) { if (nums[i] ! 0) { nums[index] nums[i]; index; } } for (int i index; i nums.length; i) { nums[i] 0; } }功能上没问题但阅卷人会更关注另一些细节。比如如果数组为null会抛空指针异常吗刚进方法时要不要做空判断如果数组所有元素都是非0第二个循环不会执行任何操作这个性能损耗是否可以接受如果传入的数组是长度为0的空数组代码会不会崩这类边界条件在用例设计题里你是会考虑到的但在写编码题的时候很多人就忘了。这里我建议你养成一个肌肉记忆写完代码之后不管题目有没有要求都要在脑子里至少跑三组测试输入——空输入、最小输入、最大输入。2.4 数据库SQL与Linux命令测试的日常武器数据库和Linux是测试工程师日常工作使用频率最高的工具笔试中几乎必考。SQL题目最常见的考法是多表联查、分组统计、子查询。比如给你一张订单表和一张用户表要你查出每个地区下单量最高的用户。这种题目的考点其实就两个一是会不会用GROUP BY配合聚合函数二是能不能处理“每组取一条”这种典型的最值问题通常需要用子查询或者窗口函数ROW_NUMBER()。Linux命令题则集中在文件操作、进程查看、日志检索。高频命令包括ls、cd、cp、mv、rm、grep、awk、sed、find、ps、top、netstat、tail、head。其中grep和tail组合使用是排查线上问题的黄金搭档比如实时跟踪日志文件中的报错信息tail -f /data/logs/app.log | grep -i error笔试中如果考到Linux还有一个常见陷阱给出一个文件路径里面包含了带空格的文件名要求写出正确的删除命令。很多人会直接写rm /data/file name但实际上应该用引号包裹或者使用转义字符。这种细节看起来很小却非常能反映一个人有没有真正在服务器上干过活。3. 我整理的备战方法与实操记录很多同学备考校招笔试的时候最大的问题不是不努力而是不知道往哪个方向使劲。今天背牛客网上的选择题明天刷LeetCode看起来很忙但知识点是零散的上考场之后根本调动不起来。我自己带过几个校招生也帮学弟学妹们做过笔试辅导总结了下面这套复习框架。3.1 复习大纲和优先级排序按照“投入产出比”和“考察概率”两个维度我把测试工程师笔试的复习内容分成三个梯队。第一梯队是绝对核心必须拿到90%以上的正确率。包括测试用例设计、软件生命周期和测试流程、Linux常用命令、SQL增删改查与分组聚合、网络基础HTTP协议、TCP/UDP、DNS、常见排序算法和简单编程题。这一块占了笔试分值的60%以上而且大部分都是可以通过短期强化快速提升的。第二梯队是稳定拿分项包括数据结构基础、操作系统基础进程线程、内存管理、死锁、Python/Java基础语法细节、常见测试工具的原理比如Selenium、JMeter、Postman。这些内容不一定要做到每一题都秒答但至少要能判断每个选项的对错。第三梯队是拔高题包括逻辑推理题、shell和脚本编程、性能测试理论、安全测试基础、一些开放性的场景设计题。这一部分在笔试中占比不高但如果前面都答得好这些题能帮你拉开差距。我建议你备考的时候把第一梯队放在最前面第二梯队用碎片时间反复刷第三梯队量力而行。校招笔试不是高考不追求满分追求的是在有限的准备时间内拿到最高的总分。3.2 四周冲刺计划照着执行就行以四周为单位来安排比较合理。第一周主攻“计算机基础”重点过一遍数据结构、操作系统、网络的常考知识点配合选择题练习这周的产出是能把每个知识点的概念用自己的话讲清楚。第二周主攻“测试专业”把测试流程、用例设计方法、缺陷管理流程从头到尾整理成自己的笔记练习题以给功能模块设计测试用例为主这周的产出是完成至少10个功能模块的完整用例设计覆盖前面提到的所有维度。第三周主攻“编程和SQL”每天手写2道编程题重点练习字符串、数组、栈、队列相关的题目SQL每天做5道经典题坚持到周末你会明显感觉到写代码的手感回来了。第四周进入冲刺模拟阶段完整做3到4套历年真题严格按考试时间限时重点训练时间分配和取舍。有一点我想特别提醒你刷题过程中一定要建立自己的错题本按照“题目类型—错误原因—正确思路”三列来记录。错题本的价值不在于记录而在于复盘。你每周复盘一次你会发现很多错误其实是同一个底层原因导致的。3.3 考场时间分配与答题顺序测试工程师笔试题量通常比较大我的经验是拿到卷子先花1到2分钟快速浏览一遍全卷把题目按难度和熟悉程度分成三类一眼就会的、需要思考的、完全不会的。答题顺序上强烈建议先做简单题把稳拿的分数全部收入囊中。然后做需要思考的题目比如用例设计题和编程题。最后如果还有时间再去攻克完全不会的题目哪怕是根据常识猜一个答案也比空白要好选择题空着肯定没分填一个还有概率。编程题一定要预留足够的时间。很多同学前面选择题磨蹭太久到编程题只剩十分钟结果明明会做的题也没写完这是最可惜的丢分方式。我给自己定的规矩是开考后第一小时内必须完成所有会做的选择题和简答题第二小时专心攻克编程题和用例设计题最后留30分钟检查和填涂。4. 从2018年的笔试卷反观今天的测试工程师这张笔试卷放到今天很多人会问是不是过时了现在大家讨论的都是AI测试工程师、全栈测试工程师、游戏测试工程师笔试卷里考的还是数据结构、测试用例、SQL这些基础。但恰恰是这种“过时感”反而凸显了这份试卷的价值。4.1 为什么基本功永远不过时我见过不少测试同行工作几年后反而回头补数据结构、补网络基础。原因很简单当你用测试工具遇到疑难问题时最后能帮你定位问题的往往不是工具本身的操作技巧而是你对底层原理的理解深度。举个例子现在很多AI测试工具声称能自动生成测试用例但它生成的质量如何你拿什么标准去审查它遗漏了哪些边界这本质上还是你自己有没有掌握等价类划分、边界值分析的思维框架。同理现在自动化测试越来越普及但一个只会录制脚本回放、不懂元素定位原理、不懂等待机制的测试工程师和真正能写出稳定可靠的自动化测试框架的人差距就在计算机基础上。AI工具能做很多事情但无法替代你判断“这个用例有没有覆盖到核心风险”、“这个报错背后的根因是什么”。这些能力恰恰是笔试里那些看似基础的选择题和简答题在反复检验的东西。4.2 AI测试工程师与全栈测试工程师需要补什么从热搜词里就能看到测试行业正在向AI、全栈方向发展。所谓全栈测试工程师技术栈简单说就是既要懂前端页面的测试也要懂后端接口的测试还要懂数据库、中间件、容器、CI/CD流水线的搭建。这套技术栈看起来很庞大但如果你回头看那份2018年笔试卷你会发现里面的计算机基础、SQL、Linux知识恰恰是全栈技术栈中最底层的两块基石。你在笔试图里会做二分查找和链表反转那么你学习Docker、Kubernetes时理解容器编排的数据结构逻辑就会更快你在笔试图里会写SQL关联查询那你做接口测试时验证数据库落库就会更熟练。AI测试工程师的兴起也不是在颠覆基本功而是在基本功之上叠加了新的能力维度比如模型评测指标的理解、数据质量的校验、Prompt调优、AI辅助测试用例生成等。这些新技能和基本功是叠加关系不是替代关系。一个不懂软件测试流程的人直接上手AI测试大概率只能停留在“让AI帮我生成几个用例”的浅层使用上很难真正深入进去。4.3 游戏测试工程师的特殊能力要求网易是游戏大厂所以它的测试工程师笔试偶尔会带一点游戏特色。游戏测试和传统软件测试最大的区别在于它不仅关注功能正确性还高度关注用户体验、数值平衡、服务器性能、多端兼容。比如一个常见的游戏测试考题方向在一个多人在线游戏中你如何设计一个关于“断线重连”的测试方案这个问题至少牵扯到网络异常处理、状态同步、数据一致性、安全性防止断线期间被攻击等多个维度。再比如一个游戏商城上线了新的限时折扣活动测试设计需要关注的点可能包括折扣价格计算在不同货币种类下是否正确、限购数量在多人同时抢购时会不会超卖、活动时间切换时玩家在线会不会出现状态异常、和已有的优惠券、满减活动之间的叠加规则是否正确。这些场景题考的画面感很强但底层用的依然是测试用例设计、数据库一致性、性能并发这些基本功。如果你投的是游戏公司的测试岗位建议在备考时额外准备一些游戏特有的测试场景比如数值计算、随机概率验证、弱网下的表现、长时间在线是否有内存泄漏、不同机型下的帧率稳定性等。写在最后几个我踩过的坑最后分享几个我在准备测试笔试、以及后来帮团队面试校招生时经常看到的坑说句实话每一个都是真实的血泪教训。第一个坑是背题代替理解。有一年我面试一个同学把测试用例设计方法背得滚瓜烂熟但当我给他一个“用户上传头像”的功能让他现场设计时他连“图片格式边界”和“超大图片上传”这两个最基本的点都没想到。背书只会让你通过及格线绝对拿不到高分。第二个坑是只刷不做。编程题光看题解觉得自己会了一上考场手写就露馅。手写代码没有IDE的自动补全和实时语法高亮字母写错、分号漏掉、括号不匹配这些低级错误会被无限放大而且自己检查不容易看出来。所以备考后期一定要模拟考试的纸笔状态或者用不带补全的编辑器限时练习。第三个坑是把用例设计题答成了纯步骤列表。用例设计不是把测试步骤写出来就完了你要明确标注测试点、前置条件、输入数据、预期结果、优先级。一张规范但内容简洁的表格哪怕覆盖的用例数量少一些也比一份密密麻麻但逻辑混乱的纯文字描述更能赢得阅卷人的好感。第四个坑是忽视时间分配。很多人觉得编程题分值高一上来就死磕最后导致选择题都没时间做。要知道选择题可能只有1分1道但一道编程题也未必能完全跑通所有测试用例。性价比最高的策略永远是先把确定的分数拿到手再去啃硬骨头。这份2018年的笔试卷放到今天依然是一份很好的复习提纲。拿它来练手、拆解、复盘你会发现自己对测试工程师这个岗位的理解一下子变得清晰起来。练完之后再去看看AI测试、全栈测试、游戏测试这些新方向你会发现很多看起来高深的东西底层其实就是这些基础能力在新场景下的重组和升级。校招笔试只是起点往后的路还很长但第一步踩稳了后面的路就好走了。