ARTICLE DETAIL

资讯详情

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

从腾讯2015测试岗笔试题看测试工程师技能栈十年变迁

从腾讯2015测试岗笔试题看测试工程师技能栈十年变迁 2015年腾讯春招测试工程师练习卷现在还有参考价值吗我翻出来重做了一遍发现里面有不少东西放到今天依然在面试中出现只是换了一副面孔。比如当时考的等价类边界值现在面试官会把它包装成“写一个登录接口的测试用例”当年考的Linux命令现在会变成“线上日志排查的完整思路”。这篇文章不打算逐题对答案而是顺着这份卷子把测试岗位这些年变化和没变的东西都捋一遍给准备面试或者刚入行的朋友做一个系统性的参考。1. 2015年这份练习卷到底考了什么1.1 试卷的整体结构与考察逻辑腾讯2015春招的测试工程师练习卷整体分为几大块计算机基础知识、测试理论与方法、编程能力、逻辑思维与场景题。从题型分布上能看出当年腾讯对测试工程师的定位——不是纯业务的“点工”而是要有一定开发底子的技术型测试。我当时的感受是这份卷子很像是在筛选“能听得懂开发说话的人”。比如计算机基础部分一定会涉及数据结构、操作系统、网络协议这些内容。你以为在考测试其实考的是你和开发协作时的共同语言。一个测试如果连TCP三次握手、进程和线程的区别都说不清楚那在评审会上是插不上话的。而从测试理论部分的考察来看当年的重点集中在测试用例设计方法、测试流程、缺陷管理这些经典内容上。这里想强调的是虽然这些东西今天被很多人觉得“老旧”但它恰恰是测试岗位不可替代的基础能力。1.2 为什么一份老卷值得重新翻出来研究先说明白一件事我不建议用这份卷子来押题因为2015年和现在的考察点已经有很大差异。比如当年不太考自动化测试框架也基本上不涉及性能压测工具、持续集成这些但今天这些都是测试岗的基础技能。那为什么还要翻出来看因为底层能力没有变。卷子里考察的用例设计能力、逻辑分析能力、编程思维放到今天依然是面试的重点。你可以把这份卷子理解成一套“内功心法”它不教你怎么打拳但练好了内功学什么招数都快。另外这份卷子对理解大厂测试岗面试的思路演变也很有帮助。看它当年考什么、现在面试官考什么就能摸清行业对测试工程师期望值的变化轨迹。这也是我写这篇文章的核心出发点之一。2. 测试理论部分深度拆解2.1 测试用例设计方法论2015年的练习卷里测试用例设计是绝对的重点。等价类划分、边界值分析、因果图、判定表、场景法、错误推测法每一个都需要你不仅能写出用例还要说明为什么这么设计。以等价类划分和边界值分析为例。当年我在这类题目上吃过亏以为只要把有效无效等价类列出来就行后来发现自己忽略了一个关键点——面试官想看的是你如何识别边界。举一个最经典的例子一个输入框要求输入1到100之间的整数。很多人的第一反应是测试1和100这两个边界值但我当时在面试中被追问“边界值不止是上点和下点内点、离点你怎么测”注意这里有个测试术语上的细节差别需要讲清楚。边界值分析里有“上点”“下点”“内点”的说法。对于[1,100]的闭区间上点是1和100下点也是1和100内点可以是50。如果测试的是开区间分析方式会完全不一样。而我在实际面试中给出的答案需要体现一个完整的测试用例设计思路明确输入域和输出域划分有效等价类、无效等价类对每个等价类提取边界值补充异常场景比如输入为空、超长字符串、特殊字符最后用错误推测法补充一些经验性的测试用例说到底用例设计这件事考察的不是你记得多少种方法而是你在拿到一个需求时能不能快速搭起一个逻辑完整的覆盖框架。这也是为什么这个考点在10年后依然存在——因为它是测试的本质。2.2 测试流程与缺陷管理的考察2015年的卷子会考察测试流程包括测试计划、测试设计、测试执行、缺陷报告、测试总结这几个阶段。同时也一定会涉及缺陷的生命周期管理新建、指派、修复、验证、关闭以及不同状态之间的流转条件。现在回看这些内容我的结论是流程本身不复杂难的是理解每个环节背后的目的。比如缺陷报告很多人以为就是写清楚“怎么操作、什么现象”但一份高质量缺陷报告需要包含前置条件、测试数据、实际结果、预期结果、日志或截图以及影响范围分析。关于缺陷的等级划分当年腾讯的卷子里经常会给一个场景让你判断某个bug应该算严重还是普通。这种题其实很坑因为没有标准答案关键看你有没有全局思维。比如一个按钮样式错位如果是在用户主路径上的核心按钮影响转化率那它完全有理由报成严重缺陷如果只是一个不常用的边缘功能页面则可以降级为普通。我个人的建议是回答这类问题时不要急着给结论先展示自己的分析框架比如影响用户主流程的程度、发生概率、是否有规避方案、开发修复成本。把这些维度都说清楚了面试官才会认可你的判断力。2.3 测试类型与测试层次的考查练习卷中还会涉及功能测试、性能测试、兼容性测试、安全测试、易用性测试等测试类型的定义和适用场景。同时也需要你对单元测试、集成测试、系统测试、验收测试这一条测试层级链路有清晰认知。这部分想说一个容易混淆的知识点很多人分不清集成测试和系统测试的区别。虽然做题的时候可以靠死记硬背但如果想真正理解可以这样想——集成测试关注的是模块与模块之间的接口和交互是否正常而系统测试关注的是整个系统作为一个整体是否满足需求规格。换句话说集成测试更像测试“零部件咬合”系统测试则是测试“整车出厂”。放到现在的语境下这些概念对应的是测试金字塔。底层的单元测试跑得最快、成本最低越往上成本越高、速度越慢。所以现在的团队都在推行“测试左移”把测试活动往开发阶段推在写代码的时候就同步写单测和接口测试。这一点和2015年相比是有变化的当时更多是“测试等开发完成后再介入”。3. 编程能力与逻辑考察3.1 编程题目的考察重点2015年腾讯测试岗笔试的编程题难度大致在LeetCode简单到中等之间重点考察字符串处理、数组操作、链表、栈和队列偶尔会有一道递归或动态规划的题目。当年测试岗对编程的要求还不是很高掌握一门语言的基本语法和常用数据结构就能应付。但这里想说一个很多人没注意到的问题笔试编程题其实只是第一道门槛真正的编程能力考察在面试环节。面试官会让你现场写一段代码解决某个具体问题或者直接扔一个现成的函数让你找出里面的bug。到那时测试思维反而是一个优势——因为你比纯开发更习惯往“边界条件、异常输入”的方向思考。我见过不少测试候选人LeetCode刷了几百题但是让他写一个判断字符串是否回文的函数却忘了考虑空字符串和单字符的情况。这在测试岗面试中是很加分的细节。你不需要写出最简洁的解法但一定要写“测得很全”的解法。3.2 逻辑推理题的表现方式逻辑推理题在测试岗笔试中出现的频率很高形式包括数字推理、图形推理、条件推理等。早年有人说这是“行测题”和测试没关系但我不这么看。这类题本质上是在考察一个人的思维条理性和严谨性而这两点恰恰是测试工程师最需要的特质。不信你可以做一个简单的测试给你一个“如果A说真话B就说假话如果B说真话C就说假话”这类条件推理你能不能快速画出逻辑链找出矛盾点这和你在测试一个复杂业务逻辑时梳理前置条件和分支流程其实是同一套思维模式。我的建议是逻辑题不要靠题海战术而是练一个习惯——把文字描述翻译成表格或者关系图。一旦信息被结构化推理速度会大幅提升。这个习惯在后面的面试场景题里也特别管用。3.3 简单脚本能力是测试的底层技能这里额外说一下编程在测试日常中的角色。2015年的卷子对脚本能力的考察还比较初级最多就是让你手写一个简单的排序或者字符统计。但现在脚本能力已经是测试工程师吃饭的家伙了。我个人的经验是Python是测试工程师性价比最高的语言。你可以用requests写接口测试脚本用pytest搭建自动化用例框架用Selenium或Playwright做UI自动化用locust做性能测试。这些都不用学得很深但最基本的语法和常用库需要手到擒来。关于语言选择还有一个补充建议如果你的目标公司主技术栈是Java那至少需要能读懂Java代码能在开发给你看代码定位问题时跟得上思路。测试这个岗位有一个无法回避的能力需求——阅读代码。你可以不精通但不能看不懂。4. 从2015到2025测试工程师技能栈的演进4.1 十年前考察点和今天的对比把2015年的考察热词和现在行业的需求放在一起看变化非常明显维度2015年考察重点当前考察重点基础理论用例设计、测试流程、缺陷管理用例设计、质量度量、测试策略编程能力基础语法、数据结构工程化能力、框架设计、二次开发自动化简单脚本、录制回放pytest、Selenium、接口自动化、持续集成性能测试LoadRunner工具操作压测方案设计、性能分析、调优建议持续集成基本概念Docker、Jenkins、流水线搭建AI相关基本没有AI辅助测试、测试数据生成、智能断言从这张表可以看出单纯的功能测试能力依然是基础但行业对测试工程师的期望已经向“测试开发工程师”和“全栈测试工程师”方向倾斜。现在你不仅要会测还要会造工具、搭平台、驱动研发流程的改进。如果你现在准备面试建议对照这个表逐项自查。最怕的是技能栈还停留在十年前的水平以为会写几条用例、会点点点就能进大厂。现实是这类岗位的市场需求正在持续缩小。4.2 AI时代测试工程师面临的新形势这段时间“AI测试工程师”这个词讨论度很高。我的理解是它有两层含义一层是测试工程师需要学会测试AI产品另一层是测试工程师需要会用AI提效。先说第一层。AI产品测试和传统软件测试有本质区别。传统软件的行为是确定的同一个输入对应同一个输出而AI系统往往具有概率性和不确定性同样的输入可能得到不同结果。这导致传统的断言方式基本失效你没法写一个“期望值等于xx”的断言只能通过准确率、召回率、置信度等指标来评估系统质量。再说第二层。我现在的日常工作中AI辅助测试工具的使用频率已经很高用大模型辅助生成测试用例、用AI工具做缺陷分类、甚至用AI自动生成自动化脚本的框架代码。但这里有一个关键认知需要同步AI生成的用例可以作为参考和起点但测试人员的判断力依然是核心。AI能帮你生成一百条用例模板但哪条真正对应到你所测系统的核心风险需要人来判断。所以如果你正在准备测试面试我特别建议花点时间了解AI产品的基本测试方法至少要能拎清楚“确定性测试”和“非确定性测试”的区别这会是一个很加分的差异化亮点。4.3 游戏测试工程师的独立技能树在腾讯的招聘体系里游戏测试一直是一个相对独立的岗位方向技能要求也比通用测试更细分。练习卷当年主要面向的是通用测试岗但有不少读者后来问我游戏测试该怎么准备。游戏测试的核心在于业务复杂度和场景丰富度。一个MMORPG里的技能系统、任务系统、经济系统交叉起来有无数种状态组合。加上服务器延迟、断线重连、并发在线等网络问题游戏测试需要的能力图谱和常规应用测试有显著不同。我接触过不少游戏测试工程师他们普遍需要熟悉引擎尤其是Unity或Unreal、具备一定的帧率/内存性能分析能力、还要懂玩家行为模拟。此外游戏测试对兼容性和稳定性测试的要求也极高因为玩家手里的设备五花八门什么骁龙芯片、什么分辨率、什么内存档位都要覆盖。如果说你想从通用测试转游戏测试我的建议是从业务入手先真正玩懂一款游戏的核心系统再开始关注技术细节比单纯去学工具要有效得多。5. 具体到动手用一份老卷做查漏补缺5.1 快速定位你的短板在哪里说了这么多回到最实际的问题拿到一份这样的老练习卷如何最大化利用它做自我评估我的建议是只做一遍但做的时候严格限时模拟做完之后不要急着看答案先复盘做题过程中卡壳的知识点。复盘时重点记录三类问题知识点完全不清楚的、有印象但说不明白的、以为自己会但做错的。这三类分别对应不同级别的补强策略第一类需要重新学第二类需要刷题巩固第三类则是理解有偏差需要重点看解析。不用太在意总分这套卷的核心价值是提供体检结论。如果你在用例设计这块丢分那面试前就要重点准备测试设计相关的题目和项目案例如果是编程题吃力那就要在力扣上针对性刷数据结构题了。5.2 如何用老题应对新面试这里送你一个我自己常用的方法把老题目的考察点和现代技术栈结合重新组织答案。比如老卷子问“如何测试一个登录功能”你可以把回答升级成一层层递进的结构功能层面正常登录、错误密码、账号锁定、找回密码接口层面参数校验、token失效、并发请求、接口幂等安全层面SQL注入、暴力破解、验证码绕过、会话劫持性能层面登录接口的响应时间、并发登录、数据库连接池压力兼容层面不同浏览器、不同操作系统、不同分辨率这样一来你不再只是回答一个十几年前的“面试八股”而是一个能体现现代测试思维、覆盖多层次质量属性的完整方案。这种回答方式在现在的面试官眼里是非常加分的。5.3 测试工程师的长期学习路线参考最后给大家一个不加班时候的自学路线参考。之所以特别强调“不加班”是因为测试这个岗位忙起来是非常忙的学习计划必须现实可行。短中期可以先聚焦自动化测试技术栈目标是能独立搭建一套接口自动化框架并应用到项目中。这期间的投入产出比是最高的因为接口自动化几乎适用于所有互联网项目而且对业务代码的侵入性最小。中期目标可以定在性能测试方向学习压测工具、监控指标、性能瓶颈分析方法这个方向的人才缺口一直存在。如果公司有压测机会主动申请参与工程经验比看书重要得多。长期目标可以根据个人兴趣选方向——可以是往测试开发/测试架构方向走也可以深耕某个行业业务比如游戏测试、金融系统测试。我个人更建议技术管理路线和专家路线二选一不要两头都想抓容易两头都浅。注意上面的路线是大方向参考具体到每个人的情况需要差异化调整。如果所在的业务场景用不上某些技术优先学习与业务结合最紧密的见效更快。6. 重做一份老卷我遇到的那些经典场景题6.1 功能测试场景题这类题目通常是给你一个具体的功能模块比如“微信朋友圈发动态”“QQ邮箱附件上传”让你设计完整的测试用例。2015年爱考这类题现在也爱考几乎是所有大厂测试面试的保留节目。拿“附件上传”举例我当时答题时容易漏掉的关键点有这些大文件上传超过限制时的提示是否友好断点续传中断后是否能继续上传中的取消操作取消后文件是否被正确清理文件名包含特殊字符、超长文件名或纯中文名并发上传多个文件时的稳定性上传过程中关闭浏览器或网络切换的处理这类题的答题策略是先列主流程再补分支和异常流控制好颗粒度。面试官并不指望你一次写完所有用例而是在听你的思路是否结构化、有没有测试敏感度。6.2 接口测试场景题接口测试是近几年面试的大热门2015年的卷子涉及得不多但我会把类似的问题拿来一起分析。典型的场景题是“如果让你测试一个订单查询接口你会关注哪些方面”。我在面试候选人时比较看重的回答框架有两层。第一层是接口本身的测试包括参数验证、必填项检查、参数类型边界、鉴权和权限控制、接口幂等性、异常码返回、响应数据结构的完整性。第二层是接口关联功能的验证比如这个查询接口在订单列表页、订单详情页、支付成功回跳页分别是怎么被调用的异常情况下前端如何处理。这里有一个实用小技巧在做接口测试时不要只关注响应码是200还是500更关键的是对响应体做全字段校验。很多接口在正常情况下返回正常一旦某个字段为空、类型不对、字段丢失就会引发前端白屏或逻辑异常。这些问题在接口测试中更容易暴露也更容易在简历上写成亮点项目。6.3 数据库与基础命令场景题数据库相关题目在测试面试中出现的概率极高包括增删改查、多表关联查询、索引、事务等基础概念。2015年的卷子里对数据库的考察还比较浅但今天你已经没法绕开了——因为几乎所有业务功能的测试都用得上SQL。我建议至少要能达到这个水平能在测试环境中独立通过SQL构造测试数据能用查询语句验证测试结果能看懂开发在排查问题时写的SQL。再进阶一点理解索引的工作原理能解释为什么某个SQL慢。这些在性能测试和问题定位时帮得上大忙。至于Linux基础命令测试工程师至少掌握日志查看、文件操作、进程管理、网络端口排查这几类。遇到线上问题时能自己先看日志缩小范围而不是直接把问题抛给开发这会让你在团队中的价值感知明显提升。6.4 回答场景题的两条实战心得第一遇到场景题不要急着动手写答案先和面试官确认范围。很多人一上来就闷头写结果面试官想要的测试重点和你写的不在一个方向。大胆追问一句“您希望我重点关注功能层面还是也包括异常和性能场景”这不但不是减分项反而会让面试官觉得你有需求澄清意识。第二回答时学会分层叙述。把用例或思路从主到次、从正常到异常排列每说完一个层级稍作停顿观察面试官的反应。如果他对某一层特别感兴趣你可以顺着深入展开。这种互动式的回答方式比一次性倒完全部内容的效果好得多。7. 踩坑多年总结给测试新人的一些实在建议做测试这些年见过不少新人入职后的困境。很多人第一份工作被安排做“点点点”的功能测试觉得没有成长于是开始焦虑。这种心态我能理解但我想说一个反常识的观点功能测试坑位是起点不是终点它对业务的深入理解能力和耐心是很多中高层岗位非常看重的底层素质。问题在于你不能只会“按用例执行”。你要去追根究底为什么会有这条用例它对应的是哪条需求开发实现的时候哪里容易出错线上有没有相关的事故记录把这些问题搞明白你写出来的用例才是有用户视角和风险视角的而不是从需求文档抄出来的。另外一个很关键的建议是早点开始积累你的“测试资产”。这个资产可以是沉淀下来的用例模板、脚本库、造数工具、线上问题复盘文档。这些资产跟随着你走才是真正的职业底气而不仅仅是做过多少个项目。最后保持对业务的敏感度。技术方法是通用的但每个行业的业务逻辑差异极大。一个从电商转去做金融系统测试的工程师即使自动化技术再熟练也需要理解清算、对账、风控这些业务核心才可能胜任。测试工程师的职业天花板往往不是被技术限制而是被业务理解深度限制。
返回列表