2026/9/1 1:14:16

爱奇艺测试开发校招笔试复盘:从题型拆解到测试思维养成

爱奇艺测试开发校招笔试复盘:从题型拆解到测试思维养成 看到这份试卷的时候我其实刚被上一套在线笔试折磨完心态还没完全稳住就进来了。很多同学第一次实际接触测试开发的校招笔试题普遍反馈是蒙——不是题难到做不出来而是它和你之前刷的LeetCode套路不太一样一大半题目在考给你一个功能你准备怎么测剩下的一小半才是传统算法题。这篇复盘我按当时的做题顺序和思考过程展开把每一类题目背后的筛选逻辑讲透顺便说说哪些坑是我自己踩过、也见过周围同学反复踩的。如果你正在准备测试开发方向的校招这份拆解希望你能少走点弯路。1. 拆题之前这份考卷到底在筛选什么样的人先说一个可能被很多人忽略的背景爱奇艺这类视频平台测试开发岗位的工作内容和你想象中的点点点完全不一样。视频业务涉及播放器内核、会员体系、推荐系统、弹幕、直播、广告投放、大数据分析等一堆模块测试开发要做的是把测试过程自动化、平台化、智能化——你可能会去搭自动化测试框架会去写性能测试脚本会去做接口测试平台甚至会参与到代码 review 和单元测试补全里。所以笔试不会只考会不会写代码它还要看你的测试思维、问题拆解能力、对边界条件的敏感度以及面对复杂业务场景时能不能快速理出头绪。当时这场笔试我印象比较深的有三点第一时间给得不算宽裕题量却不少客观题、编程题、测试设计题都有第二编程题本身难度不算高但是对输入输出格式的要求很严格字符串和边界条件处理不仔细很容易出事第三测试设计题占比非常重而且不是那种背背概念就能答的题目它给的是贴近业务的具体场景。后来我复盘才意识到这张卷子本质上在筛查三种人基础扎实的、有测试思维的、能扛住压力把题做完的。还有一个细节试卷写了第二场说明它是有多套题目的。这种设置一方面是为了防止泄题舞弊另一方面也说明出题已经流程化、题库化了。这意味着你没法靠押题只能靠能力。好在它考察的方向是稳定的算法基础、计算机基础、测试理论、业务分析。把这几块吃透不管抽到的是第几场差别都不大。1.1 从岗位画像反推考卷逻辑很多人准备测试开发岗位思路还是照着开发岗的算法八股文去刷这是最大的误区。测试开发虽然带开发两个字但核心依然是测试代码能力是工具测试思维才是根本。所以你要同时准备好两套知识体系一套是数据结构、操作系统、网络、数据库这些硬基础另一套是测试用例设计、Bug 生命周期、自动化测试框架、接口测试、性能测试这类专业内容。从岗位画像反推考试逻辑你会发现它的题目配置是刻意设计过的。客观题筛基础编程题筛代码能力测试设计题筛专业素养和业务敏感度。任何一项有明显短板总分都会被拉下来。我当时看到好几个算法刷得很溜的同学笔试反而没过为什么因为测试设计题写得太空每个题就写两三行看起来像是没做过测试的人硬凑出来的答案这种人就算代码写得好公司也不敢收。1.2 在线笔试环境的隐性考验还有一点容易被忽视笔试环境本身就是一个筛选器。爱奇艺用的是在线笔试系统代码题需要自己处理输入输出不能用本地 IDE 的调试功能而且有的题目要求不能用浏览器切出去查资料。这种环境下拼的就不只是会不会而是熟不熟。很多在本地能跑通的代码一换到在线环境就可能因为格式问题得零分——这类教训见得太多了。我自己的习惯是牛客网和各类在线判题系统的输入输出格式在正式笔试前一定要大量练习。尤其是处理多行输入、字符串包含空格、用空行分隔用例这类情况光靠本地跑通远远不够。笔试现场没有人帮你调格式问题你只有一次提交机会。2. 选择题高频区计算机基础与测试理论的博弈客观题部分爱奇艺这类中大厂基本不会出偏题怪题考察的依然是那些老八股但角度会更贴近业务场景。比如计算机网络不会直接问你TCP 三次握手是什么而是给你一个视频卡顿的场景让你判断跟哪些因素有关。这时候你要是只背了概念不会迁移照样做不对。2.1 数据结构和算法基础分不能丢选择题里的数据结构考得比较常规栈和队列的特性、二叉树的各种遍历方式、常见排序算法的稳定性和时间复杂度这些都是高频中的高频。我的建议是别瞧不起这些基础题它们往往是最能拉开差距的地方。有些人刷题刷多了觉得基础概念简单考试时反而大意失荆州。举个例子排序算法那一类题目几乎每次笔试都会出现比如下列哪个排序算法的时间复杂度是 O(n log n)或者以下哪种排序是稳定的。你以为很简单但它其实在考你对算法本质的理解。比如快速排序在平均情况下的时间复杂度是 O(n log n)但在已经完全有序的数组上如果选的基准值不当它会退化到 O(n²)——这种细节如果你只背了快排时间复杂度是 O(n log n)而没有真正理解它的 partition 过程遇到变体题就会慌。我的复习思路是把常用排序算法的代码自己手写一遍然后画图走一遍流程搞清楚每个算法的比较次数和移动次数在不同数据分布下有什么差异。这样做一遍之后选择题基本不会再丢分而且对后续的编程题也有帮助。2.2 计算机网络与操作系统视频场景下的经典陷阱网络部分是爱奇艺这类视频公司笔试的重头戏。HTTP 状态码、TCP 握手挥手、DNS 解析、HTTPS 加密流程这些都要熟。但我建议你不仅要知道概念还要能结合视频播放的场景来理解。比如 301 和 302 的区别在视频里就有很典型的应用场景。资源地址迁移了应该返回哪个状态码CDN 防盗链、跨域请求、预加载这些在视频网站里都是日常操作。我当时看到一道题说用户在播放视频时拖动进度条到未下载部分播放器应该做什么请求——这背后就是 HTTP Range 请求的知识点也涉及服务器对 Range 头的支持。这种题目如果只背网络分层模型不太容易答对。操作系统选择题里进程和线程的区别是必考的死锁的四个必要条件也是高频。但在测试开发的笔试卷里它还会往测试方向延伸比如问你在多线程场景下如何保证数据一致性或者如何设计并发测试用例。这其实是在暗示你即使当测试也要懂并发编程因为你以后要测的接口和系统到处都是并发的。2.3 SQL 和测试理论看起来能拿分实际上容易丢分数据库的选择题主要考察索引、事务隔离级别、SQL 语法这部分整体不难但细节陷阱很多。比如 SQL 里 COUNT(*) 和 COUNT(字段) 的区别NULL 值的处理LEFT JOIN 和 INNER JOIN 的结果差异。一个小建议是不管笔试考不考手写 SQL你都要能把常用的增删改查、聚合查询、分组过滤写得又快又对。测试开发工作中造测试数据、校验测试结果、排查线上问题哪一步都离不开 SQL。测试理论基础大家都会去背但真正做题时很容易暴露知识靠记忆而非理解的问题。比如问等价类划分和边界值分析的区别很多人会背定义但给你一个用户输入密码长度为6~16位的功能你真能完整地把有效等价类、无效等价类、边界值都列出来吗很多人做不到。这里分享一个答题模板客观题中遇到测试概念题先判断它考的是定义还是应用。如果考应用先在心里把被测功能拆成输入、处理、输出三步再套概念准确率会高很多。3. 编程题测试开发笔试里的代码考点怎么抓编程题是多数人最紧张的部分但测试开发的编程题和开发岗有个明显区别——它很少考特别冷门的算法更多是考察基本功和代码的严谨程度。字符串处理、数组操作、链表、哈希表、排序基本就围绕这些。在线笔试的编程题有一个特别现实的挑战本地 IDE 有代码提示、有编译器报错、可以随时 print 看中间结果在线系统却要求你在没有反馈的情况下写出正确的代码。尤其是很多题目要求从标准输入读数据、把结果打印到标准输出格式错一个字符就是零分。我见过太多人在笔试题上浪费大量时间调输出格式最后没时间做测试设计题的。所以平时训练一定要刻意练习一次性写对、不依赖调试的能力。3.1 高频题目类型字符串与数组的边界感从历年测试开发笔试题来看字符串类的题目出现频率极高比如最长无重复子串、判断回文、字符串匹配、大数相加等。不是我猜测而是业内几大公司测试开发岗位的笔试题里这类题都是常客。为什么会这样因为字符串处理的边界条件特别多空串、单字符、全相同字符、包含空格、包含特殊字符、超长字符串每一种情况都可能让程序崩溃而这正好能筛选出对边界条件敏感的人——这种敏感恰恰是测试最需要的品质。我记得有一次练题题目要求计算一个字符串里第一个只出现一次的字符。很多人用哈希表统计思路没错但写法上忽略了一个问题当字符串很长哈希表统计完一遍之后还要再遍历一遍字符串才能找到第一个出现次数为1的字符——第二轮遍历时你是该遍历原字符串还是遍历哈希表的键这直接决定了答案对不对。这种细节不仅笔试考实际工作中写脚本处理测试数据也会遇到。数组类的题目相对友好但依然有它的小陷阱。比如数组下标越界比如在循环里删除元素导致指针错乱。给测试开发同学的建议是写循环时先把循环条件想清楚是 i len 还是 i len - 1边界差一个数就会出问题写完后用0、1、2、最大值几组数据在脑子里过一遍很多 bug 就能提前发现。3.2 时间复杂度和优化暴力解法到底能不能用笔试现场还有一个争议问题我只会暴力解法能得分吗我的经验是能得分但拿不满。在线笔试的判题维度通常是运行时间和内存占用暴力解法在小数据量下能通过一部分测试用例但大规模数据下会超时。所以你得有一个基本判断根据数据范围决定用什么算法。比如看到数组长度 n 10^5O(n²) 的暴力基本就不要想了大概率超时得准备 O(n log n) 或 O(n) 的解法。看到 n 500暴力可能还能过。测试开发的编程题不像 ACM 那么极限数据范围一般不会太夸张但你要养成先看数据范围再动手的习惯。我自己的做题顺序是先确认题目需要的时间复杂度级别然后快速构思最直接的解法先保证功能正确再考虑能不能优化。如果题目明确要求尽量降低时间消耗我会直接写高效解法如果只是一般的功能题简单直观的解法反而更安全因为越复杂的代码越容易在笔试环境下出错。3.3 给自己的代码写用例测试开发笔试的独门加分项这是我想特别强调的一点。普通开发做编程题写完代码就提交了测试开发不行你得多做一步在提交前用几组测试数据检查自己的代码。这个习惯在笔试中是能救命的。我当时做题的习惯是代码写完后先在注释区域列出我想到的测试用例包括正常输入、空输入、最小值、最大值、重复元素、包含空格等然后用这些用例在脑子里走一遍代码逻辑。走查发现的问题比编译器报错发现的问题还要多。笔试编程题写完如果还有富余时间我会把关键用例作为注释写在代码后面这个操作不会影响判题但在面试时如果有机会聊到笔试题会是一个很好的加分素材——说明你真的有测试思维。4. 测试用例设计题与场景题真正拉开差距的地方如果说选择题和编程题是入场券测试用例设计题就是真正决定你能不能拿到面试机会的部分。这类题没有标准答案恰恰因为这样很多人不会答。有的同学把它当成写几个测试步骤的题三两行就交卷了有的同学则能写出一套完整的、有层次的测试方案。差距就在这里。爱奇艺的测试设计题一定会结合视频业务比如让你为视频播放器的播放功能设计测试用例或者为一个会员购买支付流程设计用例。面对这种题你不光要懂测试方法还得对业务场景有足够的想象力。4.1 视频播放场景的用例设计思路首先不要一上来就列用例先画一根时间线用户从进入播放页到离开中间经历了哪些环节依次是加载视频信息、获取播放地址、开始播放、播放中交互、异常处理、结束播放。沿着这条主流程去拆用例就不会散。然后在主流程上叠加测试维度。功能上播放键点击是否生效、进度条拖动是否准确、暂停恢复是否无缝、倍速切换声音是否正常、弹幕开关是否即时生效。兼容性上需要在 iOS、Android、PC Web、TV 等端上测试网络环境还得分 WiFi、4G/5G、弱网、断网。性能上冷启动耗时、首帧时间、卡顿率、内存占用、耗电量这些都是视频播放质量的核心指标。再往下还有安全性和异常测试非法输入、越权访问、服务器异常返回、播放器崩溃恢复。每一类展开都是一片用例。我当时答题时会用表格来组织比如场景——操作步骤——预期结果这样阅卷人一目了然也能保证自己不漏项。这是一个非常实用的技巧把用例组织成表格而不是堆成一段文字。4.2 等价类、边界值、场景法怎么落到答题纸上测试设计题想拿高分一定要在答案里体现出方法论。说了等价类划分是为了减少重复测试边界值分析是为了抓最容易出错的边界场景法是为了覆盖业务流程和异常分支。很多人背概念没问题但答题时用不上。实际上你在列用例表的时候可以在用例旁边加一列设计方法写明这条用例用的是边界值还是场景法这样考官会觉得你是受过专业训练的人不是凭感觉写用例。举一个很常见的题目设计一个登录功能的测试用例。最低分的答法输入正确账号密码能登录输入错误账号密码提示错误这个大概只能拿五分之一的分数。中等答法会补充密码为空、账号为空、勾选记住密码、忘记密码。高分的答法是什么呢它会按模块拆UI 层输入框长度限制、密码是否密文显示、错误提示是否友好、功能层正确和错误账号密码组合、回车键是否触发登录、多次失败是否锁定、接口层账号密码是否加密传输、服务器异常时前端如何提示、频繁请求是否触发验证码、兼容性不同浏览器、不同分辨率、安全SQL 注入、暴力破解防护、性能多用户同时登录的响应时间。这个思路一出差距立刻就出来了。4.3 我最想提醒的事千万别忽略异常和边界从阅卷者的角度看大多数同学丢分最严重的是异常和边界部分。比如视频播放场景很多人想到了正常播放、暂停、倍速、全屏但好多人没想到断网了怎么提示服务器返回 404 怎么处理用户快速点播放按钮十次会不会卡死内存不足时播放器会不会崩溃进度条拉到视频结尾再按播放会发生什么这些恰恰是真实用户天天会遇到的问题也是 QA 面试官最看重的细节。我记得当时在答题纸上专门留了最后一块写异常情况把视频播放相关的各种失败场景一口气列了出来。写完之后我自己心里就有底了——这类题考察的不是标准答案而是你思考问题的周密程度。只要你把能想到的边界和异常都想到了就已经超过八成考生了。5. 复盘与建议笔试之后到面试之前的几步关键动作笔试不是终点它只是整场招聘流程的第一道关口。比答题更重要的是答完之后你怎么复盘、怎么把这次笔试的收获转化成下一步面试的谈资。这部分我结合自己的经验和后来面试他人的心得给你一些实操建议。5.1 时间分配先易后难还是先攻大头每个进入笔试系统的人都会面临时间分配问题。爱奇艺这套卷子题量不小我个人的建议是优先做测试设计题再做编程题最后回头做选择题。原因很简单测试设计题分值大、主观性强只要写就有分而且它考的是思维不需要客观题那样的记忆精度编程题只要有思路编码时间其实不长选择题虽然量大但每题分值低而且卡住的话很容易在两道题上浪费十分钟。很多人习惯从第一题做到最后一题结果被选择题里的某道难题卡了二十分钟后面的大题全没时间写。这是笔试的大忌。正确的方式是拿到试卷先花两分钟快速通读一遍把题目的分值和难度在脑子里排个序然后按先保分、再争分的顺序动手。先保证测试设计题写满编程题至少有一道完整通过选择题再用剩余时间慢慢磨。5.2 考后复盘把笔试题变成面试素材笔试交卷之后很多人就把它忘了。这个机会一定要抓住。我会在草稿纸上或者手机备忘录里把还能记住的题目简单记下来尤其是哪些题做得不确定、哪些题完全没思路然后去搜相关资料把它弄懂。这件事的作用有两个一是如果笔试通过进入面试面试官很可能会拿着你的笔试答卷来问你当场把自己当时不会的题讲明白了会显得学习能力特别强二是即便没通过这些题目也是宝贵的校招题库资源下个公司可能出类似的题。我还见过一些同学会把笔试题里的场景改编后写进自我介绍或者项目经历里。比如笔试考了视频播放器的测试用例设计你回头就可以去把视频播放器测试这个方向系统地整理一遍面试时说我专门研究过视频播放场景的测试设计这比空口说我热爱测试要好得多。5.3 针对视频类公司的储备建议如果你瞄准的是爱奇艺这类视频公司除了通用测试知识外最好提前做一些针对性的功课。第一理解视频播放的基本链路数据从 CDN 分发到播放器解码再到渲染显示中间任何一个环节出问题都会表现为卡顿或花屏你需要知道怎么定位是网络问题、服务器问题还是播放器问题。第二了解常见的音视频概念比如 H.264/AVC、H.265/HEVC、编码格式、码率、帧率、首帧时间这些在测试播放器时都会用到。第三熟悉弱网测试的思路比如通过工具模拟丢包、延迟、带宽限制观察播放器的表现是否符合预期。第四了解广告和会员业务的测试场景毕竟这是视频公司重要的商业模式。这些内容不是说笔试一定考而是说你能不能在答题时体现出你对行业的理解。同样是答一个播放失败的测试设计题懂行的人会想到检查网络切换后播放器是否自动恢复、CDN 返回的播放地址是否过期、防盗链签名是否失效而不懂行的人只能想到提示用户检查网络。这就是差距。5.4 接下来这周重点补什么笔试结束到收到结果通常会有一个空窗期。空窗期不要只顾着等我来帮你想清楚这段时间到底该干什么。第一把测试理论再过一遍尤其是等价类划分、边界值分析、判定表、因果图、场景法、错误推测法。这些笔试考完面试还会考而且面试官会问得更深比如你刚才提到的等价类划分具体怎么划分如果你答不上来笔试的分就白拿了。第二把 SQL 的常用语法练熟包括多表联查、子查询、聚合函数、索引相关的概念很多测试开发岗位的面试现场会让你写 SQL。第三准备一个自动化测试相关的项目或脚本。不一定是公司项目自己写的接口测试脚本、UI 自动化脚本、性能测试脚本都可以。重点是要能讲清楚框架结构、参数化方法、断言处理、报告生成这些是面试里高频考察的部分。第四多看几篇视频网站质量保障相关的技术博客。了解业界是怎么做音视频质量评测的、怎么搭建自动化测试平台的这些知识一旦在面试里聊出来会让面试官觉得你是真正对这个行业有热情而不是海投简历的求职者。我当年就是这样过来的。笔试里那几道测试设计题让我意识到自己在边界条件分析上的积累还远不够于是后面花了整整一周时间去补齐视频场景的各种测试维度。这个查漏补缺的过程比笔试本身教给我的东西多得多。如果你现在也在准备测试开发方向的笔试希望这篇复盘能帮你把精力花在真正重要的地方——不是背更多的题而是建立一套完整的、能迁移的测试思维。