ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

360测试工程师笔试全攻略:从用例设计到安全测试的答题策略

360测试工程师笔试全攻略:从用例设计到安全测试的答题策略 1. 这份笔试到底在考什么从岗位描述反推能力模型每年春招的笔试季总有同学在后台问我类似的问题360这种公司的测试工程师笔试到底考什么是不是就考几道“找bug”的题说实话我在刚准备校招那会儿也是这么想的直到真正拿到卷子才发现测试工程师的笔试远远不止“找bug”这么简单它考察的是一个完整的能力链路从需求理解、用例设计、缺陷分析到系统知识、编程基础、甚至产品思维每一项都在悄无声息地打分。先说结论一份有区分度的测试工程师笔试卷题目类型通常围绕四个维度展开——用例设计、缺陷分析、技术基础Linux/数据库/编程/网络、以及业务理解。前两类是“软实力”的体现后两类是“硬功夫”的检验。而360这类业务线覆盖安全软件、浏览器、智能硬件的公司还会额外加入兼容性、性能、安全性相关的考察点这一点在2018年那批春招题目里体现得尤其明显。很多同学拿到卷子习惯从第一题开始奋笔疾书我的建议是反过来——先把整张卷子扫一遍用五分钟判断每个题型的“投入产出比”。用例设计题通常是分值大头编程题次之而概念题往往是送分题。先送分题后大题先易后难这是考场上的基本策略但这个策略的前提是你对整张卷子的题型分布有预判。既然要拆解这份合集我们就按题型维度一个个说透每一类我都会给出“题目长什么样、考官想看到什么、什么样的答案能拿高分”三个层面的分析最后再补充一些就算题目没见过也能稳稳输出的通用技巧。2. 用例设计题看着像送分题其实是最大的分水岭2.1 一道典型题目暴露出的思维层级用例设计类题目几乎是所有测试笔试的必考题360的春招卷也不例外。典型的问法就是请针对某一功能设计测试用例。我见过比较有代表性的题目是请针对微信朋友圈的“发表文字动态”功能设计测试用例。为什么说这题是分水岭因为它的门槛极低任何一个做过测试实习的同学都能写出十几条用例但想拿高分需要在有限时间内展现出完整的测试思维这就是差距所在。低分答案长什么样把“输入文字”“点击发表”“查看朋友圈”这种主流程拆成三条用例就结束了最多再加一条“断网时发表失败”。这种答案的问题在于只有主流程没有分支只有正常路径没有异常场景只有功能验证没有兼容、性能、安全维度的延伸。而一个完整的用例设计背后是一套可复用的方法论。我通常建议候选人按下面这个维度列表来组织答案维度思考点功能主流程正常输入、发表成功、动态可见输入限制字数边界1字、恰好最大字数、超长、特殊字符、纯表情、纯空格、空内容异常与中断断网、弱网、发表过程中杀进程、来电打断交互反馈发表按钮置灰逻辑、loading提示、成功/失败toast数据一致性发送后列表顺序、评论点赞数刷新、缓存与服务器同步非功能连续快速发表的性能表现、弱网超时时间、数据流量消耗兼容性安卓/iOS不同版本、不同分辨率、微信内不同入口如果你能按这个框架去拆哪怕时间紧张只写出其中一部分也能让阅卷人一眼看出“这个候选人脑子里有测试理论”而不是凭感觉在黑盒里乱戳。2.2 边界值、等价类、场景法不是背出来的是用出来的用例设计题的高分答案往往同时应用了等价类划分、边界值分析、场景法等经典测试设计方法。以“发表文字动态”为例等价类划分意味着你要把输入域分成有效和无效两大类每类再细分。有效等价类正常长度的中英文、数字、标点、emoji。无效等价类超长文本、纯空格、含有非法字符等。边界值分析则是抓住输入的临界点。假设最大字数是2000字那你要测试的不是1000字这种“安全值”而是1999字、2000字、2001字这三个边界点加上0字和1字这两个起始边界。笔试答题时把这几个边界明确写出来比你写十条“输入各种不同内容”的用例要高级得多。场景法则侧重从用户操作流的角度串联用例。比如用户A发表动态用户B在评论区回复用户A再回复用户B的评论——这是一个完整的互动场景不是孤立的输入输出测试。场景法的核心价值在于它能帮助测试人员发现“各功能模块串联时产生的问题”而这恰恰是初级测试最容易遗漏的盲区。如果你能在用例设计题中明确写出“我用等价类划分覆盖了XX用边界值分析了XX用场景法串联了XX”那么即使用例本身有遗漏考官也会认为你有测试设计的意识——这种意识在笔试评分中是非常重要的加分项。3. 缺陷分析题别急着写答案先判断它考的是哪一层3.1 一个bug描述题的标准作答姿势缺陷分析题有两种常见考法一种是给你一段bug描述让你补充完整另一种是给一个现象让你分析可能的原因并设计排查步骤。2018年360春招的题目风格更偏向后者比如某用户反馈在360安全浏览器中打开某银行官网页面排版错乱部分按钮无法点击。请分析可能的原因并说明你的排查步骤。这题看起来不难但很多同学栽在一个地方把“可能的原因”和“排查步骤”混为一谈直接回答“可能是页面兼容性问题”完了。这等于没答。正确的思路是分三步走。第一步明确问题的复现条件和影响范围是所有用户都出现还是只有某类用户出现是固定某一个网址还是所有https网站都异常第二步从可能性高的原因逐一排查通常按“环境层→网络层→页面代码层→浏览器层”的顺序先看用户操作系统版本和浏览器版本是否在兼容列表内再看是否安装了某些插件导致页面脚本被拦截然后看页面的CSS/JS是否使用了较新的语法而不被当前内核支持最后确认是否是浏览器安全策略如混合内容拦截导致部分资源加载失败。第三步给出结论和临时规避方案。这个答题结构展示的是“分析问题→定位问题→解决问题”的完整链路而不仅仅是罗列猜测。考官想从这道题里看到的是你的排查逻辑是否清晰、是否有分层思维以及面对用户反馈时是否具备甄别优先级的能力。3.2 从缺陷定位看测试工程师和开发工程师的思维差异我经常在模拟面试中问候选人一个问题测出bug之后你的下一步是什么很多人的回答是“提交缺陷单”。这当然没错但这不是唯一答案。测试工程师在发现bug后还应该花时间做一件事初步定位。即使不做代码级定位至少要知道这个bug属于哪个模块、受什么因素影响。这种“带着定位信息去提交bug”的习惯能极大提升和开发之间的沟通效率。360的笔试题目之所以设置缺陷分析类问题本质上就是在筛选具备这种“测开一体化”思维的候选人。所以我给大家的建议是在笔试阶段即使题目不要求写定位分析在用例设计或bug描述的答案末尾加一句“如果该bug导致主流程阻塞我会优先补充该场景的回归用例并检查邻近模块是否受影响”之类的话。这不是画蛇添足这是向考官传递你的全局意识。4. 硬核基础题Linux、数据库、编程题的答题策略与高频考点4.1 Linux命令题不只要会写还要写对场景测试工程师笔试中的Linux题一般不会考特别偏门的命令翻来覆去就是文件操作、日志查看、进程管理、权限管理这几类。但“会写命令”和“写对场景”是两回事。以“查看日志”为例。一道典型的考察方式是有一个应用在运行中出现了异常日志文件是app.log你怎么定位问题低分回答tail -f app.log。这个答案没毛病但不够聪明。更完整的思路是先用tail -n 100 app.log查看最新100行日志了解异常的大致内容再用grep -n ERROR app.log | tail -n 50把错误信息按时间倒序捞出来这样能快速定位最近一次报错如果怀疑是某个时间段的问题用sed -n /2024-03-01 10:00/,/2024-03-01 10:30/p app.log截取该时间段的日志最后用awk {print $1} app.log | sort | uniq -c统计日志级别分布判断是偶发问题还是系统性问题。看到区别了吗第一层是“会用命令”第二层是“知道在什么场景下组合使用命令”。笔试答题时把命令和命令的使用意图一起写出来印象分会明显提升。高频考点再给大家列一份清单文件操作ls、cp、mv、rm、find、日志查看tail、head、grep、sed、awk、进程与端口ps、top、kill、netstat、lsof、权限管理chmod、chown、压缩打包tar、zip、网络测试ping、curl、telnet。这些都是我曾经在笔试里实实在在遇到过的考点优先级从高到低排列。4.2 数据库SQL题多表查询和聚合函数是核心得分点数据库题目在测试笔试中的出镜率也很高因为测试工作经常需要查库验证数据正确性。考察重点通常围绕查询SELECT、条件过滤WHERE、排序ORDER BY、分组聚合GROUP BY HAVING、多表关联JOIN、以及数据更新UPDATE、DELETE这几个方面。举个例子假设有一个订单表orders和一个用户表users题目问统计各用户的订单数量且只显示订单数量大于3的用户。这个SQL怎么写SELECT u.username, COUNT(o.order_id) AS order_count FROM users u JOIN orders o ON u.user_id o.user_id GROUP BY u.username HAVING COUNT(o.order_id) 3;这个例子包含了JOIN、GROUP BY、HAVING、COUNT四个关键知识点是SQL题里很典型的组合考法。笔试答题时要注意把表名和字段名写得规范不要用a、b这种无意义的别名除非题目要求用这样既方便阅卷人理解也降低自己写错关联条件的概率。另一个我见过的高频考题是有两个表一个是产品表product一个是订单明细表order_detail找出“没有被任何订单引用过的产品”。这本质上是考察NOT EXISTS或LEFT JOIN IS NULL的用法SELECT * FROM product p WHERE NOT EXISTS ( SELECT 1 FROM order_detail od WHERE od.product_id p.product_id );这类题目没有特别复杂的逻辑关键是你平时有没有真正写过。建议备考阶段每天保持5-10条SQL的练习量不要只看不敲。4.3 编程题思路比AC更重要但至少要把框架写出来编程题是很多测试候选人的心理阴影但其实测试岗的编程题难度普遍低于开发岗。常见题型包括字符串处理、数组操作、简单算法排序、查找、以及一些和测试场景挂钩的逻辑题。360的笔试编程题一般不会太难但会考察代码规范和边界处理意识。举个例子题目可能是给定一个字符串反转其中的单词顺序。这个题典型的解法是先按空格拆分再逆序拼接。关键是你能不能写出边界情况——比如字符串为空、字符串只有空格、单词之间有多个空格。这些边界处理恰恰是测试工程师应该最敏感的地方如果你在写代码时就能考虑到测试用例的覆盖这本身就是一种优势。答题时我给大家的建议是即使不能保证代码完全AC也一定要写出完整的函数框架、清晰的注释以及关键边界条件的处理逻辑。阅卷人的评分维度通常包含“解题思路是否清晰”“代码是否规范”“是否正确处理边界条件”几项光写出一个边界判断就能拿到不少分数放弃不写才是最可惜的。5. 兼容性、性能与安全360这类公司的测试笔试特色考点5.1 为什么大厂笔试总有“意识类”题目360的业务线跨度很大PC安全软件、手机助手、浏览器、智能硬件、智能摄像头、儿童手表……这意味着他们的测试团队面对的测试环境极其复杂。所以笔试题目中经常会出现一些不直接考“怎么做”而是考察“有没有这个意识”的问题。比如如何测试一个PC客户端在升级前后的兼容性这种题目没有标准答案但高分答案一定包含以下几个维度前后版本的配置兼容、用户数据的迁移兼容、不同操作系统版本Win7/Win10/Win11的兼容、第三方软件冲突的排查、以及升级失败的回滚机制验证。再比如如何验证一个网页在弱网环境下的体验这也是笔试和面试中反复出现的题。回答时要从网络层面2G/3G/4G/5G/Wi-Fi切换、弱网模拟工具如Charles的Throttle设置或Chrome DevTools的Network Throttling、以及业务层面的表现超时提示、重试机制、断点续传几个方向来展开。这类题目考察的其实是“你是否有针对复杂环境设计测试策略的能力”。平时只测过单一环境的同学可能连从哪些维度思考都不知道。我的建议是备考阶段多积累一些典型业务场景的测试方案比如电商下单、直播观看、文件上传、即时通讯——这些场景是跨公司的通用考点准备一套自己的“场景测试维度清单”比背一百道题有用得多。5.2 安全测试怎么考不是让你挖漏洞而是让你懂边界提到360很多人第一反应是安全。但测试工程师笔试中的安全测试题一般不会让你真的去挖漏洞或分析恶意代码而是考察你对安全测试的基本认知和数据保护的意识。常见考法有两种。一种是概念类的什么是SQL注入什么是XSS攻击如何通过测试手段验证系统是否存在这些漏洞答题时把原理说清楚再举一个简单的验证案例比如在搜索框输入 OR 11观察是否返回异常数据列表就足够了。另一种是场景类的某功能涉及用户手机号等敏感信息测试时需要注意什么这时候要回答的点包括日志中是否可能记录敏感信息、接口返回是否包含冗余的敏感字段、数据传输是否加密HTTPS、权限控制是否到位普通用户能否越权访问其他人的数据、以及测试数据本身是否脱敏。安全测试的意识其实渗透在测试工作的方方面面。笔试时出现这类题目不要求你给出深度漏洞分析但你要能体现出“我从测试角度关注数据安全和系统安全边界”的敏感度。6. 横向对比一份高分开局卷面长什么样为了让大家更直观地感受不同作答水平的差异我把自己在模拟评审中见过的两种典型卷面做个横向对比正好也能帮你们自查。对比维度低分卷面特征高分开局卷面特征时间分配在用例设计题上反复涂改导致编程题没时间写先快速完成概念题用例设计题按框架展开编程题预留20分钟用例设计只列主流程1个异常场景涵盖功能、异常、边界、兼容、性能多个维度写明设计方法缺陷分析直接给结论无推导过程先写假设再按环境→网络→代码→配置的链路排查最后给结论编程题代码有主逻辑但无边界处理无注释函数结构完整关键边界条件有注释思路清晰卷面表达大段文字无分层想到哪写到哪用小标题/列表组织答案重点加粗试卷阅感好安全意识完全没有提及数据或安全维度涉及登录、数据场景的题目主动补充安全测试视角你们会发现“高分卷面”的特征其实和“好的测试用例”高度一致——都要求结构清晰、覆盖全面、重点突出、有兜底意识。这也从侧面说明笔试成绩的高低不完全是知识储备的体现也是测试思维的体现。7. 笔试后的衔接你的答案就是面试的预演笔试的目的不只是拿一个分数它还是面试的“素材库”。我在辅导候选人时反复强调一句话笔试时怎么写的面试时就要准备好怎么讲。举个例子如果你在试卷上写了一个测试用例的边界值分析比如2000字上限的1999/2000/2001三个边界点那么面试官大概率会在面试中追问为什么选这三个点如果线上真的出现了2001字的输入系统会怎么处理你希望开发怎么修这些追问都在考察你是否真正理解自己在卷面上写下的内容而不是背了一个边界值分析的方法论。所以考完笔试别急着放松花30分钟时间复盘一下自己的答卷每一道题目的核心知识点是什么如果让你重新答一遍你会补充什么这些补充的内容极有可能就是面试中的题目。我自己当年笔试后就在笔记本上写了满满三页复盘笔记后来面试中遇到的两道场景题居然真的和复盘时想到的问题高度重合。另外提醒一点笔试中的代码题和SQL题面试时可能会被要求手写或在线coding。考完试之后把你写过的代码重新在本地跑一遍确认语法无误、边界处理正确这不仅是复习也是在为面试做实战演练。8. 一些针对春招备考的“过来人”经验写到这里大概把360测试工程师笔试的常见考点和答题策略都梳理了一遍。最后集中分享几条我实操下来觉得最有用的备考经验每条都是一次次踩坑换来的。第一条备考不要只刷题要建立自己的“测试知识地图”。按功能测试方法、用例设计方法、缺陷管理流程、Linux常用命令、SQL常用操作、网络基础、自动化测试概念、性能测试概念、安全测试概念这几个模块去整理笔记每个模块配合3-5道练习题。这样即使笔试遇到没见过的题也能在知识地图里找到对应的维度去组织答案。第二条练习用例设计时不要只写“正常/异常”两级要养成“再想一步”的习惯。比如测一个登录功能正常流程是输入账号密码点击登录那么“再想一步”密码错误时的提示信息是否正确连续输错5次是否会有锁定策略锁定后多长时间解锁忘记密码的入口跳转是否正常这些“再想一步”想出来的用例往往就是和其他候选人拉开差距的地方。第三条编程题不要只求“能跑”。用测试工程师的标准来要求自己写完代码后先在心里列出你用于验证这段代码的测试用例看看边界条件是否都处理了。如果时间允许把你想到的异常输入也写到注释里。这种“用测试思维写代码”的表现很容易获得阅卷人的好感。第四条笔试时间分配上如果遇到完全没思路的题不要死磕。先标记好跳过把所有会做的题目做完再回来慢慢啃。测试笔试的题量通常不小有时候“整体完成度”会比“单题完成质量”更重要。但同样的如果题目数量不多、时间充裕那就尽量每道题都答得完整、充分宁可多写也不空着。卷面上“留白太多”本身就是一种减分信号。第五条也是最后一条笔试前一定提前熟悉360这家公司的产品线和业务方向。这不是说题目会直接考产品知识而是说如果你能在用例设计或场景题中自然带上该公司产品的特征比如测试浏览器时可以提及安全导航拦截、广告过滤这类功能点你的答案会显得更有针对性也更容易让阅卷人记住你。这种“功课做在考试前”的细节有时候比多刷十道题更管用。测试工程师的笔试说到底不是在考你“记住了多少”而是在考你“遇到问题时会怎么想”。把思维框架搭起来、把常见场景练熟、把答题逻辑理顺考场上自然会稳定输出。希望这份拆解能帮到正在准备春招的你祝笔试顺利。
返回列表