公司动态
广联达测试工程师笔试题复盘:题型考点与答题策略全解析
1. 为什么这套2018年的题到现在还有复盘价值2018年秋招前后广联达在西安、北京、武汉等城市的宣讲会安排得非常密集软件测试工程师这个岗位的投递量很大。当时很多人对广联达的认知还停留在“做造价软件的公司”觉得笔试应该偏业务、偏土木工程结果拿到卷子才发现计算机相关专业那批人面对的笔试内容和业务岗完全是两套题考察重心放在了计算机基础、测试理论、逻辑思维和少量编程能力上。我之所以愿意花篇幅来复盘这套题是因为它代表了那个阶段建筑软件类公司测试岗笔试的一个典型样本不考特别偏门的框架不考花哨的工具但基础面铺得很宽题量不小有一种“看你基本功扎不扎实”的老派风格。对于现在准备测试工程师面试的人来说拿这套题当摸底卷仍然比漫无目的地刷LeetCode更有针对性。这套题适合谁看一是正在准备测试开发、软件测试岗位校招的人二是转行测试想找一套正规笔试题来检验自己水平的人三是已经在做测试但没经历过笔试阶段想补上这一课的人。读完你可以对照着自测哪些题能秒答哪些题要卡壳哪些题根本没见过这比收藏一堆面经管用得多。2. 笔试题型结构复盘不是只有测试题2.1 整套卷子的版面与时间分配2018年广联达测试工程师计算机相关专业笔试题体感上是2小时完成一份横向铺开的综合卷。题型大致固定为单选、多选、填空、简答、编程与场景设计题。我当时拿到卷子第一反应是题量比想象中大单选多选加填空加起来接近四十道后面还有五六道需要写文字的题如果前面磨蹭后面基本写不完。不同考场可能采用线上答题系统或纸质试卷。线上系统通常有倒计时和切题功能纸质试卷则需要自己控制节奏。不管哪种形式我的建议都是前60分钟坚决不碰编程题先把客观题与简答类题目解决掉。理由是客观题覆盖的知识点分散趁头脑清醒时做正确率最高而场景设计题和编程题即使放到最后只要框架清晰也能拿到大部分步骤分。整体分值分布大致呈现如下特征不同年份略有浮动但大方向可以参考题型大致题量主要考察方向建议用时单选题15-20道测试理论、数据结构、操作系统、网络、数据库25分钟多选题5-8道软件工程、测试方法、计算机网络15分钟填空题5-10空术语定义、命令补全、SQL语句、排序复杂度10分钟简答题2-3道测试计划内容、Bug报告要素、测试流程20分钟场景设计题1-2道用例设计、需求分析、边界处理25分钟编程题1-2道基础算法与编码能力20分钟逻辑推理题2-3道推理分析、操作步骤、思维缜密度5分钟表格里的时间分配是理想状态。实际考场上单选题里一旦出现两三个拿不准的很容易就超时。所以遇到卡壳的题先标记后跳过后面有时间再回来抠这是我在很多场笔试里验证过的最稳妥策略。2.2 各板块的分值权重与容错空间从筛选角度看客观题是保底项主观题是区分项。客观题覆盖面广但深度有限只要系统学过计算机基础课拿个七成正确率不难主观题则需要你真正理解测试的工作方式尤其是场景设计题非常能拉开差距。广联达这套题的多选题要格外留意。我在好几个平台的回忆帖里都看到有人说多选“漏选没分”规则相当严格。所以多选题的答题策略是不确定的选项坚决不选宁可少拿分也不能冒险把整道题的分都丢光。如果是线上系统且明确提示“少选得部分分”那可以适当放宽但前提是你能确定选进去的选项完全正确。简答题和场景设计题没有标准答案但判卷人会给关键点打分。比如让你“写一个登录功能测试用例”你只写“输入正确的账号密码能登录”这种一句话大概率只有辛苦分但如果你能按功能、界面、兼容性、安全性、性能几个维度拆开写每条用例包含前置条件、操作步骤、预期结果得分效果完全不一样。关于这个我后面会单独用一个章节给出示范。3. 测试基础考点背熟这些不一定满分不背一定扣分3.1 测试阶段、流程和模型广联达的客观题里测试基础部分非常常规几乎就是软件测试教材里的重点原题。常见出法有软件测试按阶段划分有哪些类型早期划分是单元测试、集成测试、系统测试、验收测试现在还会加上冒烟测试、回归测试这些延伸概念。测试流程的先后顺序是什么需求分析、测试计划、测试设计、测试执行、缺陷跟踪、测试报告、测试总结。几个经典的软件开发模型对应的测试策略比如瀑布模型、V模型、W模型。V模型强调测试与开发阶段的一一对应关系W模型则是开发V和测试V并行。这个知识点属于概念题但经常出现在多选里选项喜欢把V模型和W模型混在一起考察。有一个容易错的点回归测试和冒烟测试的区别。很多人在选择题里选的时候会犹豫。冒烟测试是在主功能完成后快速验证核心功能是否可跑通的“门禁测试”而回归测试是修改代码之后对已有功能进行重复验证目的是防止新改动引入旧问题。两者的触发时机完全不同不能混用。3.2 用例设计方法怎么考用例设计方法在笔试里的考法有两类一类是直接问你有哪些黑盒测试方法另一类是给一个小需求让你现场设计用例。前者是送分题等价类划分、边界值分析、因果图、判定表、正交实验、场景法、错误推测法能记住这七个就够应付大部分选择题。后者才是真正拉开差距的地方后面会展开说。等价类划分和边界值分析是最容易被低估的两个方法。比如“年龄输入框限制为18到60岁”很多人写用例时只会写“输入18、输入60、输入61、输入17”这些边界点忽略了还要考虑有效等价类区间内的非边界值、无效数据的类型字母、负数、空值、小数。判卷时看的是你有没有“从全量输入空间里压缩出代表性数据”的意识而不是单纯看边界点有没有覆盖到。判定表和因果图在笔试中出现频率略低但只要出现往往就对应着一个具体场景多个条件之间有限制关系。比如购买机票时的“身份类型”和“折扣类型”不是任意组合都能成立这时候用判定表可以把所有条件组合列出来再一条条删掉不合理的比靠脑子穷举靠谱得多。3.3 Bug生命周期与缺陷报告要素Bug相关的题我见过至少三种考法第一种是“描述Bug从提出到关闭的全过程”这个要写清楚从开发人员提交缺陷、测试人员验证到修复验证通过后关闭的完整链路。核心是要提到Bug状态之间的流转比如New—Open—Fixed—Verified—Closed以及因为不可复现、不是缺陷、延期修改等特殊原因导致的Closed状态变化。第二种是给你一段缺陷描述让你挑出“缺少了什么关键信息”。优秀的缺陷报告至少要包含缺陷编号、缺陷标题、所属模块、复现步骤、实际结果、预期结果、操作环境、严重程度、优先级、附件日志或截图。笔试里常见的一个坑是漏掉“复现步骤”因为很多人说“网页报了一个500错误”就把Bug提交了这等于让开发自己猜是非常不合格的做法。第三种是问“严重程度和优先级的区别”。严重程度是对软件本身破坏程度的描述优先级是修复顺序的工程决策。严重程度不一定等于优先级一个影响面小但出现频繁的错别字严重程度低但优先级可能高一个只在极端场景下出现的核心模块崩溃严重程度最高但优先级不一定排在最前面。4. 计算机专业基础知识题给非科班的一剂定心丸4.1 数据结构与算法常考清单计算机相关专业方向的测试岗笔试数据结构题不会出得像研发岗那么难但基本概念和手动模拟计算是必考。广联达这套题里我印象比较深的有几类链表和数组的区别。这个题可以单选考你存储方式也可以填空考你插入删除的时间复杂度还可能结合场景问你“频繁在中间插入数据用哪种结构更合适”。关键是数组连续存储、随机访问O(1)、插入删除需要移动元素链表离散存储、随机访问O(n)、插入删除只改指针二者各有取舍。栈和队列的应用场景。函数调用、括号匹配、表达式求值对应栈打印队列、消息队列、进程调度对应队列。这个知识点在测试领域还有个延伸接口测试中经常说的“消息队列”本质也是先进先出的思路理解了数据结构的队列再看消息中间件会轻松很多。二叉树的遍历方式。四种遍历必须背熟前序、中序、后序、层次遍历。笔试常考给你一棵树的结构图让你写出遍历序列或者反过来给你中序前序让你推出后序。这种题不需要代码但需要你在草稿纸上一步步推不能靠心算。排序算法的时间复杂度与稳定性。这一块几乎是必考而且容易集体出现。比如让你判断“下列哪些排序算法是不稳定的”或者给你一个数组让你写出冒泡排序一趟的结果。建议把冒泡、选择、插入、希尔、归并、快排、堆排的平均、最好、最坏时间复杂度和空间复杂度整理成一张表考前花十分钟过一遍性价比很高。哈希表偶尔会以填空题出现比如“哈希冲突的解决方法有哪些”答案一般是开放定址法、链地址法、再哈希法、建立公共溢出区。这个不需要深入掌握原理把术语和基本思想写出来就能得分。4.2 操作系统与计算机网络高频点操作系统在测试岗笔试题里占比一般不会太高但一旦出题往往是进程线程、死锁、内存管理这三个方向。我印象中广联达有几年特别喜欢考死锁的四个必要条件互斥、持有并等待、不可剥夺、循环等待。这个题特别适合出多选选项还会把“抢占”和“等待”混进去制造干扰。线程和进程的区别也是常客。核心观点是进程是资源分配的基本单位线程是CPU调度的基本单位同一个进程内的线程共享地址空间进程之间相互隔离。还要知道“线程安全”这个概念因为测试人员在进行性能测试时经常要判断并发环境下会不会出现数据竞争。计算机网络部分2018年前后的测试岗笔试非常看重三次握手与四次挥手。选择题常见问法是“TCP连接建立过程中发出的第一段报文是什么”答案是SYN问“挥手时FIN和ACK的对应关系”也是常见考法。此外HTTP状态码在测试岗笔试题里出现频率很高尤其是404、301、302、500、502、503这几个出题人喜欢把你放在“测试接口时收到某状态码问题出在哪一层”的场景里考。这里要说一个我后来才想明白的点计算机网络对测试工程师的重要性比表面上看起来大得多。不管是接口测试、性能测试还是抓包分析本质上都是在和网络协议打交道。笔试阶段你只要搞清楚TCP/IP分层、DNS解析流程、HTTP请求由哪些部分组成后面做接口测试时会少踩很多坑。4.3 数据库SQL读懂题意再动手数据库是计算机相关专业笔试题里几乎必定出现的一环。2018年广联达笔试的SQL题难度不算高重点是基础查询、连接查询、分组统计偶尔会有子查询和简单的增删改。常见的出题方式是给你两张或三张表比如学生表、成绩表、课程表让你写出满足条件的SQL语句。典型题目有查出成绩大于80分的学生姓名。统计每个班级的平均成绩。查询没选过某门课程的学生名单。删除重复记录。这类题在笔试中的陷阱不是语法不会而是没读清楚题意。比如“查出平均成绩大于80分的学生”和“查出成绩大于80分的学生”前者是GROUP BY HAVING后者是WHERE差一个字母结果完全不同。考试时间紧张时特别容易看错我建议把题目里的“平均”“每门”“所有”“至少”这些词圈出来再开始写SQL。索引和事务也是常见概念题。索引的作用是加快查询但不能盲目加因为会增加写入的开销和存储空间事务的ACID四个特性是原子性、一致性、隔离性、持久性多选题里直接把这四个特性混在别的选项里考基本是送分题。5. 编程题与逻辑推理题现场真正的分水岭5.1 手工写代码的常见考法计算机相关专业的测试岗笔试编程题一般不会出特别长的代码但会让你在纸上或在线编辑器里手写一段小逻辑。常见难度在“剑指Offer”初级到中级之间不会涉及复杂的动态规划。最常遇到的题目类型包括字符串反转、数组去重、判断回文串、二分查找、单链表反转、二叉树前序遍历、冒泡排序、寻找数组最大值等。这些题在LeetCode上都是Easy难度但笔试现场写和在家刷题完全是两回事因为不能反复编译调试你必须一次把逻辑写对。我的建议是写出完整可读的代码而不是只写一个函数签名。判卷人看代码时会关注三样东西核心逻辑是否清晰。变量命名别用a、b、c这种无意义符号哪怕写成p、q、temp都比a1、a2强。边界条件是否处理。比如空数组、null、字符串长度是0、数组只有一个元素这些情况你有没有判断。时间复杂度是否有说明。即使不要求写你在注释里写一句“时间复杂度O(n)空间复杂度O(1)”也会给判卷人留下好印象。举一个常见例子二叉树的前序遍历题目要求非递归实现。很多人直接写递归虽然也得分但如果你会用栈模拟递归过程代码明显更有含金量。核心思路是先把根节点压栈弹出后先压右子节点再压左子节点因为栈是后进先出只有先压右再压左才能保证弹出顺序是“根—左—右”。这种题在测试岗笔试里不常见但一旦出现就能看出你的数据结构基本功。5.2 逻辑推理题的出题套路广联达这套题里还有一个容易被忽略的板块逻辑推理。题量不大通常两到三题放在卷子后半部分。常见类型有真假话问题、过桥问题、倒水问题、称假币问题以及简单的排列组合推理。很多科班出身的同学会惯性思维觉得逻辑题只是公务员考试的专利和测试有什么关系。这其实是个误解。测试的本质是“在有限条件下尽可能多地发现可能性”而逻辑推理题恰恰训练的是“从约束条件中推断结论”的能力。比如称假币问题你要在一堆看似相同的硬币中用最少的次数找出异常的那枚这和你在不完整需求下定位Bug的思路是完全一致的。应对逻辑推理题最重要的是不要在脑子里空转一定要在草稿纸上写约束表达式或画状态表。倒水问题用状态搜索过桥问题用时间排序真假话问题用矛盾关系切入方法都固定练过就会没练过就完全没思路。所以准备阶段买一本公务员行测的逻辑判断专项只挑“分析推理”部分做对测试岗笔试特别有效。5.3 一道典型逻辑题的“应试拆解”以经典的“烧绳子计时”问题为例有两根不均匀的绳子每根完全烧完需要1小时怎么用这两根绳子测出45分钟这道题在很多测试岗笔试题里都出现过考察的是你对“不确定性约束”的理解。绳子不均匀所以不能靠“烧一半就是半小时”这种线性思维。正确做法是第一根绳子点燃两头第二根绳子只点燃一头。第一根绳子烧完时时间过去30分钟。此时第二根绳子已经烧了30分钟的剩余量假设还能烧30分钟这时再点燃第二根绳子的另一头剩余部分就会在15分钟内烧完。30分钟加15分钟正好45分钟。这道题的价值不在于记住答案而在于它训练了你“同时推进多个约束”的能力。现实中测试用例设计经常面临类似场景手上只有有限的测试环境、有限的时间和多个相互依赖的功能模块你得学会用并行思维提高效率。6. 场景设计题怎么答才能踩到分6.1 先搭框架再谈穷举场景设计题是广联达测试岗笔试里最贴近实际工作的一道题也是刷题最不容易刷中的部分。它不会问你“等价类划分的原理是什么”而是直接给你一个功能模块让你设计一套完整的测试用例。常见对象有登录模块、搜索功能、购物车、订单列表、文件上传偶尔也会有面向建筑业务的功能比如“工程量清单导入功能”或“合同审批流程”。很多人答题时习惯从第一个想到的用例开始写写到哪算哪结果洋洋洒洒写了一堆却因为覆盖角度不全而丢分。正确姿势是先把纬度列出来再往每个纬度里填用例。我常用的框架是功能测试正常流程、异常流程、分支判断、数据校验。界面测试布局、文案、交互状态、响应速度。易用性测试操作路径是否合理提示是否友好。兼容性测试不同浏览器、不同操作系统、不同屏幕分辨率。安全性测试权限控制、敏感信息加密、越权访问。性能测试并发用户数、响应时间、资源占用、稳定性。先写框架再写用例的好处有两点一是避免遗漏二是判卷人一眼就能看到你的思路是完整的。就算你每个纬度下只写了三四条用例整体框架一出来得分也会比那些东写一条西写一条的人高不少。6.2 以“登录功能”为例的完整答题示范笔试里出现“登录功能”的概率极高我把答题话术拆解一下你可以直接套用。首先写功能测试输入正确的用户名和密码点击登录应成功跳转到主页。输入正确的用户名和错误的密码应提示“用户名或密码错误”。输入错误的用户名和正确的密码应提示“用户名或密码错误”不能明确告诉用户具体是哪一项错了防止账号枚举。用户名为空、密码为空、两者都为空应分别给出对应提示。密码输入框是否做掩码显示是否有“显示密码”的切换按钮。连续输错N次后是否出现验证码或账号锁定机制。然后写边界与格式校验用户名长度为1个字符、最大长度、超过最大长度时系统如何处理。密码中是否允许包含空格首尾空格是否被自动去除。是否支持中文用户名是否支持特殊字符。使用复制粘贴功能粘贴密码时是否符合预期。再写安全性测试登录成功后登出此时按浏览器后退按钮是否还能看到上一页的数据。使用其他用户身份直接访问登录后的URL是否会被拦截。通过抓包工具修改请求中的用户ID后重放是否能伪装成其他用户登录。密码在传输过程中是否加密是否使用HTTPS。是否支持“记住密码”记住的密码在本地是否明文存储。最后写兼容性与性能在Chrome、Firefox、Edge、Safari最新版本下的表现。在Windows、macOS、移动端浏览器上的布局与交互。100个用户同时登录时系统响应时间是否在可接受范围内。弱网环境下登录请求超时是否有合理的重试机制。如果你能在一张卷子里写出这个颗粒度的用例这道题基本就是高分。关键不在于你写了多少条而在于你有没有表现出“可持续发现边界问题”的意识。6.3 与B端产品结合的边界能力广联达是典型的B端软件公司笔试题里的场景设计有时会带一点业务色彩。比如让你测试“工程文件导入”功能这里面就涉及文件格式兼容、大文件上传、断点续传、重复文件处理、解析失败时的错误提示等一堆具体问题。很多应届生容易在这类题上翻车因为潜意识里觉得“建筑软件离我很远”。但你要理解平台题的判断标准从来不是你有没有用过广联达的产品而是你能不能抽象出这类功能的通用测试逻辑。测试工程师的底层能力是拆解输入、处理、输出三层结构业务只是外壳。以“工程量清单导入”为例输入层支持哪些文件格式Excel、XML、CSV超大文件是否支持空文件、损坏文件、加密文件如何处理重复文件名是否覆盖还是重命名。处理层导入进度条是否实时更新导入过程中取消操作是否有效解析失败时能否准确定位到某一行数据数据量达到百万行时是否会出现内存溢出。输出层导入成功后页面是否展示汇总统计部分成功部分失败时失败数据是否单独展示用户再次导入是否会产生重复数据。这套三层结构可以迁移到绝大多数企业级功能上。学会用它场景设计题基本就稳了。7. 我踩过的坑和后来的复盘7.1 时间分配失误前重后轻我第一次做这类卷子时最大的失误是在单选和多选题上耗时过多。当时碰到几道拿不准的题心里放不下翻来覆去地改结果后面只剩不到30分钟简答题草草写了两行场景设计题连框架都没搭完整。出来一核对发现前面纠结很久的那几道题最终还是选错了而后面那些本该拿分的题却因为没时间被白白丢掉。复盘之后我才想明白一个道理一张笔试题卷子的目标不是把每道题都做对而是把整张卷子拿到的总分最大化。遇到拿不准的客观题先凭第一感选一个标记一下立刻往下走。等后面做完主观题还有剩余时间再回头用排除法重新推。这看起来是常识但在考场上很容易被“不甘心”的情绪冲昏头脑。7.2 多做题不如多总结准备测试岗笔试时很多人会陷入刷题焦虑今天刷数据结构的题明天刷测试理论的题后天又去翻SQL题结果哪个方向都没吃透。我自己后来采用的是一套“分块复盘”的方法把测试卷子里的知识点分成测试理论、软件工程、计算机基础、编程、逻辑推理、场景设计六个模块每个模块整理一张错题清单只记录“我哪里想错了”和“正确的思考路径是什么”。比如数据结构模块我给自己整理了一张排序算法复杂度表考试前只花10分钟浏览一遍效果比刷50道排序题都好。再比如SQL模块我把常见陷阱总结成一句话“GROUP BY后面只能跟聚合函数和分组字段WHERE不能和聚合函数一起用HAVING是在分组之后过滤。”这句话在笔试现场帮了我大忙。7.3 给现在准备测试岗的人一句实话虽然这套题是2018年的但每年都有新的求职者跑来问“广联达测试岗笔试考什么”说明大家真正需要的不是原题答案而是对考试逻辑的完整理解。测试岗位的笔试从来不会只看你会不会写用例它本质上是拿一整套基础知识和逻辑题来验证你有没有“做事情的章法”。一个能把场景设计题按框架写完整的人进入团队后大概率也能把测试计划写得明明白白一个客观题全靠蒙的人即使简历写得再漂亮也很难让人信任。所以我的建议是不要只盯着这一套题多找几家做企业级软件的公司笔试题来交叉练习比如用友、金蝶、纷享销客这类同赛道的厂商它们的出题风格非常接近。把同样一套“框架法”在不同题目里反复使用你会发现场景设计题的边界在一点点扩大客观题的选项也慢慢变得“可预测”。最后说一个我至今仍然在用的技巧每次做完一套笔试题不要急着对答案先把你写的每一个主观题答案重新读一遍假装自己是面试官挑出三处会被追问的地方。然后围绕这三处做一次小型的知识补习。这个习惯看起来慢但非常省力。你用它练过五套题之后再碰到那些没见过的题目就不会慌因为你知道考来考去考的都是那几件事。