发布时间:2026/9/1 16:17:53
小米测试开发岗秋招笔试复盘:从算法到SQL的全面备考指南 去年九月中旬我坐在电脑前参加了小米集团2024届秋季校园招聘测试开发岗的第二批在线笔试。说实话在牛客网页面倒计时归零的那一瞬间我才后知后觉地意识到这场笔试不只是对“会不会写代码”的检验更像是一次对计算机基础、测试思维、工程习惯的全方位摸底。两个小时五十几道题有选择、填空、SQL、测试用例设计还有两道需要实际提交运行的编程题整体强度比不少互联网大厂的普通开发岗笔试要高一个档次。这篇文章我想把整个笔试过程、题目背后的考察逻辑、以及复盘后总结出的测试开发备考路线一次性讲清楚。准备投小米测试开发岗、或者想转行做测试开发的朋友都可以把这份内容当成一份实战笔记来参考至少能帮你在正式笔试前少踩几个坑。1. 笔试基本信息与整体节奏把握1.1 考试形式、平台与硬性条件小米测试开发岗第二批笔试安排在9月中旬的某个晚上我所在的场次是19点到21点时长120分钟。这里稍微展开一下因为不同批次的题量和时长可能会有出入我从同期群里大家的反馈看整体结构是基本稳定的。用的平台是牛客网的企业笔试系统前置要求是电脑必须有摄像头全程录像系统会自动监测切屏次数。笔试前半小时需要提前进房间做设备检测这一步千万别跳我就见过同组的朋友因为摄像头驱动问题折腾了十几分钟才进入页面心态直接受影响。题量方面我们这批大概是这样的组合单选和不定项选择题一共40多道主要集中在数据结构、操作系统、计算机网络、数据库和软件测试基础然后是2道SQL题和2道Linux相关的命令场景题再是1道测试用例设计题最后是2道编程题。总分100分编程题占的权重最高合计40分其他客观题和主观题均摊60分。这种分值结构其实透露了一个信号算法和代码能力是硬门槛但测试思维、数据库功底和Linux实操经验一样都不能拉胯。1.2 我的答题顺序与时间分配策略拿到试卷后我第一件事不是从头开始逐题作答而是用两三分钟快速浏览全部题目把编程题、SQL题、测试用例设计题的位置、分值和难度都估了一遍心里排一个“先拿哪部分分”的优先级。很多同学容易一上来就死磕第一道选择题做到后面发现时间不够编程题这是我后来在复盘时最想提醒大家的一点。我的策略是先把有把握的选择题快速过一遍拿不准的先标记不恋战然后做SQL和Linux题因为这类题目只要基础扎实就一定能做对属于“确定性分数”接着写测试用例设计题这个题主观性强只要结构清晰、覆盖全面很容易拿大部分分数最后留出大约70到80分钟集中攻坚两道编程题。实际体验下来这个顺序是合理的。编程题虽然分值高但如果前面客观题耗时太多很容易出现代码写一半甚至编译都没跑通的窘境得不偿失。2. 考了什么四大考察板块逐项拆解2.1 计算机基础选择题的性价比之王小米测试开发岗的客观题范围很典型基本就是把“测试工程师需要的计算机基础”和“开发工程师的通用基础”混在一起考。数据结构是绝对主力数组、链表、栈、队列、哈希表、二叉树都有涉及。我印象较深的一道题是关于B树相比B树的优势这明显是从数据库索引的视角出的题。操作系统方面进程与线程的区别、死锁产生的四个必要条件、页面置换算法几乎是必考三件套。计算机网络部分TCP三次握手和四次挥手、HTTP状态码含义比如301、302、304的区别、GET和POST在语义上的区别都是高频中的高频。数据库在选择题里也会出现考察事务的ACID特性、SQL的执行顺序、索引失效的场景、INNER JOIN和LEFT JOIN的差别。我多说一句很多同学准备测试开发岗时把精力全部放在刷算法题上觉得数据库会简单增删改查就行但实际上从笔试到面试SQL能力被考察的频率远超想象。测试开发日常要写数据构造脚本、查询线上数据验证问题SQL不过关是很明显的能力短板。2.2 测试理论岗位认知的试金石既然岗位叫“测试开发”测试理论必然要考而且考得挺细。我们这批涉及的点包括软件测试的V模型和W模型、黑盒测试与白盒测试的区分、测试用例设计中的等价类划分和边界值分析法、缺陷Bug的生命周期、回归测试和冒烟测试的应用场景。很多选择题的考点其实就是大家嘴边常说的“八股文”但这部分恰恰是性价比最高的内容——只要花时间背熟并且真正理解就能稳定拿分。其中有一道多选题我记得很清晰列出了几种用例设计方法要求选出属于“白盒测试方法”的选项里面混着条件覆盖、判定覆盖、正交实验法、错误推测法。这就是在考察你有没有把“逻辑覆盖”这个概念理解透光背名词绝对不行。备考阶段强烈建议把软件测试核心内容完整过一遍重点不是背概念而是理解每个方法在什么场景下使用、怎么落地。比如边界值分析不是只知道“取边界内一点和边界外一点”就够了而是要能对着一个具体的输入框讲清楚“合法区间、上边界、下边界、相邻非法值”分别怎么取。2.3 数据库与Linux易被忽视的实战分小米的笔试系统支持Java、Python、C等主流语言提交编程题但除此之外还会直接考察工具能力。比如选择题里可能出现“文件权限644的含义”“某个命令的作用是什么”之类的Shell题目Linux常用命令属于默认必备技能。为什么测试开发岗这么重视Linux因为测试环境绝大多数部署在Linux服务器上排查线上Bug、查看服务日志、分析接口性能全都要和命令行打交道。笔试里虽然不会让你真的登录服务器操作但会以场景题的形式考察给你一个日志文件路径让你写出统计某个状态码出现次数的命令或者给你一个进程卡死的场景问你怎么定位并杀掉进程。这些题目一旦掌握就是送分题但没实操过的人很容易写得似是而非。2.4 编程题与算法硬门槛编程题是区分度最高的部分。我们这批的两道题整体难度大概在LeetCode中等水平没有特别偏难怪的题目但考察点非常明确第一道是“最长不含重复字符的连续子串长度”经典的滑动窗口第二道是“设计一个支持过期时间的LRU缓存”属于数据结构设计题。两道题都要求自己处理输入输出格式所以平时刷题习惯了核心代码模式的同学一定要提前适应牛客网这种需要自己写完整输入输出解析的ACM模式。这里给一个非常务实的建议笔试前一周至少每天练一道需要自己写输入输出的题目。不要觉得这是小事真到了考场很多人在读取输入数据上就浪费了十几分钟这才是最亏的。3. 重点题目复盘与考点延伸3.1 滑动窗口编程题思路与代码第一道编程题是给一个字符串要求找出最长的不含重复字符的子串并返回长度比如输入“abcabcbb”返回3。核心思路是维护一个滑动窗口用字典记录每个字符最近一次出现的位置。右指针不断向右扩展当遇到已经在窗口内出现过的字符时把左指针移动到该字符上次出现位置的下一个位置同时持续更新最大长度。当时我提交的Python代码如下def length_of_longest_substring(s: str) - int: char_index {} left 0 max_len 0 for right, ch in enumerate(s): if ch in char_index and char_index[ch] left: left char_index[ch] 1 char_index[ch] right max_len max(max_len, right - left 1) return max_len这道题看起来简单但有个很典型的坑更新左指针时不能直接用char_index[ch] 1而要做max(left, char_index[ch] 1)的处理。因为在滑动过程中某个字符上次出现的位置可能已经被移出了窗口如果还用旧位置去更新左指针会把窗口错误地回退。我当时第一版代码就犯了这个错误在测试用例“abba”上报错后来查资料才反应过来。3.2 设计一个带过期时间的LRU缓存第二道编程题是“设计一个支持过期时间的LRU缓存”实现get和put方法每个key有过期时间过期后访问返回-1。这道题出现的频率越来越高因为它既考到了哈希表和双向链表的数据结构组合又考察对工程场景的理解还夹杂了时间戳处理这种实务细节。核心解法是“哈希表 双向链表”维护访问顺序每个节点额外记录过期时间。get时先判断是否过期过期就删除节点并返回-1未过期则把节点移动到链表头部表示最近使用。put时如果key已存在更新值和过期时间并移到头部如果不存在插入头部并检查容量是否超出超出就淘汰链表尾部的节点。这里我想强调的是写这种数据结构设计题动手写代码前一定要先把节点结构定义清楚。我当时先在草稿纸上把Node节点的字段写出来——key、value、expireTime、prev、next再列出需要实现的辅助方法removeNode、addToHead、moveToHead、popTail。主流程就是几个辅助方法的组合写起来思路非常清晰不容易乱。3.3 SQL分组取最新与Linux日志统计实战SQL题是一道非常经典的“分组取最新一条记录”问题给定订单表和用户表求每个用户最近一笔订单的金额和下单时间。我当时用了窗口函数一行搞定SELECT user_id, order_time, amount FROM ( SELECT user_id, order_time, amount, ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY order_time DESC) AS rn FROM orders ) t WHERE rn 1;如果笔试环境不支持窗口函数也可以用“子查询先取 max(order_time) 再与原表关联”的写法。两种写法备考时都应该会因为你不知道线上笔试环境的SQL语法支持到什么程度。Linux题考的是日志分析给定一个 app.log每行是“时间 接口路径 状态码”的访问记录要求统计状态码为500的接口中出现次数最多的前10个。核心命令是awk $3500 {print $2} app.log | sort | uniq -c | sort -rn | head -10这里最大的坑就是执行uniq -c之前必须先sort因为uniq只能统计相邻行。如果不排序就统计结果会是错的。当时群里就有同学写了awk ... | uniq -c | sort -rn结果数字看起来很奇怪就是栽在这个细节上。4. 测试用例设计题这样写才拿高分4.1 当场的题目与我的答题框架我们这批的测试用例设计题题目是设计一个“手机号验证码登录”功能的测试用例要求覆盖正常流程和异常场景。这类题目在测试开发笔试里非常常见考察的不是你会不会写用例模板而是你有没有一套完整的测试思维框架。我当时的答题结构分了四层功能测试、异常测试、兼容性测试、安全与体验测试。功能层面包括正常登录成功、错误验证码、过期验证码、验证码发送的冷却时间限制异常层面包括手机号格式非法、手机号为空、网络超时、重复点击提交按钮兼容性层面覆盖主流浏览器和安卓/iOS系统差异安全层面包括验证码接口是否存在暴力破解风险、登录态是否加密传输、验证码是否会出现在响应包里。每一层我都至少写了三条具体用例并且明确标注前置条件和预期结果。4.2 测试用例设计的层级感与常见扣分点很多人写这种题容易犯一个错误光写“输入错误密码提示错误”这种一句话用例没有写具体的输入值、操作步骤、预期结果。笔试评分时测试用例设计题最看重的是你的层级感、覆盖度和可执行性。一份好的用例应该达到“别人拿到你的用例不需要补脑照着执行就能完成测试”的标准。我自己的经验是先定框架再填内容。不要一上来就疯狂罗列几十条用例而是先想清楚“这个功能从哪些维度去测”再在每一个维度下展开具体场景。另外有一点很重要异常场景的占分比重往往不低。登录功能大家都会写“正确手机号加正确验证码”但能不能想到“同一手机号在60秒内重复获取验证码”“验证码正确但已过期”“接口在弱网环境下返回超时”这些场景才是区分经验和没经验的关键。5. 备考路线与避坑实录5.1 四周冲刺计划从算法到全套模拟根据我的复盘四周是比较稳妥的备考周期太长容易疲劳太短容易捉襟见肘。我整理了一个简化的时间表供准备的同学直接参考时间段复习重点每日投入第1周数据结构与算法基础刷LeetCode Hot 100中的数组、链表、哈希表、二叉树3小时第2周算法强化滑动窗口、双指针、动态规划 计算机网络与操作系统基础3小时第3周测试基础理论 数据库SQL Linux常用命令2小时第4周整套模拟笔试 错题查漏补缺3小时这里特别推荐“整套模拟”而不是“分题型刷”。测试开发笔试的时间压力和思维切换强度只有整套做才能体会。你可以找牛客网的企业真题或者自己组一套题定时120分钟严格按照不暂停、不查资料、不切换页面的规则来。我备考期间一共做了5套模拟前两套成绩一般但到第四套之后答题节奏已经能稳定控制在提交前10分钟完成所有检查。5.2 实战踩过的三个坑第一个坑是切屏。我在某次模拟笔试时不小心切出去回了个微信虽然模拟系统不计分但真正笔试的时候连续切屏会被标记异常严重的话可能被判定为作弊。所以考试前一定要把所有可能弹窗的应用全部退出开启免打扰模式。第二个坑是太依赖本地IDE的自动补全。在线笔试编辑器通常没有自动补全、没有语法高亮很容易出现缩进错误、少写冒号这种低级问题。我的建议是平时刷题至少有一部分题目要直接在纯文本编辑器里写提前适应“裸写代码”的感觉。笔试现场再复制到在线编辑器时也一定要从头到尾读一遍关键逻辑不依赖IDE也能发现问题。第三个坑是SQL题卡住导致心理慌乱。我的SQL平时自我感觉不错结果有一道带窗口函数的题卡了很久最后发现是OVER子句里的排序字段写错了。这类题目光看书没有用必须动手在本地数据库里练练到看到“分组取最新”“连续登录天数”“部门工资排名”这类题目能条件反射地写出对应SQL为止。5.3 测试开发岗能力模型与学习路线很多同学问测试开发岗的笔试和普通后台开发岗到底差在哪。结合小米这批笔试我的理解是后台开发岗更看重算法和系统设计的天花板而测试开发岗看重的是“底盘的完整性”。算法要能解中等题但更重要的是你懂不懂操作系统、网络、数据库、Linux这些基础设施以及有没有测试思维。测试开发岗位的日常是开发测试工具、搭建测试平台、编写自动化测试脚本同时还要设计测试方案、排查线上问题。所以笔试的每一项考察都不是孤立的数据结构支撑你写脚本的逻辑能力数据库支撑你验证数据正确性Linux支撑你在服务器上查日志测试理论支撑你设计用例的完备性。备考的时候如果能带着“这题对应到我以后工作中的哪个场景”去学效果会好很多。6. 考后复盘与AI测试开发趋势6.1 笔试结束后的逐题复盘与错题集笔试结束后趁记忆还热我当天晚上就把还记得的题目、当时的答题思路、不确定的选项全部记了下来。第二天对照参考答案和讨论帖逐题复盘。这一步看起来不起眼但它是整个秋招里成长最快的一环。通过复盘我发现自己的操作系统基础有漏洞于是在后续复习里专门花两个晚上整理了进程线程和内存管理的笔记。这里建议大家考完就去整理一份“个人错题集”不用太规整能让自己看懂就行。后面的面试复习和下一场笔试前翻一翻比重新刷一遍书有用得多。比如我的错题集里就记了“uniq 前必须 sort”“更新滑动窗口左指针要用 max”“char 类型比较和字符串比较的区别”这种高频错误后面再看一轮能明显感觉到类似题目不容易再错。6.2 AI测试开发正在改变岗位考题最后聊一个趋势。最近“AI测试开发”这个概念讨论度很高很多团队已经在探索用AI辅助编程工具从需求分析、代码设计、开发实现到测试用例生成的全流程落地。测试开发本身也是最容易被AI赋能的角色之一大量重复的接口测试脚本、回归用例生成、缺陷分析未来都可能借助智能化手段提高效率。这也意味着笔试和面试中可能会出现更多与AI测试场景相关的问题比如如何给一个大模型对话接口设计测试用例如何评估一个自动生成的测试用例的质量在线笔试编程题可能逐渐从“纯算法”转向“算法加工程场景”的结合。我建议备考的同学保持对AI相关技术的敏感度至少知道什么是大语言模型、什么是提示词工程、什么是智能体以及它们怎么和测试工作结合。不一定要成为算法专家但要能聊出自己的理解。笔试只是秋招马拉松的第一道关但它给我最大的收获不是“写对了多少题”而是让我意识到测试开发岗位对综合能力的要求远比想象中高。如果你也在准备类似的笔试我的建议很直接早点开始做整套模拟别把宝全部押在算法题上把测试理论、SQL、Linux这些看起来“软”但实际很硬的功架构抓起来刷题之外留一点时间了解AI怎么改变测试这个行业。希望这份复盘能给你一些参考也祝准备投测试开发岗的朋友都能顺利进入心仪的面试环节。

相关新闻

2026/9/1 16:17:53

Three.js 1 配置开发环境 启动第一个项目

文章目录一 开发环境配置二 新建项目1 新建项目2 创建项目结构3 清理项目4安装three5第一个程序一 开发环境配置 安装Node.js node用来管理js的工具包,不是必须的,但是应该安装 因为需要他来管理js资源包 安装 vs和rider rider自带js开发环境 二 新建…

2026/9/1 16:12:52

基于AI视觉与开源硬件的四足机器人姿态检测实战指南

大家好,我是专注于机器人技术分享的博主。在探索四足机器人(俗称“机器狗”)开发时,姿态检测是一个绕不开的核心难题。无论是让机器狗平稳行走、自主避障,还是完成复杂的动作指令,都需要实时、准确地感知其…

2026/9/1 16:27:56

OpenClaw 本地 AI 智能体保姆级部署:4 步搞定,附 4 大故障修复方案

✨OpenClaw 工具基础介绍 OpenClaw 是一款可运行于本地的 AI 桌面智能体,借助 Gateway 网关将自然语言指令转化为具体的电脑操作,支持模拟键盘鼠标动作、批量整理本地文件、抓取网页数据等能力,广泛适用于各类重复性办公自动化场景。当前 版…

2026/9/1 16:27:56

OpenClaw 安装避坑指南:这 3 个前置操作不做,90% 概率部署失败

✨OpenClaw 工具基础介绍 OpenClaw 是一款可运行于本地的 AI 桌面智能体,借助 Gateway 网关将自然语言指令转化为具体的电脑操作,支持模拟键盘鼠标动作、批量整理本地文件、抓取网页数据等能力,广泛适用于各类重复性办公自动化场景。当前版本…

2026/9/1 16:27:55

大模型赋能信贷风控:小白程序员必备收藏指南

随着信贷欺诈手段的升级,传统风控方法已难以满足复杂场景需求。大模型凭借自然语言理解、多模态融合与复杂推理优势,成为破解风控瓶颈的关键技术。文章探讨了大模型在信贷风控中的核心能力,包括风险语义理解、跨模态数据处理和泛化能力&#…

2026/9/1 16:27:55

网络通信编程核心:协议基础 / 队列机制 / 任务调度 / 重试机制

网络通信编程核心:协议基础 / 队列机制 / 任务调度 / 重试机制 在工业上位机开发中,网络通信(TCP/UDP/串口/Modbus/S7 等)必须具备高可靠性、高稳定性、不阻塞 UI、可恢复的特点。以下四个部分构成了工业级通信框架的基石。 1. 协议基础(Protocol Basics) 工业通信协议…

2026/9/1 16:22:54

别让你的 Agent 一口吃成胖子:AI Agent 任务拆分的工程实践指南

一个真实的翻车现场 深夜,一位开发者满怀期待地给他的新 Agent 下达指令:"帮我优化一下开发环境的数据库结构。"他幻想着 Agent 能像一位资深 DBA 一样,分析表结构、添加索引,然后优雅地提交一份优化报告。然而几分钟后…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/1 8:27:47

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/1 7:04:43

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…