ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

爱奇艺2020测试开发校招笔试题复盘:考点分析与解题思路

爱奇艺2020测试开发校招笔试题复盘:考点分析与解题思路 爱奇艺2020校招测试开发方向笔试题第一场这份题我印象太深了。那年秋招我投的爱奇艺测试开发岗第一场笔试做完出来最大的感受不是“难”而是“杂”——测试理论、编程、Linux、网络、业务场景设计题一锅端每块都在筛人。尤其测试设计那道视频播放的题直接把我从“我会背概念”打回“我其实不会测”。这篇就把第一场的高频考点、典型题目和解法思路完整复盘一遍希望能帮到正在备战校招的测试开发方向同学。作为测试开发方向的校招生笔试这一关考察的从来不是单一维度。爱奇艺这场笔试给我的整体感觉是它不追求让你把某道算法题写出花而是考察你有没有测试思维、能不能用代码解决测试问题、懂不懂业务链路。下面按照题型模块逐一拆解每个考点都尽量还原我当时看到的题目特征和后来复盘得到的解题逻辑。1. 爱奇艺2020校招测试开发第一场题型分布与真实考点复盘先搭个整体框架。第一场笔试的题型分布大致是选择题约30道覆盖测试理论、数据结构、操作系统、网络、编程题2道限时30~40分钟、测试设计大题1道给你一个业务场景让你写测试用例。三个模块在同一个在线平台完成选择题每道限时约60~90秒编程题可以切换语言我当时用的Java测试设计题需要手打用例。这个结构很典型也很有爱奇艺的特色作为视频平台它的测试开发岗位必然关注视频业务场景。但第一场的笔试题并没有一上来就考播放器原理而是先用选择题摸底基础再用编程题看代码能力最后用一道视频播放相关的场景题看你有没有测试思维。从考点权重来看我复盘后大概是这样题型考点方向权重感受选择题测试基础理论、数据结构、Linux命令、网络协议约40%编程题数组处理、字符串处理、边界条件、算法时间复杂度约30%测试设计题业务理解、场景覆盖、用例设计方法、异常流思考约30%这意味着如果你只刷LeetCode去准备笔试大概率会在测试理论选择题和测试设计大题上翻车。反过来如果你只背测试理论概念编程题又会拖后腿。测试开发的笔试本质是考察“既懂代码又懂业务还能站在测试角度思考”的复合能力。从备考策略上讲建议所有准备测试开发校招的同学都要以“理论代码场景”三线并进的方式来复习。下面我按模块把题目类型和解题思路展开说。2. 测试理论基础题不是背概念是踩坑后的理解2.1 等价类划分与边界值的经典案例分析选择题里有一类题特别容易出错给你一个输入条件让你判断哪些是有效等价类、哪些是无效等价类。比如一个视频网站的会员有效期输入框要求输入1~365之间的整数问你以下几个输入分别属于什么类型0、1、365、366、abc、3.5。我当时一眼扫过去就踩了坑。0和366看似都是无效等价类但它们在无效方向上的“段位”不同——0是下边界外的无效值366是上边界外的无效值abc是非数字的无效值。出题人想考察的是你是否能准确识别等价类划分的粒度。如果只答“都是无效等价类”就丢失了边界细节而边界值分析恰恰是测试用例设计的灵魂。后来我复盘出这类题的稳定解法先划有效等价类1~365的整数再划无效等价类小于1的整数、大于365的整数、非整数小数、非数字字符边界值要单独检查0、1、365、366这4个值必须覆盖对小数和字符类型要区分对待因为它们在代码里可能走不同的校验分支爱奇艺的这类题通常藏在“视频平台业务规则”里比如会员天数、视频清晰度、播放倍速、弹幕长度等。只要你能把业务输入抽象成数值区间解题思路就通用了。2.2 用例设计方法中的场景法从流程图到用例场景法在选择题里通常以“根据以下业务流设计测试用例”的形式出现。比如视频播放业务用户打开App首页 → 点击视频封面 → 进入播放页 → 视频开始播放 → 播放完成后自动推荐下一个视频。问你这个流程中至少需要设计多少条场景用例。这个题考察的不只是你会不会画流程图而是你有没有场景覆盖意识。我当时只写了“正常播放、网络中断、播放卡顿、退出播放”几条显然不够。正确的思考应该是主场景完整走通一条播放链路打开到播放到退出备选场景播放中切换清晰度、拖拽进度条、倍速播放、全屏/竖屏切换异常场景网络断开、服务器返回错误码、视频资源被下架、用户未登录观看付费内容分支场景从推荐位进入播放页、从搜索进入播放页、从历史记录进入播放页每条场景还可以继续叠加条件比如“未登录用户”状态下点击付费视频应该弹登录框还是试看提示这种场景分支的覆盖能力是测试用例设计题拿高分的关键。练习时建议用“主流程为树干异常流和分支流为枝叶”的方式组织写出来的用例才清晰且不容易遗漏。2.3 Bug生命周期状态流转题的常见陷阱还有一道印象很深的选择题考察Bug的状态流转一个Bug被测试人员提交后状态为“新建New”开发人员确认后改为“已修复Fixed”测试人员验证通过后改为“已关闭Closed”。问以下哪个流转是错误的。选项大概是New → Fixed → ClosedNew → Open → Fixed → ClosedNew → Rejected → ClosedNew → Fixed → Reopen → Fixed → Closed这道题的正确选项是A。为什么因为“New → Fixed”直接跳过了“开发已确认/正在处理”的状态在标准流程里Bug通常要经历“新建 → 已确认/打开 → 已修复 → 待验证 → 已关闭”的完整路径退回重开同样需要状态记录。如果你在公司实习时用过禅道/Jira这类工具对这条流转链路会非常熟悉但如果你只是背概念很容易被“New直接到Fixed”的表面合理所迷惑。这套流转背后的逻辑是每个状态节点都对应一段明确的职责和证据。“已确认”表示开发认可了这个Bug存在“已修复”表示代码已更改但尚未验证“已关闭”表示验证通过。跳过一个节点意味着有一个环节没被确认风险就埋下了。测试不只是发现Bug还要对Bug的生命周期负责。3. 编程题解析数组和指针背后的边界思维3.1 数组题从双指针到滑动窗口编程题第一大类的典型考察点是数组处理。爱奇艺第一场编程题我记得有一道和“有序数组合并”相关的题要求用O(n)时间复杂度和O(1)额外空间合并两个有序数组其中一个数组的长度足够容纳合并后的全部元素。这道题你在LeetCode上刷过原题的话思路应该是“从后往前比较避免从左往右时的元素覆盖问题”。为什么从后往前这是这道题最容易忽略的细节也是面试官在代码里最想看到的边界思维。如果两个数组合并到同一个数组里从前往后填入时较小的元素会覆盖掉另一个数组尚未参与比较的元素。从后往前因为目标数组的空间预留足够大从尾部开始填永远不会覆盖掉还未处理的原始元素。代码实现的关键结构是三个指针指向第一个数组有效元素的末尾指向第二个数组的末尾以及指向合并后数组的末尾。这个思路跟“归并排序的合并步骤”是一致的但特别考察空间利用的敏感度。很多同学一提归并就开额外数组放在笔试场景里虽然能过但如果面试官要求O(1)空间就会卡壳而爱奇艺这类大厂恰恰喜欢在这种细节上筛选。3.2 指针与内存的“八股”笔试里的选择题比编程题更阴险“数组和指针笔试题”这个热搜词点出了校招笔试的经典考点。在爱奇艺的笔试选择题中指针相关的题主要以C/C形式出现虽然测试开发也支持Java投递但选择题会覆盖C语言指针。典型题目包括sizeof(arr)和sizeof(ptr)的区别数组名作为sizeof参数时返回整个数组占用的字节数指针作为sizeof参数时返回指针本身占用的字节数64位系统上通常是8字节arr和arr的区别数组名在表达式里通常退化为指向首元素的指针但arr的类型是“指向整个数组的指针”两者的步长完全不同指针加减整数时的地址偏移p1究竟跨过了几个字节取决于指针指向的类型最经典的坑题是“定义一个二维数组int a[3][4]请问(a1) 是什么含义”很多同学第一反应是“a[1][0]即数组第二行的第一个元素”。但严格来说a1已经是指向第二行这个“长度为4的整型数组”的指针(a1) 拿到的是第二行的首地址并不是元素值。如果你进一步用((a1)2)你才拿到a[1][2]的值。这道题为什么对测试开发重要因为在做接口测试或白盒测试时你经常要读开发写的代码去推断边界输入如果指针理解不到位你根本看不懂某些越界Bug是怎么产生的。比如开发写了个for循环遍历数组索引从0到sizeof(arr)而不是sizeof(arr)/sizeof(arr[0])那数组就越界了——一个懂指针的测试一眼就能判定这是高优Bug而不是低级疑问。3.3 字符串处理别忽略空串和长度1的边界字符串编程题在测试开发笔试中极其常见因为这类题不仅能考察编码还能考察“异常输入”处理能力。爱奇艺第一场的字符串题中有一道“去除字符串首尾空格”的变体要求不能调用strip()/trim()这类现成函数需要手动实现。常规思路是扫描字符串首部跳过空格找到第一个非空格字符的索引再从尾部往前扫描跳过末尾空格找到最后一个非空格字符的索引最后截取中间部分。这个思路本身不难但边界条件是失分重灾区字符串为空串长度0——此时首尾索引都会异常字符串全为空格——首部扫描和尾部扫描会“错位”可能截出奇怪的子串字符串只有1个字符且为空格——首部索引和尾部索引重合要特别处理字符串中间的空格必须保留——这个最容易实现错有人直接把所有空格都去掉了我见过很多同学在笔试里把“去除首尾空格”写成“去除所有空格”这是审题不清也有人没考虑“全空格”输入直接导致死循环或数组越界。实际上“空串”和“全空格”这两个边界是所有字符串处理题的通杀检查点。建议在笔试前专门整理一个自己的“边界输入检查清单”每写完一道字符串题就对照走一遍null/空串/长度1/全相同字符/首尾字符/最大长度输入。4. Linux与网络题测试开发的日常工具箱4.1 Linux命令从高频命令到排查链路“linux笔试题”这个热词也是测试开发笔试的固定板块。爱奇艺这场笔试对Linux的考察不算深但非常实用。选择题里出现了类似“查看日志文件中包含error的行并统计行数应该使用什么命令组合”的题目。正确答案是 grep error app.log | wc -l或者从功能角度还可以用 grep -c error app.log。但我印象更深的是一道“根据端口号查找进程”的题已知8080端口被占用以下哪个命令能查到占用进程的PID。这题正确答案是 lsof -i:8080 或 netstat -tunlp | grep 8080。这里需要多说一句作为测试开发你查端口、查日志、查进程的最终目的不是“会敲命令”就完事而是为了快速定位环境问题和线上故障。我记得自己在实习时就遇到过一次测试环境挂了第一时间用 lsof 查到端口被一个僵尸进程占用再结合 ps -ef 查到这个进程属于哪个服务最后用 kill -9 清理掉整个链路下来才10分钟。这种“从现象到根因”的排查链路比单个命令背得多熟更重要。爱奇艺笔试里Linux相关的考点通常集中在这几类文件操作ls、cd、cp、mv、rm、find、grep文本处理awk、sed、grep、sort、uniq、wc权限管理chmod、chown、chgrp进程管理ps、top、kill、nice网络排查ping、netstat、lsof、curl、telnet系统信息df、du、free、dmesg建议备考时不要只背命令选项而是每个命令配一个真实排查场景去练。比如“日志文件不断增长磁盘满了怎么办”——用 df -h 看磁盘占用再用 du -sh * 定位大文件再用 tail -f 观察日志是不是在刷屏。能把一套排查链路串起来笔试里任何Linux选择题都难不倒你。4.2 网络协议HTTP状态码是送分题也是送命题网络协议几乎是每个测试开发笔试必考的知识模块。爱奇艺第一场选择题里出现了一道在浏览器请求视频接口时某接口返回了401状态码问你最可能的原因是什么。这题不算难答案是身份认证失败。但如果出题人稍微绕一下弯难度就上来了。比如视频首播时网络请求返回了206问代表什么。很多人只知道200和404看到206就发懵。206 Partial Content表示“服务端已返回部分内容”常用于HTTP Range请求——播放器拖动进度条时客户端只请求数据包的一部分服务端返回206然后播放器续传播放。视频场景中这种状态码极其常见。测试开发对网络协议的要求不是“会背状态码”而是“能根据状态码定位问题”。选择题里也会给你一段抓包信息让你判断是TCP三次握手的哪个阶段或者让你判断DNS解析失败时的报错特征。备考建议是把TCP/IP的分层模型、三次握手和四次挥手、HTTP请求方法和状态码、HTTPS证书校验流程这几个核心模块彻底吃透然后用抓包工具Wireshark/Fiddler/Charles亲手观察一遍真实请求的往返过程。4.3 DNS和视频调度爱奇艺业务的隐藏考点爱奇艺作为视频平台和普通网站相比有一个特殊点视频CDN调度。当你点击播放一个视频客户端会先请求一个调度接口服务器根据你的IP和网络运营商返回一个最优的CDN节点域名然后再去该节点拉取视频流。这个过程涉及DNS解析、HTTP重定向、CDN边缘节点选择。第一场的网络选择题里虽然没有直接出CDN调度的题但业务场景设计题里这个链路恰恰是测试重点。比如“视频播放卡顿”这类问题可能的原因分布在DNS解析、调度接口、CDN节点、传输协议、播放器解码等各个环节测试设计题目考察的正是你能不能把这些环节一个一个拆出来排查。所以准备爱奇艺笔试题时一定要理解“视频播放不只是一个页面跳转而是一条复杂的网络和数据处理链路”。5. 视频业务场景用例设计把爱奇艺的播放链路拆开看5.1 测试设计大题从播放链路拆分到测试点第一场的压轴题是一道视频播放相关的测试设计题。题目大意是一个用户从首页点击视频封面进入播放页视频自动开始播放请你设计完整的测试用例。这道题是区分度最大的一道也是我考完复盘收获最大的一道。单纯写“验证视频能否播放”“验证视频是否清晰”这类用例基本拿不到分。要想拿高分必须把视频播放整条链路拆开每个环节分别设计测试点。结合测试开发学习路线里的常见方法论我对这道题的解构思路是分四个层次第一层功能逻辑测试。视频是否能正常播放、暂停、停止进度条是否能拖拽清晰度切换是否生效流畅/高清/超清/蓝光音量调节和静音全屏/竖屏切换弹幕开关下一集自动播放。第二层业务规则测试。游客和登录用户可以看什么付费视频/会员专享试看时长是多久播放VIP内容时的提示和跳转青少年模式限制投屏功能是否对特定VIP等级开放下载权限与清晰度绑定。第三层异常场景测试。网络切换WiFi → 4G是否在播放中无缝切换断网后播几分钟会暂停弱网下的加载策略后台切换App再回来播放是否继续播放器崩溃后重启能否恢复视频资源被下架后点击是什么表现断点续播是否生效。第四层专项与兼容性测试。启动时间是否过长首帧渲染时间滑动页面时播放是否卡顿内存占用是否会持续增长不同机型iOS/Android、低端机/高端机、不同系统版本Android 8/9/10/11的兼容性不同网络类型WiFi/4G/5G的带宽适配播放过程中来电话、收通知等系统打断场景横竖屏旋转时的画面适配。这些维度不是要你全部堆在答题卡上而是要有逻辑地把它们组织成“按模块分组、按优先级排列”的用例集。我当时在答卷里用了一个很笨但有效的方式先画播放链路的流程图首页 → 封面 → 播放页 → 播放器初始化 → 获取播放地址 → 加载视频 → 渲染首帧 → 播放 → 退出然后在每个节点下挂测试点。这样写出来的用例既不会漏也有条理。5.2 输入框的边界值设计同样的方法换个场景视频业务里还有很多输入框场景这类题也常出现在测试设计题里。比如弹幕输入框限制长度在1~50个字符之间。让你设计测试用例时就要用边界值分析0字符空应拦截并提示1字符下边界内起点应允许发送50字符上边界内终点应允许发送51字符上边界外应拦截并提示50个中文字符和50个英文字符是否都计入长度如果产品规定中文按2字符算这里的边界还要重新计算表情符号在输入时计入长度还是不计入有些输入法会把表情拆成多个UTF-16编码单元这类边界设计题的骨架和前面选择题里的等价类划分完全一致。区别只是考试形式选择题是让你选设计题是让你自己写。但背后的逻辑链是一样的找出边界 → 设计在边界内外各取一个值 → 再考虑类型的细分。5.3 兼容性测试为什么这个权重不能砍爱奇艺的客户端覆盖Web、Android、iOS、Windows、MacOS、OTT电视端、车载端甚至还有Linux客户端热搜词里的“爱奇艺客户端linux”就是这么来的。不同端能力不同播放内核也不同。设计用例时如果不考虑端差异很容易出大问题。举一个真实例子同一个视频接口在移动端和OTT端返回的数据格式可能不一样移动端走DRM加密OTT端可能因为版权原因只允许播放部分内容Linux客户端因为没有内置特定解码器某些编码格式的片源播放不了。这些都属于兼容性测试的职责范围。在校招笔试中兼容性维度不需要你写出具体的技术实现但你要能识别出“这个功能是不是跨端/跨系统/跨网络/跨机型的”。只要你在用例里写清楚“分别在不同端执行”“低端机重点关注性能表现”“不同运营商网络重点验证调度策略”就已经比大多数只写功能用例的考生高出不少。6. 再从笔试题反推一下测试开发到底在考什么6.1 考的不是答案是“测试思维”的生成过程复盘完整个第一场笔试我越来越觉得爱奇艺的这套笔试题并不是想选拔“知道最多测试术语的人”而是想选拔“遇到复杂业务时能拆解成可验证的点的人”。测试思维的核心其实是建模能力把真实的业务系统抽象成一份“输入-处理-输出”的映射表然后让你去填充各种输入组合看看输出是否与预期一致。这种建模能力不仅在笔试里重要到工作中同样是核心能力。我刚入行时写用例只会对着PRD逐条转写完全没有“我是在建模”的意识。后来带我的老师傅教了我一个方法每拿到一个新需求先问自己三个问题——“这个功能的输入都有哪些形态处理逻辑里最容易出错的分支是什么输出结果有没有隐含的边界条件”想清楚这三个问题再动手写用例覆盖度明显提升。这套方法论我在备考和实际工作中一直在用也推荐给你。6.2 关于AI测试开发一个新方向但别被带偏近年的热搜词里“ai测试开发”越来越常见也有不少同学问我要不要专门去学AI测试工具来投测试开发岗。我的观点是把AI当作效率工具去学但别把“AI测试”当作校招笔试的复习主航道。爱奇艺2020年第一场笔试没有一道题直接考察你“会不会用AI生成用例”。它考察的还是计算机基础、测试方法论和业务理解能力。但这不代表你不需要关注AI能力。现在的测试开发笔试题里有些平台会允许你用AI辅助编程或者考察“面对一个AI能力你会怎么测”。比如测试一个OCR识别接口输入是图片输出是识别文本你怎么构造输入集、怎么判断识别准确性、怎么评估不同光线背景下的识别率——这些都可能成为测试设计题的新素材。所以建议在打好基础的前提下花一点时间了解大模型应用的测试方法比如提示词注入、幻觉测试、上下文长度边界这些都是未来测试开发岗位的增量技能点。6.3 备考节奏建议三条线并行别押宝单点结合这次笔试题复盘我给正在准备测试开发校招的同学一条实操性比较强的备考路线分三个阶段第一个阶段基础期约2周把数据结构与算法、操作系统、计算机网络、数据库的基础题刷一遍。这个阶段不需要追求题量重点是建立知识框架。数据结构里数组、字符串、链表、栈、队列、二叉树是核心网络里TCP/IP、HTTP是核心Linux命令每天花半小时练一遍。推荐每学完一个模块用“给自己讲一遍”的方式检验是否理解——能用自己的话把概念讲清楚才是真的理解了。第二个阶段强化期约2周主攻测试基础理论。等价类、边界值、场景法、判定表、因果图、正交实验法、错误推测法这些用例设计方法必须能熟练运用。尤其是给你的业务场景写测试用例至少要在纸上完整练15道以上不同场景的题视频播放、登录注册、购物车、搜索引擎、支付流程、地图导航等。每道题都按“功能-业务规则-异常-专项兼容”四层结构来组织。第三个阶段冲刺期约1周专项刷笔试题。把目标公司的历年笔试真题找出来按真实考试时间模拟。编程题控制在每题15~20分钟选择题控制在45分钟内测试设计题控制在40分钟内。模拟完一定要复盘哪些题是因为审题不清丢分哪些是因为知识盲区丢分哪些是因为时间分配不合理丢分。把错误归类逐项补。7. 我当时踩过的坑和复盘后的解法最后一部分把我在爱奇艺第一场笔试里踩过的具体的坑和复盘后的解法列出来这些是我觉得对后来人最有参考价值的。第一个坑在选择题上犹豫太久。在线笔试系统的选择题是限时切换的我当时在一道TCP三次握手的题目上琢磨了两分钟直接导致后面的编程题时间被压缩。考完复盘正确策略应该是一分钟做不出来就先蒙一个标记后续再回来看如果平台允许。校招笔试的时限非常紧张时间分配就是一种应考能力。第二个坑编程题只求通过用例没注意复杂度。爱奇艺的在线编程题后台通常会有大数据量和超时限制如果你写得是O(n²)的解法而数据量到10^5量级即使逻辑正确也会超时。写编程题时一定要先估算数据范围再决定算法养成“先看输入规模再动手”的习惯。第三个坑测试设计题只写正常流。我第一道测试设计题写了大概20条用例里面全是“点击视频能播、拖动进度条能跳”这类功能验证异常场景寥寥无几。考完我问了在爱奇艺做测试的学长他说面试官批卷时最看重的恰恰是“弱网/断网/并发/权限”这异常维度。因为正常流谁都能测出来异常流才能反映你对质量风险的敏感度。第四个坑忽略业务理解。爱奇艺的笔试题不会直白地告诉你“我是视频平台”但它的题目背景都在暗示你要懂视频业务。比如测试设计题里给你一个“VIP试看”如果你不知道VIP会员制度是什么你连业务规则用例都写不出。报考哪家公司一定要提前研究它的核心产品和商业规则这是笔试备考中性价比最高的一环。这些坑里前两个是一次性应考技巧后两个是长线能力。如果你只为了过笔试可以先补齐前两个但如果你想在测试开发这条路上走远第三个坑和第四个坑值得你在后续实习和项目里持续打磨。
返回列表