十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

2017美团测开笔试真题复盘:计算机网络、Linux与测试设计

2017美团测开笔试真题复盘:计算机网络、Linux与测试设计 我到现在还记得2017年那个秋天美团秋招的测试开发工程师笔试题目在牛客网上被刷屏的场景。作为一个后来专门整理过大厂测开真题的人我可以负责任地说那一年的卷B在测开笔试题里属于相当有代表性的——它巧妙避开了纯刷算法题的套路把重心放在计算机网络、Linux、数据库、测试用例设计这些真正贴近测试开发日常工作的硬核技能上而且很多题目都结合了美团当时的业务场景。这篇内容我会直接把当年卷B里最值得做的几类题目拉出来一题一题拆解背后的考点和解题思路再结合我后来实际做测试开发的经历聊聊这套题目对今天的求职者还有哪些参考价值。无论你是正在备战大厂测开岗位的应届生还是工作了几年想查漏补缺的测试工程师这篇都能帮你理清测开笔试的考察逻辑。1. 为什么2017年的美团测开真题放到今天仍有参考价值很多同学看到2017年三个字可能第一反应是这么多年过去了题目早过时了吧恰恰相反我复盘过近十年各大厂的测开笔试题美团这套卷B放在今天依然有很强的参考意义原因在于它考察的不是某个框架的API用法而是测试开发这个岗位最底层的核心能力。1.1 美团测开笔试的出题风格业务与技术深度结合2017年的美团正处于快速扩张期外卖、到店、酒旅等业务线都在大量招人。测开岗位的笔试题目也明显带着业务驱动的印记——不会让你写一个毫无背景的排序算法而是给你一个登录页面、一个订单查询功能、一个支付流程让你设计测试用例或找出潜在的坑。这种出题风格和美团作为业务型公司的技术文化高度一致。测试开发工程师本质上不是纯粹的开发岗而是懂开发的测试人你需要站在用户角度思考功能是否正常又要站在工程角度思考代码是否有隐患。卷B里很多题目都体现了这种双重视角这也是为什么它到今天依然是测开笔试的经典范本。1.2 测开笔试的核心逻辑筛选的不只是会写代码的人我见过不少技术不错但笔试挂掉的同学问题通常不在编程能力而在思维模式。美团卷B特别明显的一点是它考察的是你面对一个具体问题时的分析路径。举个例子同样是考察Linux命令普通的笔试可能直接问如何查看进程美团会问的是一个服务端口被占用你怎么定位到占用进程并处理。这两种问法的差别就是知道和会做的差别。测试开发日常要在Linux服务器上部署环境、查看日志、排查线上问题这种实操思维才是岗位真正需要的。所以如果你现在准备大厂测开岗不要把精力全花在LeetCode上。美团卷B这样的真题恰恰在提醒你计算机网络、Linux、数据库、测试理论这些基本功才是测开笔试的大头。2. 2017年美团测开笔试卷B的题型分布与考察目标在逐一拆解题目之前先整体看一下这张卷子的结构。我当时拿到卷B的第一感觉是范围广、题量大、每个知识点都不会考得太深但覆盖面极广稍微有薄弱环节就容易被筛掉。2.1 卷B的整体题型结构根据我的复盘整理2017年美团测开卷B大致包含以下几类题型我把它整理成了一张表题型题量占比考察核心典型考点单选题约30%知识广度计算机网络、操作系统、数据结构、数据库基础多选题约15%知识深度与准确性易混淆概念辨析、边界条件判断简答题约25%表达能力与分析能力测试用例设计、缺陷定位思路、场景分析编程题约30%编码基本功字符串处理、数组操作、简单算法实现这个分布非常有代表性。单选和多选主要用来快速过滤基础不扎实的候选人简答用来考察测试思维编程题则验证动手能力。值得注意的是整张卷子几乎没有考察任何具体测试工具的使用比如LoadRunner、QTP之类的——这说明美团更看重的是底层能力工具可以在入职后快速上手但思维方式和基础知识才是分水岭。2.2 每个题型背后真正想考察的能力单选题和多选题看似简单实际上暗藏玄机。我记得卷B里有一道关于TCP三次握手的多选选项中有一个是客户端发送SYN后进入SYN_SENT状态另一个是服务器收到SYN后进入SYN_RCVD状态看起来都差不多但其实考察的是你对TCP状态迁移的精确记忆。这种题目没有模糊空间不会就是不会。简答题是拉开差距的关键。同样一道设计一个电梯的测试用例基础的同学会列功能点优秀的同学会从功能测试、性能测试、兼容性测试、异常场景、易用性测试等多个维度展开。我在实际招聘中面试过很多候选人能在这个题目上答得条理清晰的非常少。编程题部分卷B考的并不是特别复杂的算法。据我回忆有一道题是字符串相关的内容还有一道是数组操作。难度大致相当于LeetCode的Easy到Medium之间。但要注意笔试环境是没有IDE自动补全的你需要在有限时间内写出逻辑正确、边界条件完整的代码这本身就考验基本功。3. 计算机网络真题复盘三次握手、HTTP状态码与边界场景计算机网络是测开岗笔试的必考模块美团卷B也不例外。这一部分题目占了不小的比重而且和测试工作的关联度极高——你测试一个接口要知道HTTP状态码的含义你排查一个线上问题要理解网络请求的完整链路。所以这两个知识点是我重点复盘的内容。3.1 三次握手的变体题不是死记硬背而是理解设计意图卷B里有一道让我印象深刻的题目为什么TCP建立连接需要三次握手而不是两次或四次放在今天的笔试里依然高频出现。大部分同学的答案都会停留在两次不可靠四次浪费资源这种层面但美团这道题其实在引导你深入思考。我个人的理解是三次握手本质上是让通信双方确认彼此的收发能力正常。第一次握手客户端发送SYN服务器收到后知道客户端的发送能力没问题第二次握手服务器回复SYNACK客户端收到后知道服务器的收发能力没问题第三次握手客户端回复ACK服务器收到后知道客户端的接收能力没问题。这样双方就都确认了对方的收发能力都正常可以开始传数据了。测开岗位为什么爱考这个因为测试的本质就是验证双方是否达成一致TCP握手协议其实就是一个最经典的分布式一致性场景。如果你能从这个角度理解握手协议笔试时写出来的答案就会比单纯背教科书高一个档次。3.2 HTTP状态码的考察不只是记住404和502卷B中关于HTTP状态码的题目我记得最清楚的是给了一段场景描述让你选出最可能的状态码。场景大概是客户端发起请求服务器收到请求后由于服务器内部程序的逻辑错误导致无法完成请求正确答案是500。这道题偏基础但后面还有一道加深的什么场景下会出现302什么场景下会出现304结合测试开发的实际工作来理解302是临时重定向常用于未登录用户访问需要登录的页面时跳转到登录页304是Not Modified常用于缓存场景服务器告诉客户端你可以直接用本地缓存。如果你测过网站的性能优化对304一定不陌生——它直接关系到响应时间的长短。还有一道多选题问的是关于Cookie和Session的说法正确的是选项中包括了Cookie存储在客户端Session存储在服务器端Cookie可以被禁用Session不受Cookie禁用的影响Session依赖于Cookie机制等。这道题的陷阱在于最后一项——Session并不永远依赖Cookie也可以通过URL重写来传递Session ID但如果选项明确说是默认情况或一般情况那就是对的。3.3 从HTTP到TCP网络分层模型的实际应用卷B里还有一道关于网络分层模型的题问的是TCP在哪一层IP在哪一层HTTP在哪一层。这种题目本身很简单但引申出来一个测开岗位必须理解的问题当你测试一个接口超时的时候问题可能出在应用层代码逻辑问题也可能出在传输层网络丢包还可能出在网络层路由不可达甚至物理层网线松动。我在美团工作期间遇到过很多次接口超时的排查最后发现是物理网络抖动而不是代码问题。这种经验在笔试中当然没法直接体现但如果你在网络分层模型的题目中不满足于背答案而是往这个知识点在排查问题时怎么用的方向多想一步答题的深度自然就出来了。4. Linux与数据库测试开发的底层生存技能坦白说Linux和数据库在2017年的美团卷B里占比不算特别高但凡是考到的题目都特别实用。这也符合测开岗位的日常——你需要在Linux服务器上查看日志定位Bug需要用SQL去数据库里验证测试数据是否正确。4.1 Linux高频命令日志排查与进程管理的实战场景卷B关于Linux的题目我记得有一道是给出一个场景某个Java进程占用了过多的CPU资源你需要找到这个进程并查看其线程信息。选项里都是常见的命令组合。正确的思路是先用top查看系统资源占用情况找到占用CPU最高的进程PID再用ps -Lp pid或top -Hp pid查看该进程下所有线程的CPU占用率。如果还能继续深入可以用jstack pid导出线程堆栈定位到具体的代码行。这里分享一个我后来实际工作中非常常用的排查链路当线上接口突然变慢时我一般会先top看CPU和内存然后ps aux --sort-%cpu | head看哪个进程异常再用netstat -tlnp | grep port确认端口对应关系最后用tail -f看应用日志。这套组合拳在笔试里可能只考单个命令但真正的测开老手都是把命令串成流程用的。卷B里还考了一道文件权限相关的题给出一个-rw-r--r--的文件问属主、属组和其他用户分别有什么权限。这道题的关键在于理解读权限(r4)、写权限(w2)、执行权限(x1)对应的数字表示方式以及三位数字分别代表哪个用户类型。比如chmod 755实际是属主rwx、属组r-x、其他用户r-x。4.2 数据库索引与事务隔离级别的测试应用数据库相关的题目卷B考了索引相关的内容这类题目在现在的笔试里依然高频。核心考点包括索引是B树结构覆盖索引可以减少回表查询最左前缀原则适用于联合索引索引列上使用函数会导致索引失效。最左前缀原则是我强烈建议所有测开同学吃透的内容。比如一个(a, b, c)的联合索引查询条件包含a、a和b、a和b和c时都能走索引但如果查询条件只包含b或者只包含c索引就失效了。测开工程师在写测试SQL或分析SQL性能问题时这个知识点几乎是必用的。事务隔离级别那道题我记得很清楚因为选项里有脏读和幻读。当时不少同学在脏读和幻读之间犹豫。脏读是读了另一个事务未提交的数据幻读是同一个事务内两次相同查询返回了不同的行集其他事务插入了新行。提交读能防止脏读可重复读能防止脏读和不可重复读但只有串行化能完全防止幻读。美团卷B虽然没直接考MySQL的默认隔离级别但如果你知道MySQL默认是可重复读而Oracle默认是提交读答题时你的专业度会明显高一线。4.3 一条SQL题的完整解题过程卷B的SQL题目通常不复杂。有一道题大概是查询每个班级的学生人数两表联合查询需要用到GROUP BY。但聪明的同学会在这种基础SQL之外多想一步如果你需要查询学生人数大于30人的班级那就需要用到HAVING子句了——因为WHERE不能和聚合函数一起使用。我在实际面试候选人时发现很多同学对WHERE和HAVING的区别说不清楚。简单一句话WHERE是对分组前的记录进行筛选HAVING是对分组后的结果进行筛选。查每个班级人数超过30的班级应该写成SELECT class_id, COUNT(*) FROM students GROUP BY class_id HAVING COUNT(*) 30。5. 测试用例设计真题外卖下单与登录模块的边界艺术测开笔试和纯开发笔试最大的区别在于一定会有测试用例设计的大题。美团卷B的用例设计题非常贴近业务我印象里有一道是关于外卖下单功能的还有一道是经典的登录功能。这些题目看起来不难但想拿高分需要相当完整的思维框架。5.1 等价类与边界值一个登录框的完整测试用例登录功能的测试用例设计是面试题的常青树。美团卷B关于登录框的版本是用户名和密码登录用户名需6-16位字母或数字密码需8-20位且包含字母和数字验证码4位数字。要求设计有效等价类和无效等价类的测试用例。有效等价类包括用户名是6位字母、16位数字、8位字母数字组合密码8位包含字母和数字、20位包含字母和数字验证码4位数字点击登录按钮后成功进入系统。无效等价类的关键在于穷举各种失败组合用户名为5位或17位刚好在边界值的上一格和下一格用户名包含特殊字符下划线、、空格密码为7位或21位边界值外密码全为字母或全为数字不满足包含字母和数字的规则验证码为3位或5位边界值外验证码包含字母不满足4位数字要求验证码正确但用户名或密码错误提示用户名或密码错误用户名正确但密码错误连续输错5次账户被锁定边界值分析法在这个题目里是得分关键。6位是下边界16位是上边界所以你需要测5位、6位、16位、17位四种情况。同理密码是7位、8位、20位、21位。能写出这一层的候选人至少说明对边界值法有实战经验而不是光知道理论。5.2 场景法测试外卖下单流程的用例设计思路外卖下单的测试设计题按照我后来在业务线做测试的经验这类题最适合用场景法来拆解。核心流程是选餐→加购物车→确认订单→填写地址→选择支付方式→下单支付→商家接单→骑手配送→确认收货。正常场景很简单关键是异常场景。我可以大致列一个当年答题时的框架场景类型具体场景预期结果正常场景选餐、下单、支付成功、商家接单、骑手取餐、送达订单状态正常流转异常场景支付成功后商家拒单自动退款到原支付账户用户收到通知异常场景支付时余额不足提示余额不足保留订单草稿异常场景配送超时订单显示已超时可申请赔偿或取消中断场景下单后网络中断订单创建成功但未支付下次打开App提示继续支付并发场景同一菜品最后一份被两人同时下单仅一人下单成功另一人提示已售罄回答这类题目最忌讳的是只列正常流程。面试官想看的是你对异常场景的覆盖能力因为测开工程师日常最重要的价值不是验证功能正常而是让功能在异常情况下也能有合理的表现。我当时复盘时专门看了很多优秀答案发现高分卷的特征是除了异常场景还兼顾了性能测试1000人同时打开店铺页面的响应时间、兼容性测试iOS和Android、不同机型、弱网测试3G/4G/WiFi切换、无网时点击下单。5.3 用例粒度的把握避免两种极端我批改过不少模拟笔试的用例设计题发现两类典型的失败模式。一种是粒度太粗只写了验证登录成功和验证登录失败两条另一种是粒度太细把鼠标悬停在登录按钮上时按钮颜色变化也写进去了。都在及格线以下。好的用例设计是分层的第一层是功能主流程第二层是每个功能的合法与非法输入组合第三层是异常场景超时、中断、并发第四层是兼容和体验细节。这四个层次缺一不可。美团卷B的评分标准我不确定但从大厂测开岗位的能力模型来看能够写到第三层的是合格能写到第四层的是加分。6. 编程与算法题复盘考的不是LeetCode是最容易被忽视的基本功美团卷B的编程题难度整体适中没有特别偏难怪的题目。但正因为它不偏不怪反而能反映出真实的编码水平。6.1 字符串处理统计每个字符出现次数的最优解据我整理到的信息卷B有一道题是给定一个字符串统计每个字符出现的次数并按出现次数从大到小输出。这道题考察了HashMap的基本使用、排序算法的选择以及字符串遍历的方法。最简单的解法是用HashMap统计每个字符的频次然后将entry转换成List进行排序。关键点有两个第一遍历字符串时是用toCharArray()还是charAt()在笔试场景下两者都可以但toCharArray()代码更简洁第二排序时要重写Comparator按value降序排列如果两个字符出现次数相同还需要按ASCII码升序排列这个细节很多同学容易漏掉。这道题的一个经典优化是如果字符串只包含小写字母则可以使用长度为26的数组代替HashMap利用ASCII码偏移量定位位置。这种优化在笔试里很加分因为它体现了你对数据结构的理解——HashMap底层也是数组加链表在已知key范围有限时直接用数组可以避免哈希冲突的开销。6.2 数组操作的边界条件最容易写错的数组中位数数组操作的题目我记得卷B也考过最典型的是一道求数组中位数的题难度在于如果数组长度是偶数中位数定义为中间两个数的平均值。题目直白但很多人在处理边界时出错。写代码时第一件事就是判断数组是否为空空数组直接返回0或者抛异常。然后判断长度的奇偶性len % 2 0时需要取arr[len / 2 - 1]和arr[len / 2]的平均值len % 2 1时直接返回arr[len / 2]。这个看似简单的问题我在实际面试中见过好几个候选人写出arr[len / 2 - 1]在长度为1时越界的Bug。另一个值得注意的点是如果数组是未排序的需要先排序再取中位数Arrays.sort()是默认升序排列的时间复杂度为O(n log n)。如果能用快速选择算法把查找中位数的复杂度降到O(n)那又是一个很大的加分项但这个在笔试中不要求写出排序方案已经能通过。6.3 编程题的时间复杂度意识美团卷B的编程题虽然不难但它对时间复杂度的要求是有隐含的。在笔试环境中一般会给出数据规模提示比如数组长度不超过10^5。如果你的解法是O(n^2)的嵌套循环大数据量下就会超时被判为不通过。所以复盘这套卷子时我特别想强调一个习惯每道编程题写完都要下意识分析一下时间复杂度并确认它满足数据规模的要求。这个习惯对测开岗尤其重要——你的价值不只是写出能跑的代码而是预判代码在大规模数据下的表现。这一点和测试工作里预估接口在高并发下的性能是同一套思维逻辑。7. 从热搜词看美团测开知识体系的进阶方向复盘完纸质题目我想把视野拉开一点。你可能会疑惑为什么现在搜美团测开笔试的时候会出现美团代付美团mtgsig美团逆向这些关键词这其实反映了美团技术栈在过去几年里的演进方向也悄悄暗示了测开岗位对技术深度要求的提升。7.1 美团业务技术栈与测试场景的强关联美团的核心业务是本地生活服务它有非常复杂的交易链路、营销系统、骑手调度系统和商家后台。这意味着美团测开工程师面对的是高并发、强一致、热点账户、风控反作弊等极具挑战的测试场景。比如美团代付这个搜索热词就涉及资金的代付流程测试时不仅要保证功能正确还要考虑资金安全、并发扣款不能超扣、对账要准确。这已经超出了基础功能测试的范畴需要测开工程师理解分布式事务、消息队列、缓存与数据库的一致性等知识。再比如美团mtgsig这类技术词本质上是美团自研的签名相关技术目的是保证接口请求的安全性。测开工程师在日常工作中需要配合风控团队测试这些安全机制理解签名生成的原理、不同参数的组合对签名结果的影响。这意味着如果你2024年去面美团测开岗位仅仅掌握2017年卷B的知识是不够的还需要补充以下内容接口自动化测试框架的设计与实现如基于Java的RestAssured或Python的Requests性能测试工具的使用JMeter、Locust和性能瓶颈分析CI/CD流水线的搭建与测试在流水线中的位置容器化技术Docker、Kubernetes在测试环境中的应用安全测试的基础知识XSS、SQL注入、越权访问7.2 测开笔试的进阶趋势从知识记忆到工程实践对比2017年卷B和近两年的美团测开笔试题难度提升非常明显。2017年还停留在Linux命令是什么SQL怎么写现在则更多地考察如何设计一个接口自动化测试框架如何定位一个线上偶发性的超时问题如何通过日志分析定位到代码行。这种趋势本质上反映了测开岗位在团队中地位的演变。2017年前后测开岗位还多少带着会用工具的测试工程师的色彩。而现在大厂的测开工程师需要具备真正的开发能力与研发工程师协同完成质量保障工作。一个优秀的测开要能看懂业务代码、要能写自动化测试工具、要能在测试环境搭建和线上监控中独当一面。所以如果你以2017年的美团卷B为起点来准备面试我的建议是把卷B中体现的基础知识学扎实利用它查漏补缺但视野要放得更远。笔试只是门槛真正让你拿到offer的是你在工程实践中的积累和思维方式。拿这套卷子反复练手之后我最大的体会是测开笔试从来不靠押题它考察的是你作为一个工程师的基本素养。计算机网络、操作系统、数据库、编程能力、测试理论这些内容每一样都像是武术里的马步和冲拳看似基础实则是你在职业道路上能否走远的关键。美团2017年的卷B之所以经典恰恰因为它把这些基本功以最接近业务的方式呈现出来让我在复盘时反复感受到基础不牢地动山摇这句话的分量。希望这篇拆解能帮你少走一些弯路。
返回列表