FEATURED · 精选文章

从奇安信笔试复盘看安全测试岗的核心考点与用例设计

发布时间 / 2026/8/31 15:08:37
来源 / 创域科博编辑部
栏目 / 资讯中心
从奇安信笔试复盘看安全测试岗的核心考点与用例设计 2019年春季校招前后很多同学还在纠结“功能测试是不是没技术含量”的时候奇安信的测试方向笔试已经用一张卷子把这种想法打破了大半。当时我复盘这些试题时最强烈的感受是它不考死记硬背的工具手册而是考你在一个真实安全产品里能不能用测试语言把风险说清楚。虽然这份卷子是2019年的但直到现在它仍然适合三类人看准备投安全公司测试岗的应届生、想从纯功能测试往安全测试方向转的同学以及正在出测试岗笔试题的团队。1. 为什么2019年的试卷现在复盘依然不亏1.1 安全厂商测试岗的底层出题逻辑奇安信的测试方向笔试和普通互联网公司的测试开发岗不太一样。普通公司会更关注“自动化覆盖率”“性能调优”而安全公司的测试题天然带着一层“对抗视角”。它考察的不只是“功能对不对”还包括“别人怎么绕过这个功能”。这种思路放在2019年算前瞻放在今天几乎成了安全测试岗的基本功。我后来回过头看这套试卷的底层出题逻辑可以拆成四条是否有足够扎实的计算机基础能看懂网络请求、数据库操作和操作系统日志是否具备测试用例设计的方法论而不仅仅靠“想到哪写到哪”是否理解安全产品的常见风险点比如路径遍历、越权访问、校验逻辑绕过是否能把模糊需求变成可执行的验证步骤也就是“需求分析”和“沟通能力”。这张卷子看起来是考测试实际上是在筛选“具备研发视角的测试工程师”。1.2 试卷结构和高频能力维度2019年的测试方向试题整体结构大致可以分成四块选择题和填空题、简答题、用例设计题、综合场景题。选择题主要覆盖计算机网络、操作系统、数据库和编程基础简答题里经常出现“白盒测试和黑盒测试的区别”“什么是回归测试”“如何理解测试左移”用例设计题则会给一个具体的功能模块比如登录、文件下载、搜索框、权限管理。我根据当年参加过的同学反馈和面试复盘做了一个能力维度的粗略权重表能力维度典型考点在2019试卷中的大略占比计算机基础TCP/IP、HTTP、SQL、Linux命令25%测试理论测试分类、用例方法、Bug生命周期20%编程与逻辑读代码、简单算法、Python/Java基础20%场景用例设计登录、搜索、文件上传下载、权限验证25%安全基础路径遍历、SQL注入、XSS、输入校验10%从这份权重能看出纯测试理论占分并不多真正拉开差距的是计算机基础、编程逻辑和场景用例设计。现在的测试岗笔试也延续了这种趋势只是把安全用例的占比提高了一些。2. 把“基本功”变成考场上的肌肉记忆2.1 编程基础不直接考代码却处处是代码奇安信2019的试卷里很少要求你写一个完整的冒泡排序但会给你一段代码让你说出输出结果或指出问题。这类题目考的是“读代码”能力因为测试工程师日常做得最多的事就是阅读开发提交的代码判断改动影响了哪些现有功能。当时出现过的类型包括含有全局变量和闭包的Python代码一个简单的Java类继承关系判断字符串截取和拼接的输出结果。举个例子类似这样的Python题def calc(a, b2): if a b: return a b return a - b print(calc(3))大部分人一看a3, b23 2返回5。但如果题目换成calc(1)很多人会下意识填-1正确答案其实是1因为1 2不成立走的是a - b即1 - 2 -1。这种题目本身不难难在考场紧张状态下容易忽略默认参数和分支条件的边界。复盘建议是不要把时间花在背语法上而是把Python的基础语法、list/dict常用操作、异常处理、装饰器这种高频考点过一遍然后专门练习“看代码说结果”。你不需要写得多好但必须一眼看出代码的执行路径。2.2 网络和数据库测试的“上下文”就在里面任何测试场景都跑在网络上数据最终都存在数据库里。2019试卷里网络部分的题目主要围绕HTTP协议和TCP连接展开。我印象比较深的有几类HTTP状态码的含义200、301、302、401、403、404、500、502、503分别代表什么GET和POST的区别以及各自适合的场景Cookie和Session的区别TCP三次握手的基本过程。这些题目看起来像后端开发岗的题但测试工程师必须懂。因为当你定位一个Bug时第一步就是判断问题出在客户端、网络、服务端还是数据库。你连301和302都分不清面对“页面跳转后登录态丢失”这种Bug就只能在界面上干瞪眼。数据库部分的高频考点是SQL语句尤其是多表查询和聚合函数。试卷里可能会给两张表让你写出“查询每个用户的订单总数”这种SQL。我当时见过最基础的一类题是这样SELECT u.user_name, COUNT(o.order_id) FROM user u LEFT JOIN orders o ON u.user_id o.user_id GROUP BY u.user_id;注意这里的关键点在于为什么用LEFT JOIN而不是INNER JOIN。如果一个用户没有订单INNER JOIN会直接把他过滤掉而业务需求往往要保留用户信息。这种细节才是测试工程师需要具备的“需求理解力”在技术上的体现。2.3 考试中的时间分配策略2019年的试卷题量不小我身边有不少同学死在时间分配上。他们在一道SQL题上纠结20分钟后面摆着的大题反而没时间写。我的建议是拿到卷子先用3分钟通读一遍按“会做、能写、不会”打标记。会做的题先拿分能写的题写核心思路不会的题决不空着。因为阅卷时哪怕你只写出了“等价类划分”“边界值分析”这几个字也能拿步骤分。3. 测试用例设计题考察的是“拆解需求”的顺序3.1 从需求到用例的中间步骤试卷里最拉分的部分是用例设计题。很多同学看到“请设计登录功能的测试用例”就开始洋洋洒洒写了几十条但得分并不高原因是缺少“需求分析”这一步。测试用例不是流水账而是对需求的逐层拆解。拿到一个功能模块我建议按这个顺序思考这个功能的用户是谁使用场景是什么前置条件有哪些数据和权限由谁提供合法输入是什么非法输入有哪些系统如何处理异常是否给出合理提示操作顺序是否会影响结果。以登录功能为例正常思路是写“正确账号密码能登录”“错误密码提示失败”。但如果你按上面的逻辑拆就会发现还需要覆盖账号禁用、密码锁定、验证码过期、登录接口被频繁调用、Cookie中登录态的无效或篡改等。3.2 等价类、边界值和决策表怎么落到具体场景理论谁都背得出来关键是怎么用。2019年的题目里我记忆比较深的是“输入框验证”的题要求对“用户名长度6到12位允许字母数字下划线”做用例设计。这时候直接写用例会很散但用等价类和边界值就清晰得多有效等价类6到12位字母、数字、下划线比如test_01;无效等价类长度小于6、大于12、包含特殊字符、包含中文、为空边界值5、6、12、13位这四个值必须覆盖额外场景全下划线、全数字、首字符为下划线这些都要看需求有没有特殊规定。决策表适合用来处理多个条件组合的场景。比如“注册页面用户名合法、密码合法、邮箱验证码正确、短信验证码正确”四个条件每个条件有真和假两种状态组合起来就有16种情况。你不能全部写成用例要会缩减把“邮箱验证码错误但短信验证码正确”“用户名非法但其他都正确”这种有代表性的组合覆盖到才是阅卷人想看到的思路。3.3 一道当年很容易漏掉核心点的安全场景题2019年的试卷里有一道和文件下载相关的题系统提供一个根据文件名下载附件的接口要求设计测试用例。很多同学只写了“文件存在能下载”“文件不存在提示失败”这类功能用例但忽略了一个关键考点——路径遍历。路径遍历指的是攻击者在输入文件名的位置构造../../etc/passwd这种路径试图跳出正常下载目录读取服务器上的其他文件。这也是“输入验证”这个搜索词和奇安信关联度高的原因之一。如果想拿高分应该额外补充这几条用例文件名中包含../时系统应拒绝或过滤文件名中包含编码后的..%2f时系统是否能正确识别并拦截文件名使用绝对路径/etc/shadow时是否被拒绝文件名为空、超长、包含特殊字符时的响应。这类题真正想验证的是你会不会在功能测试之外再多想一层“攻击者会怎么使用这个功能”。这一层思考恰恰是普通功能测试工程师和安全测试工程师的分水岭。4. 从相关搜索词倒推安全测试方向的高频考点4.1 天擎、代码卫士这些词其实暗示了测试重点近期的热搜词里奇安信天擎卸载、代码卫士、路径遍历、麒麟系统、ARM浏览器等关键词密集出现。普通用户搜索这些词是为了解决使用问题但站在测试岗位的角度这些词恰好划出了安全产品测试的重点方向。天擎是终端安全管理类产品涉及安装、升级、策略下发、病毒查杀、卸载验证等多个环节。对于这类产品测试的难点不在于某个按钮能不能点而在于权限控制。比如“卸载必须经过管理员授权的二次验证”“非管理员用户无法执行卸载”这些都属于典型的权限测试用例。我曾经和做终端安全产品的测试负责人聊过他说他们团队最常写的用例不是“功能正确性”而是“对抗性用例”。用户可能会尝试绕过权限、篡改配置、中断升级测试团队就要模拟这些动作保证系统能兜住。4.2 一个容易被忽略的测试场景卸载与权限验证热搜词里“奇安信天擎卸载”“卸载要验证码”“没密码怎么删除奇安信”反复出现从一个侧面说明普通用户对这类安全软件有“装上容易卸载难”的感知。这里我不讨论具体产品怎么卸载这不是测试文章的重点我想说的是这类体验背后藏着一组高频测试场景。测试工程师要验证的是未授权用户执行卸载时是否被阻止并给出明确提示卸载时要求输入授权密码或验证码验证码错误、过期、重复是否都能正确处理卸载过程中取消操作已删除的文件和配置是否能回滚卸载完成后相关进程、服务、注册表项、残留文件是否清理干净。这些用例的设计难点在于“中断”和“半程状态”。你点击了卸载但中途断电、断网、取消系统处于什么状态是继续卸载还是恢复原样普通功能测试往往不关心这种状态流转但在安全软件测试里这是必须覆盖的。4.3 平台兼容性测试从麒麟系统到ARM架构相关搜索里有一条很具体从x64版本的银河麒麟系统下载ARM版本的奇安信浏览器。这条搜索背后是一个典型的信创场景不同操作系统、不同CPU架构之间的软件兼容。在2019年的测试题里平台兼容性未必是重点但在今天的安全测试岗面试里这个问题越来越常见。测试工程师需要理解x64和ARM架构的安装包不能混用下载入口需要根据系统架构自动识别或提示同一套Web前端在国产操作系统下的浏览器兼容性差异不同版本操作系统下的权限模型差异可能影响客户端的行为。这类问题的核心考点不是“你会不会装软件”而是“你能不能设计出覆盖架构差异的用例矩阵”。试卷里如果给一个“系统架构为x64却下载了ARM安装包”的场景正确思路是先判断安装包是否被拒绝再判断是否给出正确提示最后考虑用户能否自行重新下载正确版本。5. 自动化与工具题区分“会用”和“懂原理”5.1 Selenium类题目的常见考点2019年的试卷里自动化测试的题不算多但基本都会涉及Selenium。常见问法是“Selenium中如何定位动态元素”“如何使用显式等待”。很多同学只知道find_element_by_id这几种基础定位方式遇到动态元素的题就懵了。其实考官的意图很明确你有没有在做自动化时真正处理过页面加载、元素延迟、弹窗切换这些问题。动态元素定位的一般思路是优先使用稳定的ID或name属性避免使用xpath中的绝对路径错误示范/html/body/div[3]/div[2]/form/input正确示范//input[nameusername]或//*[contains(class,login-input)]使用显式等待而不是固定sleepfrom selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC element WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.ID, submit-btn)) )这里面的关键点是固定sleep会让脚本变得极不稳定而显式等待能让脚本在元素可交互时才继续执行。笔试时能写出这层差别就比只背API的同学强一块。5.2 接口测试和抓包属于“默认你会”安全公司的测试岗接口测试几乎是默认要求。2019年的试卷里可能会让直接描述“在没有界面时如何验证一个接口的功能和安全性”。我当时复盘发现这道题的得分点是先说用什么工具Postman、JMeter、Burp Suite、curl等再说测什么接口的入参校验、权限校验、返回码、响应时间、敏感信息泄露最后说怎么测正常参数调用、非法参数调用、未登录调用、越权调用、并发调用。如果一个接口允许未登录状态下直接获取用户信息这就是水平越权或未授权访问问题。笔试中能主动写出这条用例说明你真的懂接口测试的本质。5.3 性能测试别忽视基础概念的简答题性能测试部分通常考得比较简单比如“QPS和并发用户数的区别”“如何制定性能测试指标”。很多同学把重点放在自动化上把性能测试基础扔在一边反而丢了分。我建议至少掌握这几个概念并发用户数同一时间段内正在执行操作的虚拟用户数TPS/QPS系统每秒处理事务/请求的数量响应时间从发起请求到收到响应的时间思考时间模拟用户操作间隔瓶颈分析CPU、内存、磁盘IO、网络带宽哪个先到瓶颈。面试官不指望你背下JMeter的所有插件但希望你能说清楚“压测结果中哪些指标需要重点看”。一张压测报告放在面前你会不会看比你会不会压更关键。6. 面试中更看重的能力从用例到风险沟通6.1 自我介绍别只堆项目名笔试过了之后面试环节又是一道坎。奇安信测试岗面试时面试官普遍不喜欢听“我在XX项目里负责功能测试”这种一句话概括。更好的方式是按这个结构讲项目背景这个系统是做什么的用户是谁我的职责负责哪部分测试用了什么方法具体案例我设计过哪些有价值的安全用例发现了什么容易漏掉的Bug结果和改进因为这个用例上线前规避了什么风险。如果你没有安全项目经验可以讲自己如何在某个普通项目中发现了权限校验或输入校验的问题。这比说“熟悉安全测试流程”要有说服力得多。6.2 遇到模糊需求考核的是提问能力面试里经常有这种题“如果产品经理只跟你说‘要做一个文件上传功能’你会怎么做”很多人上来就讲用例其实面试官想看的是你会不会先澄清需求。建议先问清楚文件格式、大小、数量限制是什么上传后存储在哪里是否需要压缩或转存谁有权限上传是否需要登录上传失败后如何提示是否需要支持断点续传是否需要限制上传文件的内容能否执行脚本。问完这几点再开始设计用例面试官通常会明显感觉到你的思路在“层级”上比直接写用例的人高一层。6.3 安全测试岗位面试的加分项针对奇安信这类安全厂商的测试岗面试中如果能自然展示以下几点会更有机会提到“输入验证”“越权访问”“验证码绕过”“路径遍历”时不只是报名字而是能展开说风险场景和测试设计能说出“白盒测试”和“黑盒测试”在安全测试中的配合使用而不是把它们割裂开对国产化环境、主流终端安全产品有一定了解明白不同环境下的兼容性测试边界了解到测试用例不只是证明系统能工作更是证明系统在恶意输入下依然能守住底线。这些点不一定每一条都会问到但它们共同构成了“安全测试思维”。哪怕你只是在一两道题里展现了这种思维面试官也会记下“这个候选人有测试手感”。7. 两周复习计划与我的复盘建议7.1 时间分配优先补短板而不是猛刷题如果离笔试还有两周我不建议每天只刷测试理论题。按我对2019年试卷结构的拆解复习优先级应该是第一周主攻计算机基础和编程读代码。网络协议、数据库SQL、Python基础语法这些占分高提分快。每天固定做20道读代码题重点练分支条件和异常处理。第二周主攻用例设计题和工具题。把登录、搜索、上传、下载、权限这几个高频场景各写一套完整用例再总结一遍Selenium、Postman、JMeter的常用操作和设计思路。同时每天抽30分钟看安全基础内容优先掌握路径遍历、SQL注入、XSS、CSRF这几类经典漏洞的成因和测试方法。7.2 刷题之外要形成自己的“用例模板”很多人刷题后还是会慌因为每个功能都不一样。但如果你形成了一套固定的分析框架拿到任何题都不会没话写。我自己常用的是“五看”框架看输入合法、非法、边界、空值、超长看权限未登录、普通用户、管理员、越权访问看状态成功、失败、超时、重复提交、并发看依赖前置数据缺失、关联模块异常、数据库不可用看安全注入、遍历、绕过、敏感信息泄露。用这套框架去套2019年试卷里的任何场景题基本都能在短时间内写出有逻辑的用例集合。它比背模板更灵活也比临场发挥更稳定。7.3 别把题目当答案要当“考点导向标”复盘这份2019年的试卷我最大的体会是它不是在筛选“知道最多工具的人”而是在筛选“能最快判断风险边界的人”。题目里的每一个场景其实都指向一个日常测试中必须关注的角落——边界值、权限校验、输入过滤、异常处理。如果你只是为了应付一场笔试背题是有效的但如果你真的想进入这个方向我建议你把每道错题变成一个“考点来源”的索引。看到路径遍历就去找Web应用测试中的文件操作用例看到权限验证就去找终端管理和后台系统里最容易被忽略的越权点。这样复盘一份旧卷子你收获的不只是一个分数而是一套在后续工作中能持续复用的测试思维框架。它才是一张试卷真正的价值所在。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻