ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

小米测开笔试题复盘:从试卷结构到高频考点全解析

2026/8/31 7:56:01 拓冰建站 浏览量
小米测开笔试题复盘:从试卷结构到高频考点全解析 2. 试卷结构拆解小米测开笔试到底在考什么先说结论2019年小米秋招测试开发笔试题B整体风格是**“基础扎实优先工程思维并重”**既没有像算法岗那样上来就是Hard级动态规划也不会像部分公司那样纯考八股文背诵。它更看重的是你能不能像一个真正的测试开发工程师一样思考问题。我当时拿到这套题的第一感觉是题量不小但难度梯度设计得还算合理。整套试卷大致可以分为四块模块考察方向题目类型大致占比软件测试基础测试理论、用例设计、测试流程选择题简答题30%计算机基础操作系统、网络、数据结构选择题填空题25%Linux与数据库实际运维排查能力实操题SQL题20%编程与逻辑代码能力、算法思维编程题25%记住这个分布很重要因为它决定了你的时间分配策略。很多人在选择题上纠结太久结果编程题没时间写这是最亏的。后面我会详细说时间怎么分配。2.1 为什么是这个结构测开岗位的能力模型从岗位职责反推测试开发工程师在小米这样的公司日常要承担三类工作一是功能测试和用例设计保证产品上线质量二是搭建和维护自动化测试框架提升回归效率三是开发测试工具或平台解决测试过程中的效率痛点。这就决定了笔试必须覆盖三条能力线测试专业度、技术基础深度、代码落地能力。只懂测试理论不懂代码做不了工具开发只会写代码不懂测试思维写出的用例和框架又往往脱离实际场景。小米的这套题本质上就是在筛选这两者兼备的人。2.2 题目难度分布基础题送分进阶题拉差距整套题的难度分布大约是这样的60%是基础题只要你认真准备过基本都能答对比如TCP三次握手过程、等价类划分方法、Linux常用命令这些30%是中档题需要你真正理解原理而不是死记硬背比如给你一个场景让你设计测试用例、给定SQL表结构写查询语句剩下10%是拉开差距的题通常是编程题或者综合性设计题。这里我要多说一句不要小看那60%的基础题。正因为大家都觉得简单反而容易粗心出错。我见过太多人在以下哪个不是黑盒测试方法这种题上翻车回头一对答案才拍大腿。基础题的正确率决定了你能不能进下一轮面试。3. 高频考点逐个拆解这些题背后都有套路接下来我按模块把高频考点和典型题目思路拆开讲。我不会照搬原题毕竟笔试题有版权也不该原样传播但我会把每类题的核心考法和解题套路讲透你拿任何一套同类题目都能用上。3.1 软件测试基础用例设计是永远的C位测试基础这块小米尤其爱考测试用例设计。常见的出题形式是给你一个功能点比如登录功能购物车结算文件上传让你写出测试用例。这题看似简单实际是分水岭。我举个典型例子设计一个用户注册功能的测试用例要求用户名6-16位字母或数字。大部分人会写输入合法用户名、输入非法用户名、输入超长用户名然后交卷。这种答案在面试官眼里等于没写。正确的思路是分维度覆盖功能维度注册成功、用户名已存在、密码与确认密码不一致、验证码错误边界维度用户名5位、6位、16位、17位这是等价类边界值分析的核心异常维度用户名含特殊字符、含中文、全空格、SQL注入字符串or 11兼容维度不同浏览器、不同操作系统、移动端和PC端体验维度输入框是否限制字符数、错误提示是否友好、提交按钮是否防止重复点击安全维度密码传输是否加密、返回信息是否泄露用户信息你看这么一拆一个功能点至少能写出三四十条用例。这个思路练熟之后考试时哪怕遇到没见过的功能你也能套框架不会漏项。再有一个高频简答题是**黑盒测试和白盒测试的区别以及常见的黑盒测试方法有哪些**。这类题纯记忆等价类划分、边界值分析、因果图法、判定表驱动法、正交试验法、场景法、错误推测法七种方法要能默写出来并且能说清各自适用场景。别只列名词一定要有场景说明比如复杂度高的组合场景适合用因果图或判定表。3.2 Linux与数据库测开的基本功考场Linux这块小米出题风格非常务实不会问你Linux内核有哪几种锁而是直接给你场景线上日志文件报错怎么快速定位关键信息核心考点就这些grep按关键词过滤结合管道符使用比如grep -i error /var/log/app.log | tail -50tail/head查看日志尾部/头部tail -f实时跟踪awk/sed按列提取、按规则替换awk {print $2}这种是基本功find/ls -l查找文件、查看权限和文件属性top/free/df排查系统负载、内存、磁盘kill/ps进程管理ps -ef | grep java定位PID再用kill -9杀进程实际考法一般是给出一个日志文件内容问你怎么统计某个接口的请求次数。答案就是grep GET /api/user access.log | wc -l。这三件套的组合使用要特别熟。数据库这块考的SQL都不难但容易在细节上翻车。必考的是多表联查内连接、左连接的区别GROUP BY HAVING注意WHERE和HAVING的执行顺序差异子查询IN、EXISTS的区别聚合函数COUNT、SUM、MAX、MIN、AVG给你一道典型题感受一下有两张表学生表student和成绩表score查询每门课程的平均分并按平均分降序排列。SELECT course_id, AVG(score) AS avg_score FROM score GROUP BY course_id ORDER BY avg_score DESC;这就是送分题。但小米会在后面加一道进阶题比如查询平均分大于80分的学生名单这时候就必须用HAVING而不能再加WHERE了。这种细节就是筛人的地方。3.3 编程题不只是刷题更要体现工程思维编程题是整套试卷里最拉分的部分。小米的编程题不像字节那样追求极致算法更看重你的代码规范性和边界处理能力。我印象中有几类题反复出现第一类是字符串处理。比如实现一个函数判断一个字符串是否是有效的IP地址。这题不涉及复杂算法但坑很多IPv4地址是四个0-255的数字不能有前导零不能有多余的点。如果你的代码只判断了数字范围忘了处理前导零和空段就会挂掉部分用例。这就是考察你考虑边界是否周全。第二类是数组/链表操作。比如给定一个整数数组和一个目标值找出数组中两个数之和等于目标值的索引。这题最优解是哈希表时间复杂度O(n)但如果考生写了个双层循环O(n^2)也不会给零分因为测试开发更看重逻辑清晰、能跑通优化属于加分项关键是你得先保证正确性。第三类是逻辑模拟题。给你一个实际业务场景让你写代码模拟。这种题和测开工作最贴近比如写一个函数判断一个字符串括号是否匹配这类问题直接对应到配置文件解析、模板渲染的测试工具开发实用性很强。这里我要特别强调一个细节笔试编程题一定要处理好输入输出和异常分支。很多线上笔试系统是有隐藏测试用例的你只写了happy path边界用例全挂最后还是零分。我的习惯是哪怕时间紧也要把空值判断、非法输入判断写在最前面这是成本最低的保分手段。3.4 计算机网络与操作系统选择题的重灾区这套试卷的选择题里网络和操作系统占了相当比例都是基础但易混淆的考点。网络这块必考的是TCP三次握手、四次挥手尤其是TIME_WAIT状态的作用TCP和UDP的区别面向连接vs无连接可靠vs不可靠HTTP常见状态码200、301、302、403、404、500、502、503HTTP和HTTPS的区别TLS握手、证书DNS解析流程操作系统这块常考的是进程和线程的区别死锁产生的四个必要条件互斥、持有并等待、不可剥夺、循环等待内存管理的基本概念分页、虚拟内存进程间通信方式管道、消息队列、共享内存、信号量、Socket这类题没有捷径刷题加理解。但我有个建议不要死记硬背定义要能说出应用场景。比如问到TCP和UDP的区别你如果只答一个可靠一个不可靠是拿不全分的要补充视频通话和直播场景为什么要用UDP因为实时性优先文件传输为什么要用TCP因为不能丢数据。这样改卷人一看就知道你是真懂不是背的。4. 从笔试反推面试小米测开到底想要什么人很多人会忽略一件事笔试不只是分数它暗含了这家公司的技术取向和团队文化。我在小米笔试的题目里能明显读出几个信号。4.1 内容全覆盖你不是过来写用例的你是过来做开发的小米对测试开发岗位的定位绝对不是点点点的功能测试。从题目里能看出来他们要的是能写代码、能看懂系统日志、能直接上手排查线上问题的工程型测试。这就意味着你在准备笔试时如果只复习测试理论不碰代码和Linux基本没戏。我身边有朋友当年觉得我测试用例设计得好笔试没问题结果成绩出来连面试都没进。后来复盘才发现编程题空白、SQL写错、Linux命令题全区瞎猜光靠理论题撑不住总分。这是个很典型的教训测开笔试的应试策略必须是全科均衡短板科目拉分非常严重。4.2 场景化出题面试官要的是解决问题而非复述知识注意看这套题和大学期末考的区别大学考卷问什么是死锁这套题问数据库出现死锁怎么排查大学考卷问什么是等价类划分这套题直接扔给你一个功能让你画用例。同样的知识点换个考法难度立刻不一样。所以准备阶段我强烈建议你把每个知识点都过一遍场景化的转化。比如学了TCP三次握手就问自己如果服务端连接池满了会出现什么现象怎么排查学了SQL联查就问自己如果查询巨慢先查什么学了死锁就问自己MySQL死锁报错日志怎么看。这种训练方法比刷一百道选择题都管用。4.3 软素质嵌入用例设计题背后在考察的另一样东西我后来做面试官才真正理解小米这种用例设计题表面上考技术实际还在考察一个测试开发最重要的素质——结构化思维和写文档的能力。一份用例能不能分层分类、有没有覆盖边界和异常、逻辑顺序是否清晰直接反映你未来能不能输出一份高质量的测试计划。所以别只是列条目要有分组、有优先级。考试时我建议这样组织答案先写覆盖正常流程的主用例再写边界用例最后写异常和安全性用例每一项用简短标题测试步骤预期结果的结构。这会让你的答案在一堆点两下按钮看看能否成功里显得非常专业。5. 备考与应试的实用策略少走弯路的方法论最后这部分我把自己备考和带人过程中的干货总结一下按时间线拆成考前准备和考场实战两个阶段。5.1 考前30天怎么安排按模块打基础按时间做模拟第一周和第二周基础扫盲。过一遍测试理论、计算机网络、操作系统的基础概念配合刷选择题。重点是积累错题不要追求刷题量要追求把每道错题背后的知识点吃透。SQL和Linux命令要动手练光看教程根本没感觉。第三周专项突破。每天选一个模块做集中练习尤其针对自己的薄弱点。比如我当年SQL联查不太熟就连续三天只刷SQL题从简单到复杂直到不看答案能写出来。编程题保持手感也很重要不需要刷难题LeetCode的简单和中等难度就够用。第四周全真模拟。找一套往年的笔试题或模拟题严格按考试时间做一遍。这一步非常关键。很多人的翻车点不是不会而是做不完。模拟的目的就是找到自己的时间分配节奏。5.2 考场上怎么分配时间先拿稳拿分再啃硬骨头我的做题顺序是选择题和填空题快速过——会的直接勾选犹豫的做个标记先跳过绝不恋战。一道选择题超过2分钟还没把握果断放弃随便选一个写上标记回头有时间再想。SQL题和Linux题二选一先做——如果两道都有把握先做SQL题因为SQL题逻辑强、容易得满分Linux实操题如果是简答形式注意条理清晰一条命令一行写清楚参数含义。测试用例设计题认真做——这题是主观题答案写得是否专业直接影响印象分多花点时间是值得的。编程题最后做但必须留够40分钟——至少保证第一道编程题能完整写出来并检查边界第二道实在没思路就写个暴力解也比空着强。整体节奏上选择题尽量控制在25分钟内简答和用例设计控制在40-50分钟剩下40-50分钟给编程题。当然具体要看题量调整但原则不变先把必拿的分拿到手再挑战高分题。5.3 面试官不会告诉你的三个隐藏踩分点以下是我作为面试官看卷时会下意识注意的隐藏评分点很多人可能完全没意识到第一字迹和排版。线上笔试的简答题一定要分段、分条、加序号。如果全是密密麻麻一大段哪怕内容对了改卷体验也非常差。印象分这个东西真实存在别跟它对着干。第二编程题的注释。关键的逻辑分支写一句注释既帮自己理清思路也让改卷人更快地理解你的代码。有注释的答卷和没注释的答卷在观感上完全不是一个档次。第三不会的题也要写思路。遇到不会的编程题哪怕写不了完整代码也要把你想到的解题思路、用到的数据结构、算法复杂度推导写出来。我的原则是笔试最怕的不是做错而是空白。做错了至少证明你思考过改卷人知道你差在哪空白等于主动放弃连拉你一把的机会都没了。6. 写在最后这套题给我最大的启发说实话距离2019年已经好几年了但回头看这套题我依然觉得它对当下的测开岗位求职者很有参考价值。不光是小米很多一线互联网公司的测开笔试题核心考点都在这套题的框架之内。而整套题背后最值得琢磨的一条逻辑是测试开发岗位的门槛已经不再是懂测试这么简单了。它要求你既是质量守护者也是效率工具的开发者还是线上问题的第一响应人。这就像一个全科医生什么病都要能看什么工具都要会用而且还要能自己开发点新工具。我个人的体会是准备这类笔试最忌讳的就是只背题不思考。刷题是手段不是目的。每做一道题多问自己一句这个考点在实际工作中对应什么场景长期积累下来你收获的不只是一份笔试的高分更是对测试开发这份工作真正的理解。最后再分享一个小技巧笔试结束后不管你自我感觉好不好一定要把题目和你的答案记录下来趁记忆还新鲜的时候复盘一遍。这不仅是给后续面试做准备更是你技术成长路上最珍贵的素材库。很多我现在写进自动化框架里的设计思路都来自于当年复盘笔试时想通的某个瞬间。