ARTICLE DETAIL

资讯详情

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

小米2018秋招测试开发客观题合集:高频考点与备考复盘

小米2018秋招测试开发客观题合集:高频考点与备考复盘 2018年秋天我还在准备校招目标岗位是小米的测试开发工程师。当时在牛客和论坛上刷了不少题也把小米在线测评里出现的客观题按知识点整理成了一份合集。现在回头翻看虽然题型和当年的线上笔试系统已经不太一样但核心考点的覆盖方式对今天准备测试开发岗位的同学依然有参考价值。这篇文章就把这份小米2018秋招测试开发工程师客观题合集做个系统梳理包括考察范围、高频考点、典型例题和我的复盘思路希望能帮你少走弯路。1. 小米2018秋招测试开发客观题考察范围概览1.1 笔试形式与科目结构小米2018秋招的测试开发岗位笔试采用的是在线测评系统客观题是整套试卷的第一部分后面还有编程题和简答题。客观题部分大概覆盖四个方向软件测试基础、计算机基础知识、编程与数据结构、部分场景题。计算机基础知识里面又细分为计算机网络、操作系统、数据库偶尔会出现一两道Linux命令题。从题目形态来看客观题以单选题和多选题为主部分批次的题目还有判断题。多选通常比较头疼因为少选、错选都不得分对概念准确性要求很高。答题时间是和编程题共用的所以客观题做得快不快直接影响后面写代码的精力。我认识的一个同学当年就是因为客观题太纠结最后编程题只写了一半非常可惜。1.2 我眼中这三类题型的复习优先级如果目标是“过笔试”我的复习优先级是软件测试基础 数据结构与算法基础 计算机网络/操作系统/数据库。软件测试基础是区分度和送分题并存的板块很多非科班同学在这里丢分但只要你系统看过《软件测试的艺术》或者相关课程基本能稳定拿分。数据结构与算法是客观题里的硬骨头排序算法复杂度、链表操作、栈和队列的特性都是高频考点。计算机网络和操作系统主要考概念比如TCP三次握手、进程与线程区别难度不算高但范围很碎需要靠刷题记忆。数据库在客观题里通常以SQL语法正误判断的形式出现不会让你手写一大段SQL但必须能看懂执行顺序。另外小米的题目偶尔会结合自家产品出场景题比如“如何测试小米应用商店的搜索功能”这类题在客观题里不多但面试时一定会出现。2. 高频客观题分类解析2.1 软件测试基础理论题从概念到场景软件测试基础理论是客观题的绝对主力2018年那次笔试我印象里至少有15道题和测试概念、测试用例设计、测试流程相关。以下几个考点几乎每年都在换皮出现。第一黑盒测试与白盒测试的方法区分。黑盒测试不关注内部实现基于需求和输入输出设计用例常见方法有等价类划分、边界值分析、因果图、判定表白盒测试则关注代码逻辑覆盖常见方法有语句覆盖、判定覆盖、条件覆盖、路径覆盖。当年有一道典型题题目以下属于黑盒测试方法的是 A. 语句覆盖 B. 边界值分析 C. 判定覆盖 D. 路径覆盖答案是B。这道题的迷惑点在于“边界值分析”听起来像是一种具体代码实现分析但实际上它完全是基于输入域的设计方法属于黑盒。如果你只背概念而没理解“是否基于内部结构”的区分标准很容易选错。第二测试用例设计的核心要素。一道合格测试用例必须包含编号、前置条件、输入数据、操作步骤、预期结果、实际结果、优先级等信息。客观题常考“以下哪项不是测试用例的必要要素”选项里会出现“开发人员姓名”“模块名称”等陷阱。我当时的记忆方法是测试用例是给执行者看的跟“谁开发的”没关系。第三缺陷生命周期。从提交缺陷到关闭通常经历New、Open、Fix、Verify、Closed等状态题目会问“缺陷修复后由谁确认关闭”。答案应该是测试人员而不是开发人员。这个知识点很简单但很多人容易答成“项目经理”。第四V模型、W模型、敏捷测试模型。这些模型描述的是开发与测试的关系客观题喜欢考“在V模型中系统测试对应哪个开发阶段”答案是对应需求分析和概要设计阶段。这里需要理解系统测试验证的是系统是否符合需求因此它的依据是需求文档。2.2 计算机网络与Linux命令题开发测试都得会测试开发工程师毕竟挂着“开发”二字网络基础是跑不掉的。小米笔试的计算机网络题不算深但覆盖面广。TCP三次握手、TCP与UDP的区别、HTTP状态码含义、DNS解析过程都是热点。我记得有一道题题目TCP连接建立时第一次握手客户端发送的报文标志位是 A. SYN B. ACK C. FIN D. RST答案是A。三次握手分别是SYN、SYNACK、ACK。这道题如果理解“握手是为了同步序列号”就很好记第一次发SYN第二次对端回复SYNACK第三次再回ACK确认。HTTP状态码也是高频考点客观题会直接给一个状态码问含义比如200表示成功、301表示永久重定向、302表示临时重定向、404表示资源不存在、500表示服务器内部错误。这里容易混淆的是301和302我自己的记忆方法是301是“搬家了永久换地址”302是“临时去隔壁但还会回来”。Linux命令题虽然考得不多但属于“会就会、不会就蒙”的题。常考的命令包括ls、cd、grep、find、ps、chmod、tar、kill。有一道题让我印象很深题目在Linux中将某个目录下所有普通文件的权限设置为“所有者可读写执行同组用户可读执行其他用户可读”使用的命令是 A. chmod 755 file B. chmod 754 file C. chmod 750 file D. chmod 751 file答案是Bchmod 754。数字权限中7表示rwx、5表示r-x、4表示r--。这道题考查的是数字权限计算题目场景是普通文件所以不加目录权限。很多人记得“755是目录常用权限”看到这个就选A忽略了“其他用户可读不能写但不能执行”其实可以用但题面是“可读”即可而754更精确。所以做题时一定要逐字读题。2.3 数据库与数据结构编程题客观题里的硬功夫数据库在客观题中主要考查SQL语法和事务特性。比如以下哪条SQL语句能正确查询年龄大于20的用户数量SELECT COUNT(*) FROM users WHERE age 20;干扰项可能是SELECT COUNT(age) FROM users WHERE age20或者SELECT * FROM users WHERE age20后者查的是记录而不是数量。如果你只看选项长得像很容易选错。事务ACID特性也是常客客观题会问“事务的原子性是指什么”答案是一个事务中的所有操作要么全部成功要么全部失败。这个知识点在测试岗位的面试里也经常被追问因为和回滚测试有关。数据结构的客观题我遇到最多的就是栈和队列、二叉树遍历、排序算法稳定性与复杂度。比如题目在最好、最坏、平均三种情况下时间复杂度均为O(n log n)的排序算法是 A. 冒泡排序 B. 快速排序 C. 归并排序 D. 插入排序答案是C。冒泡和插入平均是O(n^2)快速排序最坏情况是O(n^2)虽然平均是O(n log n)但题目要求“三种情况均为”所以归并排序是最稳妥的答案。这道题也提醒我们在复习排序时不能只记“快排很快”要记住每个算法的边界情况。另外二叉树的前序、中序、后序遍历也是常见客观题通常给出一棵树的图形让你选择对应的遍历序列。这类题没有捷径需要多画多练。我当时的经验是前序是“根左右”、中序是“左根右”、后序是“左右根”拿到题目先在草稿纸上写一个简单的三个节点例子验证。3. 真题详解与易错点复盘3.1 我会反复做的10道典型题下面这10道题是我当年总结的典型客观题包含软件测试、网络、数据结构、数据库等领域。我整理了一份表格把题目、正确答案、易错点都写了进去方便你对照自测。题号题目摘要正确答案易错点1黑盒测试方法选择边界值分析误把边界值当成白盒2测试用例必备要素预期结果误选“开发人员”3缺陷状态“已验证修复但未关闭”由谁确认测试人员误选项目经理4TCP第二次握手的标志位SYNACK只记得ACK5HTTP 301含义永久重定向和302混淆6Linux chmod 754含义rwxr-xr--忽略题面“文件”7事务原子性描述要么全成功要么全失败和一致性混淆8时间复杂度恒为O(n log n)的排序归并排序选快排9栈的特点先进后出和队列混淆10SQL查询去重关键字SELECT DISTINCT误选GROUP BY每一道题都对应一个“套路”题目喜欢在概念边界的模糊处设置陷阱。你不能只记结论要连为什么正确、为什么错误一起理解。拿第4题来说如果你理解三次握手交换序列号的过程就不会把第一次和第二次的标志位弄混。3.2 客观题答题顺序与时间分配技巧2018年小米秋招的在线测评客观题和编程题是一整套时间大概90到120分钟。我的策略是客观题控制在40分钟内最多不超过50分钟。因为后面编程题至少需要40分钟如果你客观题花了一个小时编程题基本没戏。具体操作时可以这样分配拿到试卷后先快速扫一遍所有客观题把一眼能看出答案的题立刻勾掉大约用5分钟。再做熟悉的领域比如先做软件测试基础再做数据结构因为这两块只要会就是快题。然后做网络、操作系统、数据库这些题可能涉及记忆模糊需要多想一会儿。最后处理完全没把握的题对于单选题哪怕蒙也要填一个不留空对于多选题如果完全不确定可以只选一个最有把握的选项别为了拿满分反而一分不得。这里要特别提醒有些在线测评系统会记录每道题的答题时间虽然没有明确惩罚但我发现如果一道题停留超过3分钟系统会在右上角提示“时间紧张”。这种暗示会影响状态。所以遇到卡壳的长题先标记最后有时间再回来。4. 从客观题到技术面备战小米测试开发的完整链路4.1 客观题结束后面试官更关注什么客观题只是第一道门槛小米测试开发岗位的面试通常有两到三轮技术面。面试官会拿着你的简历重点问三个维度测试思维、编程能力、项目经历。测试思维表现为“你会怎么测这个功能”。比如面试官让你设计微信朋友圈点赞功能的测试用例你要能覆盖功能、接口、兼容性、性能、安全等维度。客观题里学的等价类、边界值、场景法在这里就有了用武之地。编程能力方面手写代码是跑不掉的以字符串处理、数组、链表、hash为主。我当时被要求写一个判断有效的括号匹配用栈实现。项目经历是很多同学的短板。如果没有正经测试项目经验可以把某个课程设计包装成“我在项目中负责了接口测试和部分自动化脚本开发”。关键在于你真实做过并且能说清楚遇到什么问题、怎么解决的。面试官最反感的就是背概念只要你一紧张讲不出细节印象分会大打折扣。所以我认为准备客观题的本质是帮你搭出一个知识骨架这些知识会在面试中以前面的形式复活。比如你客观题刷过“TCP三次握手”面试官可能就会追问“如果第三次握手丢了会发生什么”这就需要你理解机制而不只是记住标志位。4.2 资料选择与刷题心得当年我用的资料主要分三块。第一块是牛客网的题库里面有很多大厂笔试真题虽然不全但足够用来训练题感。第二块是《软件测试的艺术》和《软件测试经验与教训》前者能建立测试基础理论框架后者是一些很实际的测试思维。第三块是LeetCode的简单和中等难度题目用来保持编码手感。我的刷题建议是“一轮按知识点刷二轮按套卷刷”。第一轮每个知识点刷20到30道比如今天专门刷排序算法复杂度题明天专门刷SQL语法题。第二轮直接做套题严格计时模拟在线测评环境。这样做的好处是既能强化薄弱点也能适应真实考试的节奏。这里还要提醒一点不要只刷题不总结。我准备了一个错题本每次做错一道题就把它对应的知识点写一页笔记。比如“HTTP 301和302区别”这一页我会写下各自的场景、常见应用以及一道相关错题。后期复习只看错题本效率极高。5. 常见疑问与避坑建议5.1 关于客观题考试形式的几个疑问问客观题的分值占比高吗如果客观题做得一般编程题能救吗答我的经验是客观题占比通常在40%到50%编程题占30%到40%剩下是简答。客观题做得太差即使编程题全对也可能被卡在分数线外。所以客观题不能裸考至少要系统过一遍高频考点。问多选题怎么提高正确率答多选题最大的敌人是“记个大概”。比如问“哪些属于黑盒测试方法”选项里可能混着“语句覆盖”如果你对定义不够清晰就会因为记混而失分。我的建议是每个测试方法都拉一个对比表格把它们的定义、输入、输出、典型工具列出来考前反复看。问小米笔试会不会考公司相关的内容答偶尔会有一道关于小米产品、MIUI的小题但占比很低。比如“以下哪个是小米推出的手机操作系统”这种题只要用过小米手机就知道。不用花太多时间专门准备。5.2 我的几个独家小技巧技巧一客观题的题干里如果出现“不正确”“不属于”“错误”这类否定词一定要圈出来。我统计过自己的错题有三分之一是没看清否定词导致的。尤其是测试理论题经常用“不属于黑盒测试的是”来制造陷阱。技巧二涉及英文缩写的题先用全称想一遍。比如“RST”是Reset的意思那它一定和连接重置有关“FIN”是Finish和连接结束有关。从英文含义出发基本不会搞错标志位。技巧三遇到完全陌生的概念题不要花时间死磕。先估计一下这题可能的分值单选一般1到2分多选2分左右。你纠结5分钟换来1分不如把这5分钟留给后面的编程题。我当年在测评时遇到一道关于某个冷门测试工具的问题直接蒙了一个C最后整场笔试时间刚刚好。最后再分享一个小经验客观题备考不要太早战线拉太长但也不能考前突击。最好的节奏是用两周时间过知识点再花一周刷套题考前三天只回顾错题本。这样既能把基础打牢又能保持手感。我当年就是按这个节奏准备最后顺利进入了面试环节。希望这份小米2018秋招测试开发工程师客观题合集能成为你备考路上的一块垫脚石。
返回列表