“测试开发工程师在网易笔试里到底考什么”,这个问题我每年都会被问很多次。你可能已经在牛客、知乎上翻过不少面经,但大部分帖子都在堆题目,很少讲清楚笔试背后的筛选逻辑。这篇我就以网易2023校招提前批测试开发岗笔试为样本,把考核维度、典型题型、备战方法和踩坑经验一次讲透,让准备校招或者刚转行过来的朋友少走弯路。
先说结论:网易测开笔试的难度属于中上梯队,不像纯后端那样死磕算法,但覆盖面极广——计算机基础、代码能力、测试思维、产品理解全都要看。换句话说,它筛的不是“会做题的人”,而是“适合做测试开发的人”。理解了这句话,你准备笔试就不会再盲目刷题了。
1. 网易测开笔试的底层逻辑:它到底在筛选什么样的人
1.1 岗位认知:测试开发不是纯功能测试,也不是纯开发
很多同学对测开岗位有误解,以为就是写用例、点点点、报bug。实际上,网易这类大厂的测试开发岗,工作内容至少包含几个层面:
- 业务质量保障:对具体的产品功能做测试方案设计、用例编写、缺陷跟踪。
- 测试工具与平台建设:开发自动化测试框架、性能压测工具、CI流水线中的质量门禁。
- 研发效能提升:把测试能力沉淀为平台能力,让开发团队自己也能跑测试。
- 线上质量运维:监控、日志分析、故障定位,甚至参与稳定性治理。
所以笔试不会只考“如何设计登录用例”,也不会只考“手写快排”,它会把两者揉在一起。你要展现出的是“既有代码手感,又有质量意识”的复合型素质。
1.2 笔试的考核维度拆解
我根据往年真题和大厂通用的出题逻辑,把考核点分成四个维度:
| 维度 | 考点内容 | 大致占比 | 考察目标 |
|---|---|---|---|
| 通用基础 | 数据结构、算法、计算机网络、操作系统、数据库 | 30%左右 | 计算机基本功是否扎实 |
| 测试专业知识 | 测试理论、用例设计、测试流程、质量保障体系 | 25%左右 | 是否理解测开的核心职责 |
| 编程与实操 | 手写代码、算法题、SQL、Linux命令 | 30%左右 | 是否具备实际干活的能力 |
| 逻辑与产品思维 | 场景分析、发散思维、开放题 | 15%左右 | 是否具备工程判断力 |
这个比例不是绝对的,每年都会微调,但它体现了笔试的基本思路:基础决定下限,测试思维决定匹配度,代码决定上限。
2. 高频知识点与备战清单:这些内容必须拿下
2.1 计算机基础:计网、操作系统、数据库是重灾区
网易笔试的选择题和填空题,特别喜欢考计算机基础。这一块准备起来最枯燥,但得分也最稳定。很多同学栽在细节记忆上,我只挑出高频考点来说。
计算机网络重点看这几个方向:
- TCP三次握手、四次挥手的状态变迁,特别是TIME_WAIT的作用,以及为什么是2MSL。考题常以“描述一次完整连接建立与断开过程”的变体出现。
- HTTP与HTTPS的区别、HTTP各版本特性(1.0、1.1、2.0),以及常见状态码的含义,301/302、401/403、500/502这些要能脱口而出。
- Cookie与Session的区别、Token机制,这与接口测试的鉴权设计直接相关。
- DNS解析流程,从浏览器缓存到本地DNS服务器到根服务器的完整过程,偶尔会考。
操作系统要重点复习:
- 进程与线程的区别、进程间通信方式(管道、消息队列、共享内存、信号量、socket)。
- 死锁产生的四个必要条件:互斥、请求与保持、不可剥夺、循环等待,以及对应的预防策略。
- 虚拟内存、分页分段、页面置换算法(LRU、FIFO、Clock)。
- 用户态与内核态的切换、阻塞与非阻塞IO的概念。
数据库更侧重于实操能力:
- SQL中的多表联查、分组聚合、子查询,特别是LEFT JOIN和INNER JOIN的区别,笔试题里几乎每年都有。
- 索引的底层结构(B+树)、最左前缀原则、索引失效的常见场景,比如对索引列使用函数、隐式类型转换会导致索引失效。
- 事务的ACID特性,隔离级别与脏读、不可重复读、幻读的对应关系。
- 经典的三范式概念,以及反范式设计在查询性能优化中的应用。
这块复习我建议直接以面试题集为纲,把“概念+例子”成对记忆,因为笔试题很少只考名词解释,都是给一个场景让你判断或选择。
2.2 数据结构与算法:不追求竞赛难度,但要“稳、准、快”
测开笔试的算法题,普遍比后端开发略简单,但别高兴太早。它往往不是标准的LeetCode原题,而是加了工程场景的变体。我见过网易考过这些类型:
- 数组与字符串处理:去重、排序、滑动窗口、双指针。
- 链表操作:反转、判断环、找到倒数第K个节点。
- 栈与队列:括号匹配、单调栈、用两个栈实现队列。
- 二叉树:层序遍历、最近公共祖先、路径总和。
- 哈希表:两数之和、字母异位词分组。
- 动态规划:爬楼梯、最长公共子序列、零钱兑换。
我建议你把题量控制在每天3到5道,覆盖面比难度更重要。leetcode上把“hot 100”刷两遍,应付测开笔试足够。关键是速度要练上来,笔试总时长有限,留给代码题的通常是40到60分钟,写不完基本就废了。
2.3 测试理论与质量保障体系:不能只会背概念,要会活用
这部分是测开岗区别于其他技术岗的核心区分点。常见的考法有:给出一个需求/功能,让你写出测试方案;给出一个bug现场,让你推测原因和定位路径;给出一个发布场景,让你评估风险和制定测试策略。
必须掌握的基础理论包括:
- 软件测试的生命周期:需求评审、测试计划、用例设计、执行、缺陷跟踪、测试报告。
- 黑盒测试方法:等价类划分、边界值分析、因果图法、判定表法、正交实验、场景法。
- 白盒测试方法:语句覆盖、分支覆盖、条件覆盖、路径覆盖,以及它们之间的强弱关系。
- 测试金字塔:单元测试、接口测试、UI测试的比例关系。
- 缺陷报告的核心要素:标题、环境、前置条件、复现步骤、预期结果、实际结果、严重程度、优先级。
但光背这些不够。笔试真正拉开差距的,是你能不能把方法灵活套用到具体场景里。比如“等价类划分”不是让你背定义,而是能熟练地把一个输入框拆成有效等价类和若干无效等价类。
3. 测试用例设计与场景题:从小白到“有章法”的回答
3.1 经典题目拆解:登录功能测试用例设计
登录功能是笔试题里的“钉子户”,基本上每个测开面试者都会遇到。我见过很多人一上来就写“输入正确的账号密码点登录按钮,应该能登录成功”,这种回答只能拿个基础分。
一套高分的登录测试方案,应该遵循这个思路:
- 功能维度:正常的账号密码登录、验证码登录、忘记密码、记住我、第三方授权登录。
- 输入维度:从等价类和边界值出发,账号的合法字符类型(数字、字母、下划线等)、长度边界,密码的大小写敏感性、特殊字符处理,前后端长度限制是否一致。
- 异常场景:账号不存在、密码错误超过N次触发锁定、用户被禁用、账号已注销、验证码过期、网络超时、断网重连。
- 安全测试:SQL注入(输入框传特殊字符)、暴力破解防护、密码传输是否加密(HTTPS)、是否返回了敏感字段、同一账号多地登录。
- 兼容性:不同浏览器、不同机型、不同分辨率下的表现。
- 性能角度:高频点击是否会导致重复提交、并发登录是否有锁机制。
你看,这六七个维度下来,答案的丰满度立刻不一样了。关键在于你要有一个固定的“测试思维框架”,而不是靠临场硬挤。
3.2 其他高频场景题:购物车、支付、文件上传
除了登录,还有几个高频场景题值得提前准备。我分别给一个回答框架,你拿回去练熟。
购物车功能:从加入购物车、修改数量、删除商品、勾选结算、价格计算、库存校验、优惠券叠加这几个核心动作展开。注意并发场景,比如同一商品在秒杀场景下被多人同时添加,以及库存临界值时的超卖问题。
支付功能:支付流程的测试要抓住几个关键点:支付成功的回调与通知、支付中取消、支付超时、重复回调(幂等性)、退款流程、金额精度(分为单位)、并发下的余额校验。还要考虑“支付成功但订单状态未更新”这类对账异常。
文件上传:要关注文件格式、大小、名称(包含特殊字符、超长文件名)、上传中断与断点续传、病毒扫描、存储路径的安全性(防止路径穿越)、并发上传。上传功能经常和性能测试挂钩,尤其是大文件场景。
3.3 回答场景题的“万能结构”:一法打通所有题目
我总结了一套回答场景题的思路,你只要按这个顺序组织答案,基本不会漏点:
- 先确认功能需求和使用对象,明确核心流程是什么。
- 用场景法画出主要链路和异常链路。
- 按功能、输入、异常、安全、兼容性、性能、易用性逐层展开。
- 每个维度下用等价类和边界值细化用例。
- 最后补充你对自动化测试的考虑,哪些用例适合回归时自动执行。
这套结构几乎可以套用在任何功能测试设计题上。笔试时时间有限,不需要写得极其详细,但结构清晰、覆盖度高、有质量意识,就已经超过80%的候选人了。
4. 把“上位机开发测试”思维带入笔试:软硬结合的场景能力
4.1 什么是上位机,为什么测开要懂一点
我看这次搜到“上位机开发测试”这个热词,就多说一句。上位机通常指PC端或服务端的控制/监控软件,用来与下位机(单片机、PLC、嵌入式设备)通信并展示数据。网易旗下有智能硬件、IoT相关业务的话,测试开发就可能面临这类场景。
这类测试和纯Web测试相比,有几个特殊之处:
- 通信协议测试:串口(UART/RS485)、TCP/UDP、Modbus、MQTT等协议的数据解析与异常处理。
- 时序与实时性:数据上报频率、命令下发延迟、断线重连机制。
- 硬件状态模拟:可能需要用模拟器或Mock设备,模拟信号异常、掉电、弱网等场景。
- 数据一致性:设备端数据、上位机展示数据、云端数据库三者是否一致。
如果笔试遇到类似场景题,你只要抓住“协议、时序、异常、一致性”这几个关键词,就能体现出你比纯写Web用例的同学多了一层认知。
4.2 接口测试与抓包分析:测开的基本功
除了功能测试设计,网易笔试还喜欢考接口相关题目,常见形式是给你一个接口文档(URL、请求参数、返回值),让你写测试方案或者找bug。这里需要熟练掌握:
- 请求方法GET/POST/PUT/DELETE的语义和区别。
- 常见的HTTP请求头与响应头,Content-Type、Authorization、Cache-Control、Set-Cookie。
- 鉴权方式:Cookie/Session、Token(JWT)、OAuth2.0的基本流程。
- 接口测试的断言维度:状态码、业务码、响应数据、响应时间、幂等性。
- 状态码和业务码不一致的场景如何处理,比如HTTP 200但业务code为5001代表参数错误。
如果你能在回答中自然地带出“会用Charles或Fiddler抓包分析问题”,以及“通过接口文档做入参校验和异常场景枚举”,印象分会明显提升。
5. 代码题实战:从审题到AC的完整套路
5.1 代码题的类型与答题节奏
网易测开笔试的代码题一般是两道或三道,难度递进。第一道通常是很简单的字符串或数组处理,第二道是常规的数据结构题,第三道可能是带业务背景的模拟题或动态规划。做题节奏建议:
- 先快速扫一遍全部题目,评估难度。
- 优先做思路明确的题,不要在第一题上花太久纠结最优解。
- 每道题先写暴力解法拿到部分分数,再优化,因为笔试判题往往按用例给分。
- 如果时间紧张,保证代码能通过示例用例,同时把边界情况处理写清楚,也能拿不少分。
5.2 真题向练习题:以“字符串压缩”为例
我拿一道很典型的题来演示整个答题过程,题目大概是这样的:
给定一个字符串,将连续重复出现的字符压缩成“字符+出现次数”的形式,例如“aabcccccaaa”压缩后变成“a2b1c5a3”。如果压缩后的字符串长度不小于原字符串长度,则返回原字符串。
第一步是明确需求:压缩规则、边界条件、返回值。第二步是设计算法:一次遍历,用一个计数器记录当前字符的连续出现次数,当字符变化时拼接结果。第三步是写代码,我用Python演示:
def compress_string(s: str) -> str: if not s: return s res = [] count = 1 for i in range(1, len(s)): if s[i] == s[i - 1]: count += 1 else: res.append(s[i - 1] + str(count)) count = 1 res.append(s[-1] + str(count)) compressed = ''.join(res) return compressed if len(compressed) < len(s) else s你注意我在返回时判断了“压缩后长度不小于原长度则返回原字符串”,这个细节就是典型的边界条件处理。笔试时很多人会漏掉这个条件,白白丢分。
另一个常见的坑是“连续超过9次”的情况,比如“aaaaaaaaaa”压缩成“a10”,如果约定不使用分隔符,解析时就要考虑多位数。如果笔试题没明确说明,可以在答题时备注你的假设。
5.3 一道典型的“测试思维代码题”
网易还喜欢出“找出函数中的bug”或“补充完整代码”这类题,这就非常考察测试思维了。我见过一道很经典的题:
下面是二分查找的代码,请找出其中的bug。
def binary_search(arr, target): low, high = 0, len(arr) - 1 while low < high: mid = (low + high) // 2 if arr[mid] < target: low = mid + 1 else: high = mid return low if arr[low] == target else -1这段代码实际上是能找到target的,但要注意它是“查找左边界”的写法。如果数组中有重复元素,返回的是第一个等于target的索引,而不是任意一个。此外问题在于:当数组为空时,len(arr) - 1是-1,循环体不会执行,但后面直接访问arr[low]就会越界。
这类题目考察的不是“能不能写对算法”,而是“能不能像测试工程师一样审查代码”。所以你在准备代码题时,不仅仅是AC就完事,还要思考:边界条件是什么、异常输入会怎样、有没有更隐蔽的问题。这才是测开笔试的正确打开方式。
6. AI时代的新变化:测开笔试也在悄悄升级
6.1 用AI工具跑通“需求-设计-开发-测试”全流程的启示
这几年AI辅助开发工具越来越强,网上甚至有人用AI工具从一个想法直接跑出“需求文档、概要设计、代码实现、测试用例”的全套产物。这个趋势对测开笔试的影响已经在显现:出题人开始考察候选人对AI工具的理解和质疑能力。
我判断未来笔试会出现更多这类题目:
- 给出一个AI生成的测试用例,判断它对不对,有没有遗漏关键场景。
- 让候选人写一段Prompt,用于生成某个功能的测试用例。
- 给出AI生成的代码和“分析报告”,让候选人评估哪些部分可信,哪些部分需要重点验证。
这背后的逻辑是:AI能帮我们做很多重复性工作,但测试工程师的核心价值变成了“判断AI产出的质量”和“设计AI难以想到的异常场景”。
6.2 AI测试与传统测试的差异点
如果笔试问到你“AI相关功能如何测试”,不要慌,回到测试的本质来回答:
- 模型输入输出的边界:格式、长度、类型、语义边界。
- 不可解释性:AI返回的结果可能没有“标准答案”,怎么定义“正确”?
- 提示词注入问题:用户故意构造恶意输入,绕过安全限制。
- 模型降级与容错:服务超时、模型不可用时的兜底逻辑。
- 内容安全:生成的内容是否符合平台规范,是否涉及隐私信息泄露。
在回答这类问题时,思路是:把AI当做一个复杂系统,用传统的测试方法去覆盖它,同时补充AI特有的不确定性带来的测试策略变化。核心方法论不变,变化的只是被测对象的属性。
6.3 “AI自动化生成测试用例”的实测体验
我自己尝试过用AI生成测试用例,效果确实比我预期好很多——它能在几秒钟内写出几十条基础用例,覆盖了正常的等价类和边界值。但它的问题也很典型:生成的用例经常“逻辑正确但脱离业务”,比如它知道登录要测密码错误、账号锁定,但它不知道这个产品的账号类型分几种、VIP用户和非VIP用户的差异在哪、不同用户角色的权限边界是什么。
这个观察也值得你在笔试里体现出来:你了解AI能干什么,也知道它干不了什么,以及如何把人机协作嵌入到测试流程中。这种认知差,才是AI时代测开岗位真正的护城河。
7. 常见问题与笔试避坑指南
7.1 这些坑,我在带人准备笔试时见得太多了
第一坑:只看面经,不做题。面经能让你知道考什么,但代替不了亲手做题。每年都有人面试时感觉“这题我看过”,但一上笔就写不出来。看题和写题之间隔着十万八千里。
第二坑:大题答得太简略。场景设计题只写三五行,完全没有展开维度。记住,笔试的给分点是“采点得分”,你多写一个维度,就多一个得分点。前提是别写成流水账,要有结构。
第三坑:代码题不检查边界。测开笔试的代码题,判题用例里一定有“空数组”“0”“负数”“超大数”“重复元素”这些边界用例。你即使核心逻辑写对了,边界漏一个就可能直接TLE或WA。
第四坑:时间分配崩盘。笔试通常是一个半小时到两个小时,前面的选择题如果犹豫太久,后面代码题必然写不完。我建议选择题每题不超过1分钟,没把握的先标记跳过,最后有时间再回来纠结。
7.2 多条实用的笔试技巧,直接照抄
到这里,我再分享几个可以立刻用起来的小技巧:
- 提前熟悉在线笔试平台的界面和代码编辑器,别在考场上找“运行”按钮。
- 代码题先用示例用例现场跑通思路,再写完整代码,别一上来就写复杂解法。
- 场景设计题写“一句话结论+维度拆解+关键用例举例”的结构,阅卷体验会好很多。
- 注意题目中是否区分“测试用例”和“测试点”,前者需要写前置条件、步骤、预期结果,后者只需要列出覆盖场景,别用错格式。
- 遇到不会的开放题,写“我理解的思路是……”也比不写强,测开笔试一定程度看的是思维过程。
我个人习惯是,笔试前把最近半年刷过的错题和易混淆概念集中过一遍,尤其是那些“记得但不牢”的细节,比如TCP状态码的迁移、SQL聚合函数的嵌套规则、HashMap的扩容机制。因为这些内容选择题里很爱考,又很容易在一两个选项上让人模棱两可。
测开笔试的题量不小,但难度分布是合理的。你不需要所有题都会,只需要把基础题稳稳拿到手、把场景题写出结构、把代码题保AC一道以上,结果就不会差。把精力放在刷熟基础知识、练透题型结构、提前适应笔试节奏这三件事上,网易测开提前批这一步,你完全可以稳扎稳打走过去。