ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

360软件测试笔试真题详解:核心考点与答题思路

360软件测试笔试真题详解:核心考点与答题思路 想进360做软件测试的同学估计都绕不开这套题。2015年的这份笔试题放在今天看依然很有参考价值——不是因为题目有多新而是它把软件测试工程师最核心的基本功全部串了一遍测试理论、计算机网络、操作系统、数据库、编程基础再加上一堆让你“现场设计测试用例”的应用题。很多培训机构出来的同学简历上写着熟悉测试流程一碰到这种笔试就直接露馅因为题目不考背诵考的是你有没有真正理解测试这件事。这篇东西不是单纯把题目列出来对答案而是带着你分析“360为什么这么出题”“每类题到底在筛什么人”“现场答题时怎么组织思路才能拿高分”。适合正在准备软件测试校招或社招笔试的人也适合已经入行但想补基础、跳槽去大厂或安全厂商的测试工程师。哪怕你完全没接触过安全测试看完也能把整套题的考察逻辑理顺。1. 笔试总体结构与考察逻辑1.1 题量与时间分布2015年360的软件测试笔试整场时间大概90到120分钟题量不小通常在60到80题之间。名义上是笔试题实际上是“选择题简答题设计题编程题”的混合体。现在很多公司把笔试挪到线上做但360这套题当年是纸质作答所以对书写速度和思路表达要求很高——你光在草稿上演算对了一半写不到卷面上就等于没分。从题型结构来看大致可以分成四个块基础选择题覆盖计算机基础、网络协议、操作系统、数据结构会掺杂少量逻辑题。测试理论题包括测试分类、测试流程、用例设计方法、缺陷管理多以简答形式出现。场景设计题给一个具体功能模块让你现场设计测试用例这是整张卷子分值占比最高的部分。编程或逻辑题一般放在最后涉及C语言指针、数组、简单算法重在考察代码功底和边界思维。题量大的时候很多人容易在前面选择题上磨太久等做到用例设计题时只剩十分钟直接血崩。所以拿到卷子第一件事不是埋头做题而是花两分钟把整张卷子翻一遍标出哪些题是不确定但分值高的哪些是确定能拿分的然后从性价比最高的题目开始做。这个习惯我到现在都觉得受用。1.2 出题人真正想筛什么样的人很多人以为360的测试笔试题会狂考安全测试什么SQL注入、XSS、木马原理。实际上当时这套题的难点恰恰在于“不偏科”——它用大量基础题筛掉基础不牢的人再用设计题筛掉没有测试思维的人。软件测试这个岗位尤其是安全厂商的测试岗日常工作面对的不是简单的web页面而是数款产品组合之下的复杂场景。比如当年的360安全卫士一个版本要兼容几十种Windows环境涉及杀毒、清理、漏洞修复、软件管家等多个模块测试人员如果连进程和线程的区别、TCP三次握手的过程、SQL的left join都说不清楚根本没办法跟开发沟通更别提定位一个偶现的崩溃问题。所以出题逻辑很直白不指望你背了多少条测试理论而是看你能不能把计算机基础知识和测试方法论结合起来用。举个典型的例子卷子上可能会问你“等价类划分和边界值分析有什么区别”然后下一道题就变成了“请你用这两种方法设计一个登录框的测试用例”。前面是知识后面是应用跨不过这个坎的人就是基础没吃透。1.3 为什么这份老题现在还值得研究这里有一个很多求职者容易忽略的点笔试题目虽然每年在变但考察的方式和底层逻辑高度稳定。当年360考察的是Linux命令、TCP协议、进程线程、数组指针今天字节、腾讯、阿里考的还是这些东西无非是换了层皮。你把2015年这套题的每个考点吃透了再去做现在的新题会发现大部分题目你都能看穿它的本质。还有一种情况是有的公司会直接把往年题拿来改改再用甚至个别中小厂连改都不改。我见过不止一个朋友面试时碰到原题结果因为当年没认真研究白白丢掉送分题。所以别再纠结题目老不老直接把这套当“题库母本”来啃性价比最高。2. 高频考点拆解与答题要点2.1 软件测试基础理论不是背概念是会用试卷第一部分的选择题和简答题基本都会涉及测试的基本概念。别小看这些送分题失分的人一大把。常考的点包括黑盒测试和白盒测试的区别、测试用例的八大要素、软件测试的生命周期、V模型和W模型的差异、回归测试和冒烟测试的使用场景。有一道反复出现的经典题什么是软件缺陷很多人张口就说“程序出错”这在测试工程师眼里完全不合格。软件缺陷的正确理解是软件未实现需求文档中规定的功能或者实现了但表现不符合预期或者出现了需求文档中未提及但用户难以接受的问题都算缺陷。换句话说缺陷不是“代码写错了”这么简单它跟需求、跟用户体验都挂钩。答题的时候记住一个原则概念题不要只写定义最好补一句“在实际测试中的应用场景”。比如问你“什么是等价类划分”你不但要写清楚定义还可以补一句“比如测试一个用户名输入框有效等价类是长度6到20位的字符无效等价类是空值、超长、特殊字符我在实际用例设计中会优先覆盖这些边界。”这一句话就能让阅卷人看出你真的做过测试而不是临时背的书。2.2 操作系统和Linux命令安全测试的隐形门槛操作系统相关的题目在360这套卷子里的比重明显高于一般互联网公司原因其实很简单——安全产品测试离不开对系统底层的理解。常考的知识点包括进程和线程的区别、死锁产生的四个必要条件、内存管理的基本概念、虚拟内存和物理内存的关系。进程和线程这道题几乎是必考的你要能第一时间答出来进程是操作系统资源分配的基本单位线程是CPU调度的基本单位同一个进程下的多个线程共享进程的地址空间和资源而不同进程之间的地址空间是相互隔离的。面试官喜欢追问“多线程有什么好处”你要能接上“可以减少并发时的系统开销但需要注意线程安全问题”。Linux命令这块当年纸质考试没办法实机操作所以更多是考记忆和理解。常见的有ps查看进程状态配合aux参数查看所有进程的详细信息grep文本搜索过滤常配合管道符使用例如ps aux | grep 360find查找文件按名字、权限、时间等条件过滤chmod修改文件权限chmod 755是常见的设置方式netstat查看网络端口和连接状态排查服务是否正常监听top实时查看系统资源占用和进程状态备考提示别只是背命令要自己搭个Linux虚拟机实际敲一遍搞清楚每个命令的输出格式长什么样。因为笔试虽然只考选择和简答但到了面试环节很多面试官会现场让你手写命令或者直接看你在终端里的操作熟练度这个坑我见得太多了。2.3 网络协议三次握手、状态码、GET和POST的区别计网是软件测试笔试的硬骨头360这套卷子也一样。常考的知识点非常集中TCP三次握手和四次挥手的过程、TCP和UDP的区别、HTTP状态码的含义、GET和POST的区别、DNS解析过程。以TCP三次握手为例你不但要能把过程画出来还要能用通俗的话解释第一次是客户端发SYN表示“我要建立连接”第二次是服务端回SYNACK表示“我收到你的请求了也准备好建立连接”第三次是客户端再回ACK表示“我也收到你的确认了连接建立成功”。为什么需要第三次因为如果只有两次握手服务器无法确认客户端是否真的收到了自己的同步信号可能造成资源浪费。HTTP状态码在单选题里面基本会覆盖到你至少要记住200请求成功301永久重定向302临时重定向403服务器拒绝请求权限不足404请求的资源不存在500服务器内部错误503服务器暂时不可用GET和POST的区别也是一道高频题。最准确的理解从语义出发GET是获取资源参数放在URL后面有长度限制浏览器会缓存不安全POST是提交数据参数放在请求体中理论上没有长度限制不会被浏览器主动缓存。但在实际项目中很多开发者把GET当POST用测试人员看到这种行为需要提bug吗?答案是如果接口设计文档明确规定用POST那开发用GET就是缺陷不能因为“功能能跑”就忽略协议层面的问题。2.4 MySQL和SQL测试必备的定位工具数据库的题目在测试笔试中几乎不会缺席360这套题也不例外。考察方式不是让你背 SQL 语法而是给你两张表让你写查询语句或者让你改正一段写错的SQL。举个例子假设有两张表学生表studentid, name, age, class_id和班级表classid, class_name。常见题目是“查询每个班级的学生人数并按人数降序排列”正确答案是SELECT c.class_name, COUNT(s.id) AS student_count FROM class c LEFT JOIN student s ON c.id s.class_id GROUP BY c.id, c.class_name ORDER BY student_count DESC;注意几个细节用LEFT JOIN而不是JOIN因为如果某个班级没有学生内连接会把该班级过滤掉不符合“每个班级”的要求GROUP BY 的字段除了聚合函数里的字段其他需要包含所有非聚合查询列否则在严格模式下会报错排序用ORDER BY降序是DESC这个常被粗心写错另外索引和事务也是常考点。索引的作用是加速查询但会增加写入负担所以不是越多越好事务的ACID四个特性——原子性、一致性、隔离性、持久性——需要能解释清楚尤其是隔离性相关的问题比如脏读、不可重复读、幻读这些名词在简答题里出现过很多次。为什么测试要考数据库因为bug定位、数据校验、接口测试都离不开数据库。你测一个注册功能填完表单点提交怎么判断数据是不是真正写进去了最简单的办法就是登数据库查一下。测试人员写SQL的熟练程度直接影响日常工作效率。2.5 编程基础数组和指针C语言的基本功当年这套题里有个有意思的现象编程部分的题目特别偏爱C语言而且非常喜欢考数组和指针。这跟360的产品基因有关很多底层安全模块和客户端组件都是C或C写的测试人员如果能看懂代码定位问题会快得多。最经典的一道辨析题是数组名和指针有什么区别很多人张口就说“数组名就是指向首元素的指针”严格来说是错的。数组名在大多数表达式中会退化为指向首元素的指针但在两个场景下不会一是sizeof(数组名)得到的是整个数组占用的字节数而不是指针大小二是对数组名取地址arr时得到的是指向整个数组的指针类型是int ()[N]而不是int。另一个常考的是字符串和指针的关系char str1[] hello; char *str2 hello;这两者有什么区别str1是字符数组内容保存在栈上可以被修改str2是指针指向字符串常量区内容不可被修改如果你尝试执行str2[0]H程序会崩溃或产生未定义行为。测试人员在排查崩溃类bug时这类内存问题非常常见。如果卷子上出现了手写编程题一般是比较简单的算法比如反转字符串、求最大公约数、判断回文数等。作答时注意三点先写注释说明思路判空和边界条件不能漏变量命名要清晰。哪怕代码不能运行只要逻辑清晰、边界处理完整阅卷人也会给大部分分值。2.6 安全测试基础360的特色加分项虽然前面说这份卷子不狂考安全但作为安全厂商安全测试的基础概念依然是拉开差距的地方。至少三个名词你必须能解释清楚XSS跨站脚本攻击、SQL注入、CSRF跨站请求伪造。不需要你写攻击代码但要能说出攻击原理、危害和基本的防护思路。XSS攻击者在网页中注入恶意脚本当其他用户访问该页面时脚本执行从而窃取cookie或篡改页面内容。防护思路是输入过滤和输出转义。SQL注入攻击者把恶意SQL代码拼接到输入参数中使服务器执行非预期的数据库操作。防护思路是使用参数化查询或预编译语句不直接拼接SQL。CSRF攻击者诱导已登录用户点击恶意链接在用户不知情的情况下以用户身份发起请求。防护思路是增加CSRF Token验证和校验Referer字段。答题的时候如果能结合360产品的场景来描述会更好。比如“如果安全卫士的漏洞扫描功能检测到一个网页存在XSS漏洞你会怎么设计测试用例”这时候你回答的框架就直接反映了你的安全测试素养。我的建议是学安全测试先不需要看多深的攻击技巧先把这三类基础漏洞的原理和测试方法吃透笔试和大部分面试都够了。3. 经典题型与答题思路现场拆解3.1 用例设计题拿分的关键在结构和边界360这套笔试卷子里最拉分的题目永远是测试用例设计题。常见给法有两种一种给你一个具体功能比如“请设计登录功能的测试用例”另一种给你一个通用对象比如“请设计一款电梯的测试用例”。应对这类题关键是建立结构化的答题框架。以登录功能为例很多人的第一反应是列一堆“账号正确密码正确能登录”“账号错误提示错误”这类用例然后就没有然后了。这样答题拿不到高分因为内容太单薄没有体现测试的系统性。我的建议是按以下维度展开功能测试正常登录成功用户名错误/密码错误/两者都错误时给出对应提示空用户名、空密码的校验密码大小写是否敏感回车键能否提交输错密码多次后被锁定的规则。界面测试页面布局是否正常、错误提示文案是否清晰、密码框是否掩码显示、字体和颜色在主流分辨率下是否正常。性能测试大量用户同时登录的并发情况弱网环境下登录的响应时间连续快速点击提交按钮是否会造成重复请求。安全测试密码传输是否加密输入框是否防SQL注入和XSS攻击登录失败日志是否记录验证码是否有时效限制和错误次数限制。兼容性测试主流的操作系统Windows、macOS、Linux、浏览器Chrome、Firefox、Edge、移动端不同屏幕尺寸。每个维度下面至少写3-5条具体用例结构清晰、覆盖完整阅卷人一眼就能看出你的测试思路。这里有个容易被忽略的细节一定要突出“边界值”和“异常场景”比如用户名长度刚好20位和21位、密码包含特殊字符、连续错误锁定前一次和后一次的状态这些细节是区分普通考生和高手的分水岭。如果遇到“电梯”“水杯”“椅子”这类开放对象就用同样的框架往上套功能开关门、楼层选择、超载报警、性能满载运行速度、高峰时段调度效率、安全急停按钮、门防夹功能、兼容不同的楼层布局、不同型号的控制系统、易用性按钮标识是否清晰、语音提示是否友好。框架在手任何对象都能拆。3.2 场景题给你一个“新功能”你怎么测除了常规用例设计360这套卷子还喜欢出场景题题目形式一般是“产品经理提了一个需求实现了一个新功能请你规划测试方案。”这种题考的不是具体的某条用例而是你对测试流程的整体把控。举个例子题目可能会说“360安全卫士新增了一个‘一键优化’的功能请设计测试计划。”答题时不要一上来就写用例要先写整体思路需求分析明确功能的目标用户、使用场景、核心流程和异常流程。测试范围功能测试、性能测试、兼容性测试、安全测试、回归测试分别覆盖哪些内容。测试环境需要覆盖哪些操作系统版本比如Win7、Win10、Win11 32位/64位、是否需要虚拟机、是否需要不同配置的测试机。测试数据和工具准备哪些样本文件、使用什么工具做性能监控和抓包分析。风险点和优先级哪些模块改动大、风险高需要优先测试和增加测试深度。用例设计再按第3.1节的结构层层展开。这个答题逻辑适用于任何场景题。你要让阅卷人看到你脑子里装着一套完整的测试流程而不是只会零散地写几条用例。3.3 缺陷管理题会写bug也是一种核心技能简答题部分还经常出现缺陷管理相关的内容。常考的包括bug的生命周期是什么、严重程度和优先级怎么区分、如何撰写一份高质量的bug报告。bug的生命周期一般是新建New→ 已指派Assigned→ 已修复Fixed→ 已验证Verified→ 已关闭Closed如果验证不通过则重新打开Reopen。有些团队会多出“延迟修复”“重复提交”“无法复现”“设计如此”等状态需要根据实际情况流转。严重程度和优先级的区别是高频考点。严重程度Severity指缺陷对系统的影响程度优先级Priority指缺陷需要被修复的紧迫程度。这两者不一定是正相关的一个严重程度很低但影响用户主流程的界面问题优先级可能很高一个严重程度很高但发生在极其冷门场景中的问题优先级可能很低。测试人员提交bug时要把这两个字段准确区分不能混淆。至于bug报告怎么写得让人看得懂这里分享一个我常用的模板标题要简洁明了包含模块和问题现象例如“登录模块使用正确账号密码登录时偶现页面无响应”环境信息要注明操作系统、浏览器、版本号复现步骤要按操作顺序写清楚每一步之间用句号隔开不要跳步预期结果和实际结果要分开写这是很多人最容易漏掉的部分附件尽量附上截图、录屏、日志证据越全开发处理效率越高。3.4 逻辑与智力题思路比答案更值钱这类题在笔试中经常以选择题或简答题出现数量不多但很容易卡住人。常见的题型有数字推理、图形推理、逻辑判断也有部分数学题比如概率、排列组合、天平称重等。应对这类题我的经验是不要在一道题上死磕超过5分钟。如果5分钟内没有思路直接标记跳过等整张卷子做完再回来慢慢想。因为逻辑题的分数占比通常不高为了一道题牺牲后面的大题非常不划算。如果简答题中出现推理题比如“1000瓶药水中有一瓶有毒用小白鼠测试最少需要多少只小白鼠能在24小时内找出毒药”答案是用二进制编码因为1000小于2的10次方1024所以最少需要10只。注意答题时一定要把推理过程写清楚即使答案不完全正确过程也会有分。4. 易错点汇总与答题避坑指南这些年我接触了不少参加测试笔试的同学也帮朋友改过不少模拟卷发现有些错误出现的频率非常高。整理成一张速查表你们对照着自查。易错点错误表现正确做法等价类只写有效值登录用例只测正确账号密码不测空值、超长、非法字符有效等价类和无效等价类都要覆盖无效等价类才是找bug的关键边界值遗漏只测长度20位的正常值不测19位、21位、0位边界值的上下边界和临界值都要设计用例SQL语句习惯性错误忘记GROUP BY的非聚合字段忽略LEFT JOIN的使用场景每做一道题先确认表间关系再写JOIN类型最后检查分组和排序只背命令不练操作ps、grep选项记混不知道输出格式搭个Linux环境熟练敲一遍重点看输出信息中各列的含义编程题不写注释、不判空函数没有空指针判断数组越界没有处理先写思路注释再写边界判断最后实现主体逻辑用例设计没结构想到一条写一条混乱无章按功能、界面、性能、安全、兼容性维度分层组织时间分配失误选择题耗时过长设计题草草几行先做大分值的用例设计题再回头补基础题log和bug描述不清复现步骤模糊预期实际混在一起无截图日志套用模板环境信息、步骤、预期、实际、附件必须齐全再补一句经验之谈笔试答题的时候凡是简答题和设计题尽量分条分段来写不要用大段文字糊在一起。阅卷人一天要看几十份卷子眼睛也累结构清晰的答案本来就占优势。你写的每条用例之间留出空隙重点词加粗或者用括号标注这种小细节都能帮你多赚一点印象分。5. 备考冲刺建议与拓展思路5.1 三周复习计划如果你现在离笔试还有三周到一个月的时间可以按照下面这个节奏来安排。第一周主攻基础理论把测试基础、操作系统、网络协议、数据库四块内容过一遍重点做选择题和简答题。每天抽出一小时做用例设计练习不需要写完整用例只要在纸上列出用例设计的框架和边界点就行。第二周主攻刷题和编程把Linux命令实际操作一遍SQL题目每天做5道以上编程题按照数组、指针、字符串、基础算法的顺序刷。这个阶段要刻意练习“手写代码”不要依赖IDE的自动补全因为笔试现场是纯手写。第三周主攻模拟考和查漏补缺找两套完整的测试笔试题按照正式考试的时间限制做一遍然后对照答案查找薄弱环节。错题要整理到错题本重点看错因是概念不清、逻辑失误还是时间不够针对性地补强。5.2 日常积累比临考突击更重要测试这个岗位有一个特点平时怎么工作笔试大概率就怎么答题。日常工作中如果养成了写用例前先列框架的习惯笔试的用例设计题基本不用复习。如果平时定位bug只是直接丢给开发说“这里有bug”笔试遇到缺陷管理题就会露怯。所以我的建议是不要把备考当成一个短期冲刺项目而是当成日常工作的复盘和提炼。你每写一条用例就想想它属于功能还是性能还是安全维度每提交一个bug就按模板检查信息是否完整。时间久了这些东西会内化成你的一种本能反应笔试自然就稳了。5.3 拿到这套题之后还能延伸学什么把2015年这套题吃透之后我建议你再往前走一步把安全测试的核心知识补起来。360毕竟是安全厂商如果后续面试进了安全测试相关的团队光会功能测试是不够的。最低限度要掌握OWASP Top 10中提到的web安全风险尤其是SQL注入、XSS、CSRF、文件上传漏洞、越权访问这几种常见的。还有一个方向是自动化测试。2015年的时候很多团队还在手工测试为主但现在的测试岗位在笔试或面试中多少会问一点自动化知识比如Selenium的原理、接口测试工具Postman的用法、持续集成的基本概念。不一定要求你精通但至少不能一问三不知。我在实际备考和带新人的过程中最大的体会是笔试题目本身并不是最大的拦路虎最大的门槛在于“用测试的思维方式去思考问题”。很多同学一道题不会做第一反应是“我没复习到”但真正的短板是基础概念没串起来知识之间是断层的。你把计算机基础和测试方法论打通了再去看任何一家公司的笔试题都会发现题目只是同一个知识体系的不同呈现方式。准备360这套题就像给自己的技术底子做一次全面体检——老题新做反而能帮你把以前模糊的知识点查出来一次补牢。
返回列表