2023年掌阅科技秋招测试岗笔试,我是实打实踩过一遍的。整场笔试做下来,最直观的感受是:它不太像某些大厂那样上来就甩一堆偏题怪题,而是非常贴近“阅读类App测试”这个真实业务场景去出题。题型有选择题、简答题、场景设计题,知识点覆盖测试基础理论、Linux命令、SQL查询、自动化测试思维和移动端专项测试。今天把这场笔试的考点和备考思路完整复盘一遍,给打算投掌阅或者其他移动互联网公司测试岗的朋友做个参考,也顺便帮自己把知识体系再捋一捋。
我始终觉得,笔试这东西,刷题是一方面,更关键的是摸清楚公司到底想招什么样的人。掌阅这套卷子其实透露了很明确的信息:他们要的不是只会点点点的执行者,而是能理解业务、会写用例、懂技术栈、有排查思路的测试工程师。下面我从考情、基础理论、技术栈、场景题、避坑指南五个维度来拆解。
1. 笔试全景与考情分析
1.1 题型分布与答题节奏
掌阅这套卷子我记得是线上笔试,总时长大概90分钟,题量算中等,不会出现做不完的情况,但想优哉游哉地反复检查也不太现实。整卷大概分三块:选择题、简答题、场景设计题。
选择题大概是15到20道,覆盖范围比较杂,有数据结构基础题、计算机网络题、操作系统题,还穿插几道测试理论题。这部分难度不算高,属于保分题,但有个特点是有些题目会结合移动端场景来出,比如“App启动速度变慢,用哪个命令查看CPU占用”,考的是Linux命令在真实场景里的应用。
简答题是五六道,主要让你写测试用例、写Linux命令、写SQL查询。这部分完全是“笔头功夫”,平时用得多的人写起来很快,但如果只是背概念、没实际敲过命令,很容易卡壳。我当时就有一道SQL题磨了挺久,因为题目给了三张表,让统计“每个分类下阅读量排名前三的书籍”,这种题看着基础,但嵌套查询和分组排序的细节一多,手写SQL就容易翻车。
场景设计题是最后的大头,通常给一个核心功能,让你设计完整的测试用例覆盖思路。这种题分值高、篇幅大,答题时一定要预留充足时间。我个人的血的教训是:前面选择题有一道偏题抠了太久,导致场景题开头写得仓促,整体结构就显得不够丰满。所以答题节奏上,我建议先快速扫一遍全卷,把简单分拿稳,再集中火力攻大题。
1.2 考察重点与能力模型
从这套卷子反推掌阅测试岗的能力要求,我觉得可以拆成三层。
第一层是测试基础理论。等价类、边界值、场景法、因果图这些用例设计方法必须能默写、能举例。不用谈得多么高深,但一定要能落地——给你一个输入框,你能马上列出有效、无效、边界、异常这几类用例。
第二层是技术栈操作。Linux、SQL、简单的编程逻辑是标配。招聘信息上不一定会写“精通Linux”,但笔试里一定会出现。尤其是测试岗日常要查日志、查数据库、跑自动化脚本,这些东西你不会,工作会非常被动。
第三层是业务理解能力。掌阅是阅读类App,核心业务围绕书架、书籍详情、阅读器、充值购买、社区互动展开。笔试里即使不给业务背景,它们也会出贴近App使用场景的题目,比如“设计一个书籍搜索功能的测试方案”。这时候如果只会背通用测试理论,不会结合移动端特性(弱网、中断、多端同步、兼容性)去展开,就很难拿高分。
2. 测试基础理论考点拆解
2.1 测试用例设计:等价类与边界值
不管考哪家公司的测试岗,用例设计都是必考题,掌阅也不例外。这类题通常是给一个功能或一个输入条件,让你写出完整的测试用例。很多人答这类题喜欢从头到尾写流程,但实际上阅卷人更看重的是覆盖度,也就是你有没有把有效、无效和边界情况都考虑进去。
拿一个高频题来举例:给一个“手机号注册”的输入框,设计测试用例。很多新手会写:输入正确手机号能注册成功、输入错误手机号提示失败。这当然没错,但覆盖面太窄。我的习惯是这么拆:
- 有效等价类:11位数字,以1开头的合法号段,比如138、159、188等。
- 无效等价类:10位、12位、包含字母、包含特殊字符、以2开头、纯空格。
- 边界值:11位数字的最小值(比如10000000000)和最大值(19999999999)附近;长度刚好10位、11位、12位。
- 异常场景:重复注册的手机号、已被注销的号码、服务端校验超时、弱网状态下点击提交、连续快速点击两次提交按钮。
如果笔试给了表格,我建议用表格呈现,列清楚用例编号、操作步骤、输入数据、预期结果、优先级。优先级一定要写,因为阅卷人会看你会不会区分核心路径和次要路径。注册登录这种功能属于高优先级,UI文案错别字属于低优先级,题目就算没要求你分,写了也是加分项。
2.2 缺陷管理与Bug生命周期
这一块掌阅笔试里出现了不少选择题和简答题的题干,通常是给你一个Bug描述,让你选严重程度,或者问“如果开发说这个不是Bug你怎么办”。这个知识点看起来很基础,但实际工作中天天用,所以面试官比较爱考。
缺陷的核心要素包括标题、前置条件、复现步骤、实际结果、预期结果、日志、截图、版本号、设备信息、严重程度和优先级。笔试里最常见的是让你判断严重程度:
- App闪退、登录失败、支付扣款但未到账:严重,必须立即修复。
- 某个页面样式错位、按钮不居中:一般,可以排期修复。
- 提示语有错别字、某个图标颜色不对:轻微,有空再改。
这里有一个容易混淆的点:严重程度和优先级不是一回事。严重程度是Bug本身的影响范围,优先级是修复的先后顺序。一个“提示语错别字”的Bug严重程度低,但如果出现在登录页的核心入口,优先级可能就会调高。笔试如果出这种判断题,要记住两者可以不一致。
还有一道简答题我当时印象很深,大意是“你提交了一个Bug,开发说无法复现,你该怎么办”。标准答案是:先复现路径是否记录完整,再去确认是不是特定设备、特定网络环境、特定数据状态导致的,必要的时候补充日志和录屏,然后和开发一起复现。这个答题逻辑体现的是沟通能力和问题定位能力,比单纯背概念更能拿分。
2.3 测试模型与测试流程的选择
V模型、W模型、敏捷测试这些内容,笔试也可能会考,但不会考得太深。掌阅这类互联网公司实际用的是敏捷迭代模式,所以如果问到“你们项目怎么做测试”,一定要把需求评审、测试计划、用例设计、用例评审、冒烟测试、功能测试、回归测试、上线验证这套流程讲清楚。
有个高频小考点是“冒烟测试和回归测试的区别”。我最后悔的是第一次笔试时把这两个概念答混了。冒烟测试是版本提测之后执行的冒烟用例,验证主流程能不能跑通,等于第一道关卡;回归测试是修复Bug或新增功能之后,验证老功能没有被破坏,范围更广。虽然笔试不一定会让你写定义,但选择题里经常拿这两个概念做混淆项。
另外像“一个版本迭代周期内,测试人员应该在哪个阶段介入”这种题,答案是需求阶段就介入,而不是等研发提测后才开始。这样回答可以在简答题中体现出你有全流程质量意识,面试官会认为你懂左移测试的理念。
3. 技术栈与实操考点
3.1 Linux高频考点与日志排查
Linux命令是测试岗笔试的常客,掌阅这套卷子也出了两道。一道是“线上日志文件是app.log,怎么查看最后500行并且过滤出包含error的日志”,另一道是“如何查看某个Java进程的CPU占用率”。这些题本质上是考察你的日常排查能力,因为我工作之后发现,测试环境出了问题,第一件事就是上服务器翻日志。
第一道题的答案很简单:tail -500 app.log | grep -i error。但有几个坑要提醒一下:
grep默认区分大小写,日志里可能是ERROR也可能是error,建议加-i参数忽略大小写。- 如果想看报错前后的上下文,
grep -C 5 error app.log会更实用。 tail -f是实时跟踪日志尾部,适合看接口请求进来后的动态输出,笔试里如果写成这个也算正确。
第二道题考的是进程管理。ps -ef | grep java可以找到Java进程的PID,然后配合top -p PID查看CPU和内存占用。如果想查端口占用,用netstat -tlnp | grep 8080;想结束进程就是kill -9 PID。
写Linux命令的时候,很多人会漏掉参数或者把管道符写错。比如netstat和ss的区别、-tlnp每个字母的含义,笔试里如果只是死记硬背,遇到稍微变形一点的题就容易懵。我建议把常用的十来个命令练到条件反射,不光会写,还要知道每个参数为什么这么加。
3.2 数据库SQL查询
SQL是测试岗笔试的另一大必备技能。测试工作里查订单、查用户、核对数据都是家常便饭。掌阅这套卷子出了一道多表查询题,大致是给了users表、books表和orders表,要求统计“购买了书籍A的用户中,哪些用户还购买了书籍B”。这种题看起来像数据分析题,但本质上考的是JOIN和子查询。
手写SQL有几个容易扣分的细节:
- 表名、列名必须和题目一致,少一个字母都算错。
COUNT(*)和COUNT(column)的区别要清楚,COUNT(column)会跳过NULL。GROUP BY后的条件过滤要用HAVING,不能用WHERE。LEFT JOIN的过滤条件如果写在WHERE里,会把左表的NULL行也过滤掉,只有写在ON子句里才能保留左表全部记录,这是高频坑点。
备考方向的话,我建议把这几类题练熟:单表查询、聚合函数、多表连接(内连接、左连接)、子查询、去重排序、分页LIMIT。测试岗的SQL题不会出存储过程、触发器这种重度内容,重点在于你能不能准确、高效地查询出验证数据。
3.3 自动化测试工具与框架
掌阅对自动化测试的考察不算很深,但会通过选择题和简答题来确认你有没有相关经验。比如“Appium的工作原理是什么”“pytest和unittest有什么区别”“接口自动化测试框架一般包含哪些模块”。如果简历上写了自动化经验,笔试很可能会继续深挖。
先说Appium。它的核心原理是:通过WebDriver协议,把测试脚本的指令发送到Appium Server,再由Server转发给各平台对应的自动化驱动(iOS的XCUITest、Android的UIAutomator),最终完成对App控件的操作。笔试里如果出选择题,记住它是“客户端-服务端-驱动”三层结构就够了。
再说到pytest和unittest的区别。pytest的断言更简洁(直接assert),支持夹具(fixture)和参数化,还能通过插件扩展报告;unittest是Python自带的框架,不需要额外安装,但写法更重、扩展性不如pytest。如果你答到这个层面,说明是真用过,不是背概念。
接口自动化框架的设计题也出现过,比如“如果让你搭建一个接口自动化框架,你会怎么设计”。我的答题思路是:测试用例层(数据驱动)、业务逻辑层(封装接口)、基础工具层(发送请求、读取配置、日志)、报告层(allure、HTML测试报告),再加CI流程里的Jenkins集成。这套结构不需要写成代码,但要让阅卷人看到你有全局设计能力。
3.4 移动端性能与稳定性测试基础
阅读类App对性能和稳定性比较敏感,因为用户的阅读场景往往是长时间、高频次的,启动速度、翻页流畅度、长时间阅读的发热耗电都是核心体验。笔试这部分可能不会要求你写具体配置,但会考一些基本概念和工具。
比如内存测试,移动端可以用adb shell dumpsys meminfo <package_name>查看应用内存占用,也可以用Android Studio的Memory Profiler。再比如弱网测试,常见做法是用Charles设置Throttle来模拟2G、3G、4G网络,或者用Facebook的Augmented Traffic Control工具。稳定性测试则会用到Monkey随机事件流,或者做设备老化测试的自动化脚本,循环执行操作,观察Crash率、ANR率、内存泄漏情况。
我建议答题时把“监控指标”和“对应工具”绑定起来说,比如CPU占用、内存占用、FPS帧率、网络流量,分别用什么工具看。这样会让你的答案显得有实操经验,而不是只会写概念。
另外,掌阅这种公司大概率会有听书、PDF批注、字体切换这些细分功能,这些功能的性能专项测试也值得准备。比如PDF翻页的帧率、听书播放时后台运行的内存占用,都是阅读理解类App特有的测试点。
4. 场景设计题与业务结合
4.1 阅读App核心业务场景拆解
场景设计题是掌阅笔试的压轴部分,也是最能拉开差距的题。题目通常会给你一个具体功能,比如“书籍搜索”“书架同步”“阅读进度同步”等,让你设计测试用例。我在笔试时遇到的是与阅读进度同步相关的场景:用户在手机A上读到第100页,打开手机B之后,进度是否准确同步。
这种题很容易答得“平铺直叙”:打开App、登录、阅读、切设备、看进度,三步写完就没了。但如果按功能、异常、边界、性能、安全这些维度去拆,答案就会丰富很多。
以“阅读进度同步”为例,我的拆解思路如下:
- 功能逻辑:正常阅读后同步进度,进度条显示准确;换设备登录后,进度能恢复到最新位置;多个章节的进度各自独立记录。
- 异常处理:断网状态下阅读并退出,恢复网络后进度能否正确上传;同步过程中App被杀掉,再次启动后进度会不会丢失;服务端返回超时,客户端是提示重试还是静默处理。
- 边界条件:读到第一章第一页和最后一章最后一页的进度;阅读到目录页、版权页这些非正文内容的进度记录;书籍被删除后重新下载,进度是否保留。
- 数据一致性:手机A和手机B同时修改进度,以哪个为准;时间戳冲突怎么解决;多端登录同一账号,进度来回切换是否错乱。
- 兼容与性能:不同分辨率下进度条显示是否正常;同步接口响应时间是否在可接受范围;弱网环境下同步是否卡顿。
这样答下来,一道题能写出二三十个测试点,阅卷人一眼就能看出你有系统思维。
4.2 兼容性、弱网与异常场景
阅读类App的兼容性测试和一般工具类App相比,有一个特殊的地方:阅读场景多样化,有手机端、平板端、阅读器设备,正文排版引擎在不同屏幕尺寸下的表现差异很大。笔试如果出兼容性相关的简答题,可以从Android和iOS版本、屏幕分辨率、字体大小、深色模式、平板适配这些角度展开。
弱网测试在移动端是必考点。用户在地铁、电梯、地下车库等场景下打开App,网络波动很常见。测试点包括:页面是显示加载中还是直接空白;弱网下点击书籍下载,进度条是否准确;网络从弱网切换到Wi-Fi后,任务能否自动继续;弱网超时后,是否有明确的错误提示。同时要明确弱网模拟的工具,比如Charles的Throttle Setting或者QNET这类App。
异常场景也是笔试容易考核的点,比如存储空间不足时下载书籍会有什么表现,来电或者推送打断听书播放后,恢复播放的状态是否正确,前后台切换后阅读器会不会丢失当前页,这些都属于移动端特有的中断测试。用一句话总结:功能测试测的是“正常情况下的逻辑”,专项测试测的是“异常情况下的体验”。
4.3 场景设计题的通用答题框架
准备场景设计题,我总结了一套万能答题框架,笔试和面试都能用。核心是五步走:功能流程、异常输入、边界条件、数据一致性、性能与安全。
- 功能流程:先梳理主流程,把正常路径的每一个步骤写出来,保证主链路完整。
- 异常输入:针对每个输入条件和操作动作,考虑空值、非法值、重复操作、中断操作等异常情况。
- 边界条件:找出所有数值边界和状态边界,比如分页查找的第一页和最后一页、上传文件大小的上下限、订阅到期日的前一天和后一天。
- 数据一致性:多端同步、并发操作、缓存与服务器数据的一致性。
- 性能与安全:响应时间、并发量、越权操作、敏感数据加密。
按照这个框架去套,几乎任何一道场景设计题都能写出足够多的测试用例。还有一个技巧是善用环境维度,比如网络环境(Wi-Fi、4G、弱网、无网)、设备环境(不同品牌、系统版本、屏幕尺寸)、时间维度(前后台切换、休眠唤醒、跨天)。把这些维度叠加上去,测试点的数量和质量都会有明显提升。
5. 笔试中的常见问题与避坑指南
5.1 时间分配与答题顺序
我给你一个亲测好使的时间分配方案。如果总时长90分钟,选择题控制在15分钟以内,简答题30分钟左右,场景设计题至少留35分钟,最后10分钟检查有没有漏题或错别字。选择题遇到偏题怪题,不要死磕,先凭直觉选一个并标记,后面有时间再回头想。
我自己踩过的一个坑是:前面有一道数据结构的题想了很久,结果后面的场景题时间被压缩,导致用例设计只写了核心流程,没有展开异常和边界。最后成绩出来,虽然总分过了,但那种“明明会答却因为时间不够写不全”的遗憾真的很难受。
大题千万不要留空白。就算一时想不全,也先写一个框架出来,再逐步补充。阅卷是按得分点给分的,你写出“弱网场景”“数据一致性”“边界条件”这些关键词,就能拿到一部分分。交白卷的话,连给分的机会都没有。
5.2 笔试中容易被扣分的小细节
写用例不写预期结果,这是我见过最多的问题。测试用例的核心要素是“操作步骤+预期结果”,只写步骤不写结果,等于只完成了一半。笔试中不管你用什么格式,预期结果一定要写明确。
不考虑重复提交和并发场景。比如注册按钮,用户快速点击两次,会不会产生两条记录?如果是支付场景,重复点击会不会产生两笔订单?这种场景在笔试里特别容易考,也特别容易被忽略。答题时主动加上“重复操作”和“并发请求”这两个维度,会显得你经验很足。
SQL和Linux命令书写不规范。比如SQL里WHERE和GROUP BY的顺序写错、Linux命令漏了管道符、把grep的-i参数漏掉。这些细节看着小,但阅卷人一眼就能看出你有没有实际操作经验。建议备考时自己在电脑上敲一遍,不要只在纸上做题。
还有一个隐藏扣分点:场景设计题只答通用测试点,没有结合业务本身。比如题目是“掌阅App的书籍搜索功能”,你的用例里全是“输入合法关键词、输入非法关键词、点击搜索按钮”,完全没有提到“搜索结果的排序规则”“搜索关键词联想”“无结果时的提示”“搜索历史记录”。这说明你对业务场景的理解不够深,答出来的内容缺少差异性。
5.3 备考方向与资料建议
备考测试岗笔试,我觉得可以从四个方向入手。
第一是刷题平台。牛客网有大量测试岗笔试真题,尤其是大厂的题,虽然每家公司出题风格不同,常考知识点是相通的。建议把测试基础理论、Linux、SQL、计算机网络这几类题刷透。
第二是书籍推荐。《软件测试的艺术》适合打基础,虽然有些年头了,但边界值、等价类这些核心思想永远不会过时。移动端方向可以看《大话移动App测试》和《移动App性能评测与优化》,这两本对App专项测试讲得比较细。既然是考掌阅,最好自己下载一个掌阅App,花一两天时间拆解它的核心功能,梳理书架、书籍详情、阅读器、充值、社区这几个模块,然后试着给每个模块写一组测试用例,写出五六十个用例之后,场景题基本就不怕了。
第三是动手实践。自动化方向的pytest、Appium,不一定非要搭建一套完整的自动化框架,但至少要把pytest的断言、fixture、参数化过一遍,手机连上电脑用adb命令试几个常用指令。这些技能笔试直接考的可能性虽然不大,但面试环节一定会被问到。
第四是重点关注“自动化测试”“接口自动化框架”“安全测试”这几个热词。近几年测试岗位的笔试越来越重视自动化能力和安全思维,掌阅这类内容平台对内容安全和用户隐私也比较敏感。笔试如果提到渗透测试、安全测试,不需要你写出具体的攻击步骤,但要知道常见的漏洞类型(SQL注入、越权访问、XSS)和基本的防护思路,这会是加分项。
最后,说几个我在实际招聘和笔试过程中总结的个人建议。笔试只是筛选的第一步,但恰恰是这一步筛掉了大量只会背概念的人。公司要的是一个能快速上手干活的人,所以你的每一道笔试题,其实都是在回答一个问题:我能不能胜任这个岗位的日常工作。多从“怎么把这个功能测得更完整”的角度去思考,而不是从“怎么把这道题答对”的角度去思考,分数自然会上来。
另外,如果你准备投掌阅,建议多了解一些数字阅读行业的特点,比如版权保护、多端同步、书城运营、个性化推荐,这些都有可能成为场景题的背景。面试官想看到的,是一个对产品有感觉、对质量有追求、对技术有热情的测试工程师,而不只是一个会写用例的答题机器。把这三点想清楚,笔试就不会慌。