ARTICLE DETAIL

建站实战干货

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

蘑菇街测试实习生笔试真题解析:用例设计、SQL与Linux备考指南

2026/8/31 15:59:30 拓冰建站 浏览量
蘑菇街测试实习生笔试真题解析:用例设计、SQL与Linux备考指南 前几天整理旧资料翻到自己当年准备蘑菇街测试实习生笔试时留下的笔记。说实话这份2019年的试题放在今天看依然很能代表电商公司对测试实习生的真实期待。整套题量不算大但出题方向极其集中测试基础、用例设计、SQL、Linux、Appium、开放场景题几乎把测试岗位日常要用的核心技能都装进了一张卷子。如果你正准备投测试实习生或者刚转行测试不久这篇文章值得你花半小时仔细看。我尽量把每个题型的考察意图、答题思路和避坑经验都讲透保证不是那种“背完就忘”的应试文。1. 这份试题到底在考什么出题逻辑与考察目标1.1 电商公司为什么偏偏考这些方向我在带实习生的时候经常说一句话测试工程师最值钱的能力不是点得多快而是“能不能想到别人没想到的问题”。蘑菇街这类电商公司核心链路围绕商品浏览、加购、下单、支付、订单、售后展开用户在任何一个环节卡住都可能直接流失。所以公司招测试实习生要的不是一个只会照着用例点点点的执行者而是一个能快速理解业务、会设计有效用例、能查数据、能看日志的人。2019年恰好是移动互联网进入“下半场”的阶段各家公司对实习生的要求已经从“培养型”转向“上手型”。笔试题目看起来不难但你要是只会背概念或者只写过老师布置的用例很多题根本答不到点上。比如用例设计题大部分人会写正常流程但真正能拿分的是你写没写异常流程、边界值、并发场景和兼容性。这道题不是考你记没记住“等价类划分法”这几个字而是考你有没有把分析思路变成思维习惯。整套试题的出题逻辑可以概括为三句话第一基础不牢直接刷掉第二用例设计能力决定你的上限第三SQL和Linux是你能不能“马上干活”的分水岭。电商业务到处都是数据校验和线上排查这两个工具不会实习期会非常痛苦。1.2 从题型占比看岗位画像我复盘了当时整理到的题型分布情况虽然不同批次可能略有调整但大体权重如下题型考察方向大致占比测试基础理论选择/判断/简答概念、流程、方法20%SQL 查询题数据查询与校验能力20%Linux 常用命令环境操作与日志排查15%测试用例设计综合分析能力25%自动化与专项测试工具知识面10%开放题/逻辑题业务思维与表达10%从占比就能看出来用例设计是最大头其次是SQL和测试基础。这意味着出题人最看重的是“分析问题的能力”和“动手操作的能力”而不是你对多少工具名称如数家珍。有些候选人简历里写了七八个自动化框架结果连“HAVING和WHERE的区别”都说不清楚这种基本上第一轮就挂了。2. 基础理论题测试流程与用例设计是基本功2.1 测试流程题的两个高分答法基础理论部分经常会出现一道简答题“请描述一次完整的测试流程”。这个题看起来简单但大部分人只能答出“测试计划—用例设计—执行—回归”这种骨架拿不到高分。我建议你这样答从需求评审讲起明确测试范围、测试环境、测试数据然后讲测试计划的要点除了时间和资源还要讲风险评估和回归策略用例设计阶段强调方法选择比如“功能测试用场景法覆盖主流程再用等价类和边界值补充细节”执行阶段要说清楚Bug的生命周期管理以及如何区分前端Bug和后端Bug上线前要准备线上验证清单包含核心链路、灰度范围和回滚方案。再加上一个细节就很出彩上线后不能马上撒手要关注线上日志和监控确认核心功能没有异常。这一条能体现你有“全链路意识”而不是只把自己当成一个执行用例的机器人。2.2 用例设计登录、搜索、购物车的经典拆法用例设计题是这套题的灵魂。常见考法有两种一种是“给你登录功能设计测试用例”另一种是“给你一个秒杀活动页面设计测试用例”。先说登录这是最经典的用例设计题。正确的拆法是这样的功能层面验证码是否可用、过期时间、错误提示是否准确输入层面用户名密码为空、长度边界比如用户名1位/16位/17位、全角半角空格、大小写、特殊字符安全层面连续输错5次是否锁定、密码是否加密传输、登录接口有没有防爆破限制兼容层面不同浏览器、分辨率和移动端H5表现异常场景登录状态过期后操作购物车会不会提示重新登录、重复点击登录按钮会不会重复提交。把这些都覆盖到面试官才会觉得你有设计用例的系统性思维。搜索和购物车也是电商高频功能。搜索题要注意关键词为空、超长关键词、敏感词、拼音模糊搜索、搜索结果的排序和分页购物车题要注意加购、改数量、删除、清空、价格联动、库存不足、登录失效、多端同步。这里面的核心逻辑是每一个操作项都要配上对应的正常流和异常流不能只写“能加购成功”就结束。3. 工具硬技能SQL 与 Linux 是实习生的敲门砖3.1 SQL 查询题分组、连接与子查询是重灾区SQL在笔试里的地位非常高因为测试日常经常要验证数据比如下单后订单金额是否正确、活动返利是否到账、优惠券使用记录是否异常。2019年这道大题基本上是手写SQL给出的场景也很淘宝风比如“查询下单次数超过3次且总金额大于500的用户”。这道题常见的错误是知道要查哪些字段但不知道怎么把逻辑写正确。首先你需要涉及两张表一张用户表user(id, name)一张订单表order(id, user_id, amount, create_time)。正确的写法是先关联两张表按用户分组然后用HAVING过滤分组后的统计结果。SELECT u.name, COUNT(o.id) AS order_cnt, SUM(o.amount) AS total_amount FROM user u JOIN order o ON u.id o.user_id GROUP BY u.id, u.name HAVING COUNT(o.id) 3 AND SUM(o.amount) 500;这里的关键是搞清楚WHERE和HAVING的区别WHERE是在分组之前过滤行HAVING是在分组之后过滤组。你要是写WHERE COUNT(o.id) 3会直接报错因为WHERE不能跟聚合函数。很多实习生在这里翻车不是不会写SQL而是对执行顺序不熟悉。SQL执行顺序是FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY你写条件的时候脑子里必须有一根这根线。3.2 Linux 命令题测试环境排查的基本功Linux在笔试题里通常以场景题的形式出现不让你背参数而是给你一个实际环境让你选正确的命令。比如# 实时查看应用日志按关键字过滤错误 tail -f /data/logs/app.log | grep ERROR # 查看某个Java进程是否存在 ps -ef | grep java # 查看8080端口是否被占用 netstat -tlnp | grep 8080这三个场景是我在真实测试工作中最常用的。查日志是定位线上问题的第一步tail -f能实时跟踪日志文件grep能过滤关键字两者组合基本上是测试排查问题的标配。ps -ef | grep java是用来确认服务是否启动如果MySQL服务挂了你连数据都查不了更别说验证功能了。还有一个容易被低估的命令是find。很多候选人分不清find和grepfind是在文件系统里按名字、类型、时间找文件grep是在文件内容里按关键字匹配文本。笔试的时候经常出一道“在/app/logs目录下找包含Timeout的所有日志文件”正确答案是grep -r Timeout /app/logs而不是find /app/logs -name Timeout。这个区别你要是没实际敲过命令真的很难答对。4. 自动化与专项测试拉开差距的加分项4.1 Appium 移动端自动化当年最热的技术考点作为电商App蘑菇街的测试岗位非常看重移动端测试经验所以笔试里出现Appium并不意外。Appium是移动端自动化测试的主流框架原理可以简单理解为脚本通过WebDriver协议给Appium Server发指令Appium Server再把这些指令转发给手机上的自动化引擎去执行操作。笔试里常考这几个点一是Desired Capabilities是什么说白了就是告诉Appium“你要连接什么设备、启动哪个App”里面要配置platformName、deviceName、appPackage、appActivity等。二是元素定位方式Android端优先用id其次是class name、xpath很多新手喜欢动不动就写xpath结果写出来的表达式又长又脆弱App一改版本就全挂了。三是显式等待和隐式等待的区别隐式等待是全局轮询元素是否出现显式等待是对某个特定元素设置等待条件优先用显式等待效率更高。如果笔试让你写一段自动化脚本一般会给一个登录场景from appium import webdriver desired_caps { platformName: Android, deviceName: emulator-5554, appPackage: com.example.app, appActivity: .MainActivity, noReset: True } driver webdriver.Remote(http://localhost:4723/wd/hub, desired_caps) driver.implicitly_wait(10) driver.find_element_by_id(com.example.app:id/btn_login).click() driver.quit()这段代码能跑通一个最基本的“打开App→点击登录按钮”的流程。你只要能把这段逻辑说明白面试官就知道你对Appium不是停留在概念层面。4.2 接口测试、性能与兼容性广度决定上限除了Appium笔试里还会涉及接口测试、性能测试、兼容性测试的概念题。接口测试方面最常问的是GET和POST的区别、Cookie和Token的区别、HTTP状态码的含义。2019年这个时间点很多团队已经在用Postman做接口冒烟测试用Python requests写自动化用例。你需要知道接口测试的核心验证点状态码、响应时间、返回结构、参数校验、异常输入以及鉴权失效时的表现。性能测试考的不会太深顶多问一下QPS、TPS、响应时间、并发用户数这些概念以及负载测试和压力测试的区别。兼容性测试放在电商场景里就是iOS和Android、不同屏幕尺寸、不同系统版本、不同网络环境下的表现。这里的思路要言之有物比如弱网环境下用户点击提交后没有响应前端应该给什么提示后端会不会重复创建订单这些都要纳入兼容性和稳定性测试的范围。安全测试在实习生笔试里占比不高但偶尔会有一道选择题比如登录接口如何防止暴力破解、SQL注入的原理是什么。你可以不精通但至少要意识到测试工作中要关注安全风险比如密码不能明文存储、接口参数要校验、敏感信息不能出现在日志里。能说出这些说明你有安全意识这在团队里很加分。5. 场景题与开放题面试官真正在观察你什么5.1 秒杀场景的用例设计从业务到技术的一整套思路开放题最经典的是“整点秒杀限量100件商品请你设计测试用例。” 这道题能很好地拉开差距因为大部分人只能想到“能不能抢到”“价格对不对”但拿高分的人会从业务、技术、数据、体验四个维度拆解。业务层面秒杀是否允许未登录用户参加每个用户限购几件秒杀时间是否精确校验秒杀价格是否在页面和下单接口一致。技术层面100件库存同时被大量请求争抢会不会出现超卖用户快速重复点击提交接口怎么保证幂等是否存在限流和排队机制防止把后端打挂。数据层面库存扣减和订单生成是不是原子操作支付成功后的库存与订单金额是否一致优惠券使用是否允许叠加。体验层面倒计时结束后页面是否有刷新弱网环境下提交失败后重试是否能正常工作用户看不到“正在排队”的反馈时会不会反复点击。这道题你一定要把思路说出来而不是憋着写成一个完整用例清单。面试官想看的不是标准答案而是你能不能从现象想到本质秒杀的本质是“高并发下的数据一致性”你所有设计都围绕这个点展开大概率就能答到对方心坎里。5.2 线上问题排查思路比答案更重要还有一种开放题长这样“用户反馈下单成功但一直没收到短信你怎么排查” 这类题没有标准答案考的是排查思路和沟通意识。我会这样拆解先确认这是个例还是普遍问题问清楚用户手机号、下单时间、短信发送时间尝试自己复现一遍然后查下单服务的日志看短信发送请求有没有发出如果发出去了再查短信服务商的回调判断是短信通道失败还是延迟到达如果通道正常就要考虑手机号是否填写有误、用户手机是否拦截了营销短信。整个过程要体现“从现象到数据从数据到原因”的思路。我特别想强调一点遇到线上问题第一反应不应该是甩锅给开发而是先拉取日志、整理时间线、缩小范围。哪怕最后发现是用户手机的问题你前期做过的排查动作也会让团队觉得你靠谱。这个习惯不是笔试能背出来的但考官问这道题就是想知道你有没有这个意识。6. 我踩过的坑与实习生备考建议6.1 真实笔试中的几个翻车现场我当年做这套题的时候有一道SQL题要用到聚合函数我迷迷糊糊把HAVING和WHERE写混了结果运行报错才知道自己压根没搞清楚分组前后的过滤逻辑。后来我在笔试前专门花了两天时间把执行顺序整理成了流程图贴在自己桌前从此再也没错过。第二个坑是用例设计只写正常流程。笔试给了“搜索功能”的用例设计题我洋洋洒洒写了十几条结果全是“输入关键词能搜出结果”“搜索为空提示无结果”这种完全没有覆盖到“超长关键词”“emoji”“SQL注入”这些边界情况。交卷之后才想起来漏了一大片后悔得不行。所以你在答题时一定要养成习惯每个功能点至少要写一条正常流、一条异常流、一条边界流。第三个坑是Appium元素定位。我当时为了图快直接把页面上能找到的xpath复制过来用结果一执行就报找不到元素。后来才知道App页面结构稍微一改xpath就失效了这是移动端自动化最耗时间的坑。建议新手优先用resource-id定位少用完全绝对的xpath路径。6.2 从现在开始这样准备最有效如果你正在准备测试实习生的笔试我的建议很直接先花一周时间把手写SQL练熟练重点覆盖COUNT、SUM、GROUP BY、HAVING、子查询、多表连接每天敲一遍Linux常用命令不用多但必须亲手在服务器上执行过用例设计从登录和购物车开始拆按“正常流、异常流、边界值、兼容性、安全”五个角度逼自己想问题。自动化方面不用追求多深跑通一个Appium登录用例就比背十遍概念有用。建议你在自己的电脑上搭一个Android模拟器写一个打开App、输入账号密码、点击登录按钮的脚本过程中你会遇到环境变量、SDK版本、adb连接、元素定位等一系列问题解决完这些问题你就已经比大部分候选人有优势了。还可以准备一两个自己真正做过的测试小项目。哪怕只是给一个开源项目写过测试用例或者用Postman跑通过一组接口都可以用STAR法则讲清楚背景、任务、行动、结果。面试官不怕你项目小怕的是你讲不清楚自己在里面具体干了什么。我后来带过好几个测试实习生发现一个规律笔试里能把基础题做得干净利落的人入职后上手也快。测试这份工作门槛不在高深的理论而在于细心、系统思维和动手习惯。这套试题本质上是一把尺子量的是你有没有把这些基本功内化成日常习惯——准备它的时候别只想着应付考试多想想每个题目背后真实工作里的坑你会收获更多。