米哈游 10.11 游戏测试岗笔试:三维选址与测试用例设计
- 轮次
- 笔试
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 编程题:给定 n 位朋友的三维坐标 (x_i, y_i, z_i),选定一个聚会点 (x, y, z),使所有朋友到该点的曼哈顿距离总和最小,求最优选址。
- 问答题:选一款你喜欢的游戏,分析其核心玩法的优缺点,并给出优化方案。
- 问答题:现场阅读文字说明并观看演示视频,理解新系统「回收净光翎」的玩法后,为它设计测试用例。
《参考解析》
三维曼哈顿距离最小的选址
关键在于曼哈顿距离可以按维度拆开:|x-x_i| + |y-y_i| + |z-z_i| 三项互不耦合,所以求总和最小等价于分别求三个一维问题的最小值,三者独立。
一维上「到所有点距离之和最小的位置」由中位数定理给出:把坐标排序后取中位数即可。直观理解是——往左移一格,左侧点数减少、右侧点数增加,总和的变化量等于「左侧点数 − 右侧点数」,只有当两侧数量相等或跨过中位点时变化量才不再下降;因此最小值在中间位置取得,n 为奇数时取正中间那个点,n 为偶数时中间两个点之间的任意位置(包括两端点)都取到同一个最小值。
实现上对三个轴分别排序取中位数,复杂度 O(n log n),不需要枚举也不需要用三分搜索。要注意的坑:题目输入描述里那句「接下来 n 行,每行输入 n 个朋友的三维坐标」是笔误,实际是每行一个朋友;坐标可能是负数或大整数,累加距离用 long 防止溢出;如果题目要求的是输出最小距离而不是坐标,偶数个点时取中间任意位置算出来的和都相同,用哪个都对。
游戏玩法评析题的答题框架
这类主观题考的是能不能像测试一样拆解一个产品,而不是文笔。稳的结构是四段:先说清楚核心玩法是什么(一句话概括玩家重复在做什么、驱动力是什么),再说优点(哪些设计抓住了玩家、为什么有效),然后说缺点(数值、节奏、交互、肝度、平衡性、外挂/代练空间等),最后给可落地的优化建议。
拉开差距的地方在最后一段:建议要具体、可验证、并且从测试视角切入。比如不要写「希望优化新手引导」,而要写「新手引导第 3 步的强制弹窗在高频点击下会叠加出现(可复现路径:…),建议改为队列化弹窗并在切后台返回时复位状态」;或者「该玩法产出与消耗比在当前版本下会随等级提升失衡,建议按等级段做数值回归用例」。把「缺陷 + 复现条件 + 影响 + 建议」说清楚,比空泛地谈体验更有说服力。
「回收净光翎」这类新系统怎么设计测试用例
这类题的特点是不要求你玩过这个游戏,考的是拿到一份需求说明后能不能系统地把测试面铺开。推荐的顺序是:先做需求拆解(这个系统有哪些实体、状态、操作、约束和数值规则),再按维度铺用例。
功能维度:核心流程正向走通(获取、回收、产出、入账)、可回收与不可回收对象的判定、重复回收同一对象、已回收对象再次操作、数量上下限与边界值(0 个、1 个、刚好达到上限、超过上限)、批量回收与单个回收结果是否一致。
异常与中断维度:回收过程中退出游戏、切后台、断线重连、杀进程,恢复后数据是否一致(这条是游戏测试的高频缺陷区);资源不足、背包已满、并发点击导致的重复提交;服务器返回失败但客户端已经扣了道具(需要校验客户端与服务端的状态一致性)。
数值与规则维度:产出概率与保底、不同档位/等级下的产出差异、与其它系统的联动(任务、成就、掉落、货币)。
体验与兼容维度:UI 提示与二次确认、动画与音效状态、不同分辨率与机型、低端机性能、弱网下的表现。
最后补一句用例的组织方式:按优先级分 P0(主流程与数据一致性)到 P2(体验与兼容),并明确哪些用例需要服务端配合造数据、哪些可以通过配置快速回归——这能直接体现你是按可执行的方式在思考,而不是罗列名词。