参加东土科技2023年秋招软件测试岗笔试,已经是一段时间以前的事了,但整套卷子给我留下的印象一直很深。市面上互联网大厂的软件测试笔试大多围着业务逻辑、通用八股文打转,东土这套题明显带有一股“工科厂”的味道:计算机网络、操作系统、嵌入式知识占据了大半江山,软件测试理论反而考得很务实,基本不玩文字游戏。如果你正准备投工业通信、智能控制、嵌入式设备这一类公司的测试岗,这篇笔试复盘应该能帮你少走不少弯路。
我先把话说在前头:东土科技不是典型的互联网公司,它是做工业互联网底层设备和解决方案的,核心业务涉及工业以太网交换机、时间敏感网络、边缘计算控制器这些方向。这类公司对软件测试的要求和互联网app测试完全不一样,它们更看重你对网络协议的敏感度、对设备稳定性的理解,以及对“测试结果可隔离、可控制”这件事的把握。笔试会非常诚实地把这种倾向反映出来。
1. 先搞清楚东土科技要什么人:公司与岗位背景
1.1 东土科技在工业互联网领域的定位
东土科技在工业互联网圈子里属于老牌玩家,主打产品是工业以太网交换机、工业级网络通信设备,近几年在时间敏感网络(TSN)和工业边缘控制上也投入很大。它的设备大量用在工业自动化、电力、交通、能源这类现场环境,这些场景对网络设备的要求就一个词:可靠。设备一旦在线,几年都不能掉链子,网络抖动一点就可能影响整条产线。
这个业务形态决定了软件测试岗的工作内容不会是“点点点”,而是要对整个系统做深层次的验证。交换机跑的是什么协议,PTP时钟同步精度够不够,TSN的流量调度有没有按优先级转发,设备在高温和强电磁干扰环境下能不能稳定运行,这些才是测试工程师需要盯住的东西。
所以笔试出题人不会问你“抖音卡顿怎么排查”这种互联网味十足的问题,而是会把考点集中在网络通信原理、系统底层机制和嵌入式测试方法上。准备笔试的第一步,就是把自己从“App测试思维”切换成“设备测试思维”。
1.2 软件测试岗的隐性画像
从卷面能倒推出这个岗位想要什么人。我做完题之后最大的感受是:它要的不是只会写测试用例的人,而是能读懂协议栈、愿意钻到硬件层面去定位问题的工程师。因为工业设备的bug往往不会安静地躺在功能测试里,更多时候藏在异常报文、时钟偏差、内存泄漏这些边角料里。
从招聘岗位角度来看,软件测试岗在东土的团队里通常要承担好几层职责:制定测试方案、设计测试用例、执行功能与性能测试、配合开发定位问题,甚至参与自动化测试工具的开发。这也就解释了为什么笔试题里除了测试理论,还混着一堆编程题和网络题——它们考察的是你的基本功底,而不是你背了多少条“等价类划分”的定义。
另外,因为工业设备的测试现场经常离机房很远,测试的可控性和可隔离性就变得特别重要。你能不能在测试环境里复现问题,能不能把变量控制住,把问题稳定地逼出来,这是工业测试工程师的核心竞争力。笔试里有一类分析题,专门就是看你怎么设计环境、控制变量,这部分我后面细讲。
2. 笔试整体结构与题型分布
2.1 题型构成与分值逻辑
2023年秋招这套笔试卷子,我印象里是90分钟的线上笔试,题量不算小,大概分五个模块:
- 单选与判断题(约20道):覆盖软件测试基础、计算机网络、操作系统基本概念
- 多选题(约10道):比单选更有迷惑性,经常给出几个“看上去都对”的选项
- 简答题(约4道):考测试用例设计、缺陷报告要素、嵌入式测试方案等
- 编程题(2道):一道简单、一道中等偏基础,可以用熟悉的语言写
- 综合分析题(约2道):给出一个实际项目场景,让你分析测试重点和策略
分值分布上,选择题比重最高,但简答和分析题才是拉分项。编程题虽然分值不高,但能直接刷掉一批基本功不扎实的候选人,所以千万不能只背概念不做题。
从分值逻辑能看出一个规律:这家公司并不指望你每个知识点都搞得很深,但要求你在网络、系统、测试三条线上都不能有明显短板。选择题考察覆盖面,简答题考察表达和思路,编程题考察动手能力,分析题考察方案设计能力,整张卷子是一个完整的筛选漏斗。
2.2 时间分配策略
90分钟做这么多题,时间其实是紧张的。我自己的实战节奏是:
- 前15分钟扫完全部题目,把会做的选择题快速定下来,拿不准的先用排除法缩小范围,不纠结
- 中间40分钟做简答题和分析题,因为这类题按点给分,写得完整比写得快更重要
- 最后30分钟留给编程题,把题目数据范围看清楚,先写暴力解能跑通,再优化
- 剩最后5分钟检查选择题有没有填错位
这里有个小提醒:很多线上笔试平台不支持回头修改答案,你要提前看清楚规则。有的平台是各题型独立计时,选了就不能改,这种情况下扫描全卷的策略就不适用了,必须拿到题就认真答。
另一个容易踩的坑是简答题写太多。你以为多写能加分,但如果答案里废话太多,反而把踩分点淹没了。我用的是“结论先行,分条列出”的写法,比如问“覆盖率和测试充分性有什么关系”,我会先写一句话亮明观点,再列两三条逻辑支撑,保证阅卷人一眼就能看到核心答案。
3. 核心考点拆解:从网络到系统
3.1 计算机网络:工业通信公司的硬门槛
如果说其他软件测试笔试考网络是点缀,那东土考网络就是重头戏。因为公司做的产品就是网络设备,测试人员至少要看得懂报文、讲得清协议。我记得选择题里出现了不少这类题目:TCP三次握手的过程、TCP和UDP的本质区别、OSI七层模型各层的作用、二层交换机和三层路由器的区别。
还有一道印象很深的题,给了四个选项问VLAN的作用。正确答案是隔离广播域。这道题放在互联网公司笔试里可能算偏门的,但放在东土卷子里非常合理——工业交换机最核心的功能就是VLAN隔离和流量管理,你连VLAN设计目的都说不清,怎么测交换机的功能?
备考这部分,我建议围绕着“网络设备基本工作原理”来复习,重点可以放在:
- 以太网帧结构:源MAC、目的MAC、类型字段、CRC校验的作用
- 交换机工作流程:MAC地址学习、泛洪、转发、过滤
- TCP握手与挥手:不只是背三个标志位,要能画出发送序列号变化
- IP子网划分:给一个IP段能算出网络地址、广播地址和可用主机数
- ARP协议流程:广播请求、单播应答,以及在跨网段场景下的变化
准备这类题有个高效方法,就是装个Wireshark抓自己电脑的包,看一次完整的TCP连接建立过程,再看一次HTTP请求的报文格式。纸上谈兵背十遍,不如亲眼看到一次SYN、SYN-ACK、ACK的序列号变化来得直觉清晰。
3.2 操作系统与Linux命令
操作系统这部分,笔试主要覆盖进程与线程、死锁条件、内存管理、进程间通信这几个常规考点。题目难度适中,比如问你“进程和线程的根本区别是什么”,选项里会混着“进程有独立地址空间,线程共享地址空间”这种正确项,也会混着“线程是资源分配的基本单位”这种错误项,考察的就是概念是否扎实。
东土这类嵌入式相关公司还特别爱问Linux命令,因为测试工程师到岗后大概率要泡在Linux环境里。我记得简答题里有这么一道:如何定位一个进程的CPU占用率过高问题?标准思路是先看top找到高占用进程,再用ps确认进程属性,配合strace或perf看系统调用和热点函数,必要的时候用gdb挂上去看堆栈。这道题考察的已经不单纯是命令记忆,而是诊断思路。
复习操作系统时,死锁的四条件(互斥、占有并等待、非抢占、循环等待)属于必背内容,但笔试很少让你默写,而是给你一个场景问你为什么会死锁、怎么避免。我建议把死锁的“鸵鸟算法、预防、避免、检测与恢复”四种处理方式对比着理解,再配合生产者消费者模型和银行家算法刷几道题,基本就稳了。
Linux命令不需要背所有参数,但下面这些高频命令必须熟练:top、ps、netstat、tcpdump、grep、awk、sed、tail、ping、traceroute。这里有个细节,光知道命令不够,得知道“什么时候用哪个”。比如排查网络问题,先ping看连通性,再traceroute看路径,然后telnet或nc看端口,最后tcpdump抓包看报文,这一条链路下来,比单独记命令有效得多。
4. 软件测试理论与流程的考察方式
4.1 测试基础与用例设计
软件测试基础这部分,对科班出身的人来说不难,但对转行或者基础不牢的同学来说,笔试里的陷阱非常多。选择题里会考测试分类、V模型和W模型、黑盒白盒灰盒的区分、静态测试和动态测试的定义,多选里还出现过“下列哪些属于黑盒测试方法”这种题目,选项里有等价类划分、边界值分析、决策表、语句覆盖。
语句覆盖属于白盒测试方法,如果不仔细区分很容易选错。这种题没有捷径,只能把分类体系记准确。我的建议是画一张脑图,把测试从三个维度展开:按阶段分(单元、集成、系统、验收),按是否执行代码分(静态、动态),按是否知道内部结构分(黑盒、白盒、灰盒),这样遇到分类题就不容易混。
用例设计部分是必考的。笔试里给了个注册页面的描述,要求用等价类和边界值设计测试用例。这种题看的是你有没有形成一套稳定的用例设计习惯。我的模板是:先拆需求点,再按输入项逐个设计,最后补场景用例。需求点包括用户名长度、密码复杂度、确认密码一致性、验证码是否过期、手机号格式;每个输入项正常值、边界值、非法值各设计一条;场景用例覆盖“注册成功”“密码不一致”“验证码错误”“超时提交”“重复用户名”等。
4.2 软件测试流程与项目场景题
关于软件测试流程,笔试的考法一般是两种:一种直接问你“一个完整的测试流程包括哪些阶段”,另一种给一个需求变更,让你说测试怎么响应。第一种相对简单,按“需求分析→测试计划→测试设计→测试执行→缺陷管理→测试报告”的顺序答就行。东土这类公司会多问一层,就是“项目周期很紧的时候,测试怎么保证质量”,这时候就涉及到测试策略的取舍了。
我记得有一道分析题大概是这样的:一个工业交换机的新固件版本要发布,新增了VLAN配置功能和若干性能优化,开发团队只给了三天测试时间,问你怎么安排测试重点。这道题没有标准答案,但对测试理解深浅一下就区分开了。
我当时的答题思路是:功能新增部分优先冒烟测试,因为这是最可能直接阻断发布的问题;然后对VLAN配置做核心路径的完整回归,因为配置类功能一旦出错影响面大;性能优化部分用自动化脚本跑通主要吞吐量指标,细节指标留到版本发布后持续监控;最后把遗留风险写清楚,让项目组决策是否接受。这道题的核心逻辑,是让你展示“在资源受限的情况下如何做风险排序”,这也是工业测试工程师日常工作中每天都在做的事。
5. 嵌入式软件测试的专项内容
5.1 嵌入式测试和普通软件测试的差别
东土既然做设备,嵌入式软件测试就是绕不开的板块。笔试里明确出现了关于嵌入式测试的简答题目,问的是“嵌入式软件测试与普通PC软件测试相比有哪些特点”。这道题如果没接触过嵌入式,很容易答得空泛。
我的理解是,嵌入式软件测试最突出的特点是测试环境与运行环境的分离。被测代码跑在目标板上,而编译、测试执行、结果收集通常在PC端完成,这就需要交叉编译工具链和远程调试环境。因为设备资源受限,日志往往只能存到串口或者临时文件里,测试人员需要主动设计日志打印和上报机制,才能拿到足够的信息定位问题。
嵌入式测试还特别强调稳定性测试和长时间压力测试。一个工业交换机可能要连续运行几个月,内存小幅泄漏、文件句柄慢慢增长,这些在短期功能测试里根本发现不了,只有长期运行才能暴露。所以笔试里很多时候会问你“如何设计稳定性测试方案”,答案应该围绕监控指标、运行时长、异常恢复三个维度展开。
5.2 硬件相关考点与隔离可控思维
嵌入式软件测试必然会涉及硬件知识的考察,笔试里出现的寄存器读写、中断处理、内存映射这些概念,很多人一看就头疼。但我觉得出题人并不是想把你难倒,而是想确认你有没有硬件基础概念,知道软件和硬件是怎么交互的。比如,问“中断处理和轮询有什么区别”,你只要说出中断是被动触发、CPU无需等待,轮询是主动检测、占用CPU,就算答到点子上了。
真正能拉开差距的,是“可隔离、可控制”这四个字在嵌入式测试中的具体落地。我曾经在项目里踩过一个很典型的坑:设备偶发重启,排查了三天没头绪,原因是测试环境里同时跑了多个用例,设备供电不稳、温度偏高,几个变量混在一起根本没法定位。后来把测试环境拆出来,设备独立供电、独立温控,再一个个用例单独跑,才逼出一个只在特定报文流量下触发的指针越界问题。
这段经历恰好对应了笔试里那道分析题:如何设计一个嵌入式测试环境来保证测试结果的可靠性?我的答案就是从可隔离和可控制两个关键词出发——隔离是指被测设备和外部干扰源隔离,电源独立、网络独立、无线信号屏蔽;控制是指测试条件可复现,温度恒定、报文构造固定、执行步骤脚本化。这套思路不只是笔试用的,实际工作中更是救命法宝。
6. 编程题与逻辑题
6.1 笔试常考的编程题
编程题是很多测试候选人最发怵的部分,但东土这套题编程部分难度真不算高,大概是LeetCode简单到中等之间的水平。我记得有一道是字符串处理,要求把一个字符串里的空格替换成指定字符,限制只能原地操作。这种题在面试准备阶段属于最基础的类型,但放在笔试环境下,反而能筛掉一批“只会聊天不会码代码”的候选人。
做编程题时,有几个细节特别值得注意:第一,看清输入输出格式,有些题是从标准输入读,有些是函数传参,搞错了直接零分;第二,注意边界条件,空字符串、单字符、超长字符串都要考虑到;第三,如果最优解想不出来,先把暴力解写出来,至少能过部分测试用例。
比如那道字符串替换的题,暴力解法是新建一个数组遍历原字符串,空间复杂度O(n),面试官不会觉得惊艳但能通过;进阶解法是先计算出空格数量,从后往前遍历填入,空间复杂度O(1)。在东土这类公司笔试里,能写出暴力解已经能拿到大部分分数了,因为真正考察的不是你的算法竞赛水平,而是编程基本功和逻辑严谨度。
6.2 逻辑推理与场景题
除了编程题,卷子里还有几道逻辑推理题,形式是给一段描述让你判断测试优先级,或者给你几个缺陷报告让你排序处理顺序。有一道印象比较深的题:测试过程中发现四个bug,一个是在极其罕见场景下设备重启,一个是正常功能页面显示错误但刷新就恢复,一个是网络丢包率高导致偶发断连,一个是产品文档里的参数说明写错了,问先处理哪个。
这道题没有绝对的对错,但能看出你的判断逻辑。我当时选的是先处理“设备重启”和“网络丢包”这两个问题,因为工业场景下设备可靠性永远排在第一位,页面显示和文档问题影响面小,可以在下一轮修复。出题人想通过这道题看的,是你是否理解工业产品的质量底线在哪里——功能可以不丰富,但稳定性绝对不能让步。
这类场景题想要答得好,靠的是平时积累的测试思维。我常用的方法是把自己代入真实场景,假设这就是我自己负责的产品,如果这个bug发布出去会造成什么后果,轻则功能异常,重则产线停产,那么处理优先级马上就排出来了。
7. 备考建议和实用技巧
7.1 笔试前的准备方法
结合这次笔试的经验,我觉得准备软件测试岗笔试不能只刷题,要有一个系统的知识框架。我用过的办法是把复习内容分成四个文件夹:测试理论、计算机网络、操作系统与Linux、编程刷题。每个文件夹里放对应的笔记和错题,考前一周只看笔记和错题,不盲目刷题。
测试理论这块,我要多说一句。网上流传的软件测试面试八股文可以背,但更建议理解着记。比如问到“你在项目中怎么保证测试覆盖率”,如果你只背“合理设计用例、补充边界条件”这种空话,基本等于没答。更好的方式是讲一个真实项目,说出从哪里分析了需求、用了哪些方法设计用例、最终覆盖率从多少提升到多少,这种有数据支撑的回答,比任何八股文都更有说服力。
备考阶段我还建议关注一下AI软件测试工具的趋势。比如用Coze可以搭建一个软件测试工作台,把测试需求拆解、用例生成、边界条件分析这些流程做成自动化,既能练习提示词工程,又能辅助自己完善用例设计。现在不少测试团队已经在用AI辅助生成用例和自动生成测试报告,笔试虽然不会直接考,但在面试阶段主动提到这类实践,会让人感觉你不是一个只会死记硬背的候选人。
7.2 做题时容易忽略的细节
笔试中有些非技术细节,往往比技术本身更能决定得分。第一,线上笔试一定要提前检查网络和浏览器环境。我遇到过有同学因为摄像头权限没开,被系统判定作弊直接取消了成绩,这个真的冤。第二,简答题不要留白,哪怕不确定也要把思路写出来,阅卷是按点给分,你写了相关概念就有分,空着绝对是零分。第三,编程题做完后,至少自己设计两组测试数据进行验证,包括正常情况和边界情况,很多低级错误都能靠这步发现。
还有一个小技巧:多选题不确定的时候,宁可少选也不要多选。大部分笔试平台多选题的规则是“多选、错选不得分,少选得部分分”,所以你拿不准的选项,就不要勾选,保住基础分比冒险抢分更划算。
关于软件测试简历,虽然没有直接出现在笔试里,但我想顺带提醒一句:笔试通过后紧接着就是面试,简历里写过的每一个项目、每一种测试方法都要能经得起追问。我在简历里写了“负责交换机管理软件的功能测试”,面试官盯着一路问到具体测试环境怎么搭的、用没用过自动化脚本、覆盖率怎么统计的,如果简历内容是自己真实做过的事情,这些追问完全不是问题;但如果是包装出来的,很容易在深挖中露馅。
8. 一点个人心得
复盘这套笔试,我最想跟大家分享的其实不是具体题目,而是选岗时的心态。软件测试这个行业已经过了“随便点点就能入行”的阶段,东土这类工业互联网公司的测试岗,尤其需要兼具软件工程素养和硬件系统思维的人。笔试只是一个筛子,真正决定你能不能拿到offer的,是你对测试这件事有没有自己的方法论。
我自己的体会是,测试的核心能力从来不是“找bug”,而是“控制变量、逼近真相”。这个理念贯穿了东土笔试的分析题,也贯穿了我后来的每一段测试工作。如果你在准备这类公司的笔试,不妨早一点养成这种思维习惯:遇到问题先问条件是什么,再设计实验去验证,最后从结果里找线索。这比背一百道题都管用。
最后再分享一个小技巧:笔试前可以花十分钟在纸上写下你认为最可能考的五个知识点,然后逐个用口述的方式给自己讲一遍。能顺畅讲出来的,就是真正掌握了的;讲不清楚的,就是考前优先级最高的复习对象。这个方法帮我抓住了不少薄弱点,希望你也能试试。