作为一个参加过招商银行信用卡中心2018春招IT笔试(测试方向第一批)的人,我来聊聊那场笔试。说实话,银行系的IT笔试和互联网大厂的风格差别挺大,它不会像LeetCode那样只考算法,也不会像某些外包公司那样随便出几道概念题应付了事。招行信用卡中心那套卷子,考察范围非常广:行测逻辑、计算机基础、测试理论、数据库、Linux、编程题、金融场景设计题全都塞进来了。我当时考完最大的感受是:这哪里是招测试工程师,分明是在招一个“懂开发的测试 + 懂业务的测试 + 懂逻辑的测试”多面手。
这篇文章我不想只做回忆版流水账,而是把这套笔试的考点、题型、背后的考察逻辑、以及我后来复盘时总结的备考思路全部拆开来讲。无论你是准备银行系IT岗位,还是准备测试方向的校招笔试,这篇文章都能给你一个比较完整的参考框架。尤其是对于想进金融行业做测试的同学,理解这套笔试的出题思路,比你盲目刷十套LeetCode更有价值。
1. 笔试整体情况与备考背景分析
1.1 试卷结构、时长与淘汰逻辑
先交代一下大背景。2018年春招,招商银行信用卡中心在上海、武汉等地都有IT岗位的招聘,测试方向单独成卷。我参加的是第一批,地点是线上笔试,用的是银行系统常见的在线笔试平台,全程摄像头监控,不能切屏。整场笔试的时间是90分钟,题量大约在60到70道之间,包含单选、多选、判断、简答和一道编程题。
从淘汰逻辑上看,银行IT笔试和互联网不太一样。互联网公司往往把算法题当作硬门槛,答不出来基本没戏;但招行信用卡中心这种银行系单位,更看重的是“综合素质达标”。也就是说,行测逻辑题、计算机基础题、测试理论题、金融场景题,每一项都要有基本的分,不能有明显短板。我当时认识几个一起笔试的同学,有人算法很强、但金融场景题完全不会写,结果也没进面试。反过来,有人计算机基础一般、但是测试理论知识扎实,反而拿到了面试机会。这说明银行招测试,不只是要一个写代码的工具人,更想要一个能理解业务、能和业务方顺畅沟通的人。
另外提醒一点:这种银行系在线笔试,答题时间非常紧张,尤其是前面的行测逻辑题,平均每题只有40到50秒。如果一道题卡了超过两分钟,建议直接标记跳过,先保证后面能拿分的题目有时间做。我当时就是在前面的图形推理题上浪费了太多时间,导致后面Linux题目时间不够,只能凭感觉蒙。这个教训很深刻,后面细说。
1.2 测试方向与开发方向的差异
同一个春招里,招行信用卡中心也招开发工程师。从笔试题目来看,测试方向和开发方向有明显的差异:
开发方向更侧重于算法、数据结构、系统设计,编程题的分值占比更高。
测试方向更侧重于测试理论、测试用例设计、数据库操作、Linux命令、日志分析,编程题只占一小部分,难度也低很多。
测试方向会专门出“根据某个业务场景设计测试用例”的大题,而开发方向基本不会出这类题目。
如果你是奔着测试岗去的,千万不要花大量时间刷剑指Offer和LeetCode Hard题,性价比很低。你应该把精力放在弄清楚什么是等价类划分、边界值分析、场景法、判定表,以及如何针对一个金融支付场景设计完整用例。这些才是笔试和面试真正的得分点。
还有一点要知道:银行信用卡中心的测试,并不是只做“点点点”的功能测试。从笔试题目就能看出,他们对接口测试、自动化测试、性能测试、安全测试都有涉猎。笔试里虽然每一块考得不算深,但覆盖面非常广。这背后的信息是:他们希望测试工程师具备较强的学习能力和知识迁移能力,能够根据项目需要快速掌握新工具、新框架。所以你在准备笔试时,不要只盯着一本《软件测试的艺术》,还需要对自动化、接口、性能、安全的基础概念有一个通识性的了解。
2. 笔试第一关:综合素质与逻辑题
2.1 行测题、语言理解与图形推理
招行信用卡中心的笔试,第一部分通常是综合素质题,说白了就是公务员考试里的行测题型。这类题和计算机没有任何关系,但却是银行系笔试中淘汰率挺高的一个模块。内容包括:言语理解与表达、逻辑推理、数量关系、资料分析、图形推理。
言语理解与表达的题目,和我们高中语文的阅读理解有点像。给你一段文字,然后问你“这段文字的主旨是什么?”“作者最可能同意以下哪个观点?”“填入横线处最恰当的是?”等等。这类题看起来不难,但陷阱很多。选项往往有两个非常接近,需要你仔细辨析。我的经验是,碰到这类题,不要过度解读选项的字面意思,先找题干里反复出现的关键词,再判断作者的情感倾向,实在拿不准就选那个包含关键词最多的选项,正确率会高一些。
图形推理是很多人最头疼的,也是最容易卡壳的模块。给你一组图形,让你找规律,判断下一个图形是什么。常见的规律有:图形旋转、对称性、笔画数、元素数量变化、组合叠加等。坦白说,这类题短时间内很难通过刷题大幅提升,因为每个人的空间感知能力不同。我的建议是:图形推理题直接放到最后做,不要在最开始就硬磕。如果你能在30秒内看出规律,就顺手选了;如果看不出,直接标记跳题,等把后面的行测题、技术题做完有时间再回来蒙。千万别在图形推理上死磕,否则你会丢掉后面更多的分。
数量关系题,通常是一些简单的数学应用题,比如工程问题、行程问题、排列组合、概率计算。这部分难度介于初中和高中之间,但你要学会“快速列式”。印象比较深的一道题是:甲乙两人合作完成一项工程,甲单独做需要8天,乙单独做需要12天,两人合作3天后,甲离开,剩下的由乙单独完成,问乙还需要做几天?这种题其实就是把工程总量设为1,算出甲的效率1/8、乙的效率1/12,合作3天做了3×(1/8+1/12)=5/8,剩下3/8,乙还需要(3/8)/(1/12)=4.5天。一定要把“不修边幅”的计算熟练度提上来,不要在这种送分题上耗太久。
2.2 资料分析与图表解读
资料分析题通常会给一段文字描述加一个表格,或者直接给一个柱状图/折线图,然后让你计算增长率、占比、平均值等。这类题本身不难,但非常考验计算速度和精度。
我记得有一道题是关于某银行各季度信用卡发卡量的图表,问第三季度环比增长了多少个百分点。这种题有一个坑:你要分清楚“环比”和“同比”的区别。环比是和上一个季度比,同比是和去年同一季度比。如果看错概念,答案就完全不对。另外,资料分析题的数据往往很大,选项之间的差距可能很小,你不要上来就硬算。先看选项之间的差距大不大,如果差距大,可以四舍五入估算;如果差距小,再精算。
银行系笔试的资料分析题,通常不会像公务员考试那样出四篇大题,而是以一到两篇的形式出现,每题只有一分左右,所以也不要花太多时间。我个人的策略是:先看问题,再回表格里找数据,不要先把整个表格的数据都读一遍,那样既浪费时间又记不住。银行系的综合素质题,核心目的是考察你的“职业适配度”,而不是你真的要变成行测高手。你能在有限时间内拿到80%左右的正确率,就已经很能说明你的逻辑和基本素质了。
3. 笔试第二关:计算机基础与编程能力
3.1 操作系统与网络:高频考点与复习策略
计算机基础这块,在测试方向的笔试题中占比大概在20%到30%之间。考察的知识点比较常规,但范围很宽。操作系统、计算机网络、数据结构、数据库、Linux都有涉及。
操作系统方面,考得最多的考点是:进程与线程的区别、进程间通信方式(管道、消息队列、共享内存、信号量、socket)、死锁的四个必要条件(互斥、占有并等待、不可剥夺、循环等待)、虚拟内存与分页、常见调度算法(先来先服务、短作业优先、时间片轮转)。选择题出得比较多,比如:“以下哪个不是进程间通信的方式?”然后给你四个选项,里面有一个是“递归调用”。这种题就是送分题,你把基本概念背清楚就行。
网络方面,考察集中在:OSI七层模型与TCP/IP四层模型、TCP与UDP的区别、TCP三次握手与四次挥手的过程、HTTP与HTTPS的区别、常见的HTTP状态码(200、301、302、403、404、500、502)、GET和POST的区别。这里我要特别提醒:一定要搞清楚TCP四次挥手中TIME_WAIT状态是主动断开方进入的,以及为什么要进入TIME_WAIT状态(为了保证最后一个ACK能到达对端,同时让旧连接的数据包在网络中消失)。这个知识点在笔试选择题里出现频率很高,面试时也经常被追问。
HTTP状态码这块,有几个容易混淆的,需要单独记忆:
- 301是永久重定向,302是临时重定向。
- 403是服务器拒绝请求,没有权限。
- 404是请求的资源不存在。
- 500是服务器内部错误。
- 502是网关错误,通常意味着上游服务器返回了无效响应。
还有GET和POST的区别,不只是“GET参数在URL里,POST参数在Body里”这么简单。面试和笔试里更关注的是:GET请求是幂等的,POST请求不是;GET请求会被浏览器主动缓存,POST不会;GET请求的参数长度受URL限制,POST则没有这个限制。这些区别在测试用例设计里也很重要,尤其是做接口测试时,你需要判断某个接口用什么HTTP方法更合适。
3.2 数据结构、算法与手写代码
测试方向的编程题,难度比开发方向低不少,但也不是完全糊弄。我记得当时的编程题分值大约在10到15分,题目类型比较常规,比如字符串处理、数组操作、简单排序、递归求阶乘等。不需要你写多么高级的算法,但你要保证代码能够正确运行、边界条件考虑全面。
数据结构方面,考察较多的是:栈和队列的特性(先进后出 vs 先进先出)、链表的插入和删除操作、二叉树的前序/中序/后序遍历、哈希表的原理和冲突解决方式(开放定址法、链地址法)。这些概念不需要你能手写实现,但选择题里会考你一些基本性质。
举个例子,有一道题是:一个栈的入栈序列是1、2、3、4、5,那么出栈序列不可能是以下哪个?这种题很经典,你只需要记住栈是先进后出的,然后逐个验证选项即可。
我建议你在笔试前把以下代码手写一遍,确保熟练:
- 判断一个字符串是不是回文串。
- 实现一个函数,统计一个整数二进制表示中1的个数。
- 冒泡排序或快速排序。
- 输入一个数组,返回数组中第二大的数。
编程题不一定要求你用指定的语言,我当时可以选Java或者C++,Python好像也可以。建议你选自己最熟练的语言,不要为了炫技选一个不熟悉的。代码写完以后,哪怕只是伪代码,也要把思路写清楚。因为笔试的编程题通常不是OJ自动判题,而是人工评阅,你写了完整思路,评卷人或多或少会给点分。我记得当时编程题我用了Java写了一个字符串反转的题目,还顺带写了注释说明时间复杂度和空间复杂度,后来面试时面试官提到他看到了我的注释,印象不错。这种“顺手写注释”的习惯,在笔试和日常工作中都是加分项。
3.3 数据库SQL:测试工程师的必选项
数据库在测试方向的笔试中,地位非常重要。因为测试工程师在日常工作中,经常需要查询数据来验证测试结果、构造测试数据、排查线上问题。招行信用卡中心的笔试,SQL题基本必出。
考察形式通常有两种:一种是选择题,给一段SQL,问执行结果是什么;另一种是手写SQL题,比如“查询用户表中每个城市的用户数量,按数量降序排列”。
这里我列几个高频考点,大家考前一定要过一遍:
SELECT、INSERT、UPDATE、DELETE的基本语法。
WHERE和HAVING的区别:WHERE用于分组前的行过滤,HAVING用于分组后的组过滤。
GROUP BY和聚合函数(COUNT、SUM、AVG、MAX、MIN)的组合使用。
ORDER BY默认升序,DESC表示降序。
JOIN的几种类型:INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN。
子查询:WHERE子句中使用IN、EXISTS等。
LIMIT分页:如LIMIT 0, 10表示从第1行开始取10行。
特别容易错的是LEFT JOIN的理解。LEFT JOIN以左表为基准,左表中的所有行都会出现在结果集中,如果右表没有匹配的行,则用NULL填充。笔试里经常会出这种场景:“表A有5条记录,表B有3条记录,执行SELECT * FROM A LEFT JOIN B ON A.id = B.id,结果集最多多少条?”答案是:最多15条(5×3),如果A和B的id没有交集,那就是5条记录,右表字段全为NULL。这类题要先理解JOIN的底层逻辑,而不是死记硬背。
还有一个高频考点是索引。什么是聚簇索引和非聚簇索引?什么时候索引会失效?常见的索引失效场景包括:对索引列使用函数、隐式类型转换、LIKE以%开头、OR连接的条件中有一个非索引列、使用NOT IN或!=等。这些考点不仅在笔试里会出现,面试时也会被问到,而且日常做性能测试、分析慢SQL时都非常有用,一定要理解到位。
4. 笔试第三关:测试专业知识
4.1 测试理论与用例设计:核心中的核心
终于讲到测试专业知识的模块了。这一部分是整个测试方向笔试卷里分值最高、也最能拉开差距的模块。考察内容主要分为两类:测试基础理论的选择题/判断题,以及测试用例设计的大题。
测试理论的基础考点包括:软件测试的生命周期(需求分析→测试计划→测试设计→测试执行→测试评估)、测试的分类(单元测试、集成测试、系统测试、验收测试)、黑盒测试与白盒测试的区别、静态测试与动态测试的区别、回归测试的概念、冒烟测试与健全测试的区别,以及缺陷的生命周期(New→Open→Fix→Verify→Closed,可能是Reopen等)。
这里我特别想提醒一个容易混淆的知识点:冒烟测试(Smoke Testing)和健全测试(Sanity Testing)的区别。笔试选择题里经常出现:
- 冒烟测试:在每次构建(Build)完成后,对新版本的主要功能进行快速验证,目的是确认这个版本的核心功能是否可用,如果冒烟测试不通过,说明版本不稳定,没必要进行后续的详细测试。
- 健全测试:在收到一个新版本时,先对本次改动涉及的功能做一次快速验证,确认缺陷已经被修复且没有引入新的严重问题,然后再决定是否进行完整的回归测试。
简单来说:冒烟测试是“这个版本能不能好好开始测”,健全测试是“这个改动有没有把事儿搞砸”。两者的关注点不同,不要混淆。
黑盒测试和白盒测试的区别也是必考的。黑盒测试不关心内部实现,只关注输入和输出;白盒测试需要理解内部逻辑,设计路径覆盖来验证代码逻辑。测试方向的黑盒测试用例设计方法包括:等价类划分、边界值分析、因果图法、判定表驱动法、正交实验法、场景法、错误推测法。其中等价类划分和边界值分析是重中之重,笔试和面试必考。
我来举一个经典的例子。假设你测试一个登录框,密码长度限制是6到12位。用等价类划分法,可以把输入域划分为有效等价类(6到12位)和无效等价类(小于6位、大于12位),再从每个等价类中选择有代表性的数据作为测试用例。而边界值分析则是针对边界情况:5位、6位、7位、11位、12位、13位,其中5位和13位是无效边界,6位和12位是有效边界。做题时,边界值分析通常要用“闭区间取两端,开区间取两边”的口诀,也就是上点、内点、离点。离点的选择要看数值类型和开闭性,比如区间是[6,12],那离点就是5和13;如果区间是(6,12),那离点就是6和12。
4.2 自动化、性能、接口、安全测试考点
除了测试基础理论,招行信用卡中心的笔试题还会考察一些进阶内容,主要集中在自动化测试、性能测试、接口测试和安全测试这几个方向。虽然每块考得不算深,但覆盖面很广,有些题目我估计不少科班出身的同学也未必答得上来。
自动化测试的考点包括:什么是UI自动化测试、什么接口自动化测试、两者的优缺点;常见的自动化测试框架有哪些;Selenium的工作原理(WebDriver通过浏览器驱动与浏览器通信);Appium是用于移动端自动化测试的工具,支持iOS和Android平台;Pytest是Python生态中比较主流的测试框架,支持fixture、参数化、断言、插件扩展等特性。笔试题可能会问:“以下哪个工具不是用于自动化测试的?”然后再给你四个选项:Selenium、Appium、JMeter、Jenkins。这里的关键是:JMeter更常用于性能测试,但它也可以用于接口自动化;Jenkins是持续集成工具,不是测试工具本身,而是用来调度测试任务的。如果题目问“自动化测试工具”,那Jenkins严格来说不能算。
性能测试的考点包括:性能测试的类型(负载测试、压力测试、稳定性测试、并发测试、容量测试)、性能指标(响应时间、吞吐量、并发用户数、TPS/QPS、错误率、资源利用率)、常见性能测试工具(JMeter、LoadRunner)。笔试里有一道印象很深的题:一个系统有100个并发用户,平均每个请求响应时间是200ms,那么系统的QPS上限大约是多少?这是一个很基础的计算题:QPS ≈ 并发数 / 平均响应时间 = 100 / 0.2 = 500。这类题的核心是理解QPS与并发数、响应时间之间的关系。另一个常见题是:压力测试和负载测试的区别。负载测试是让系统在预期负载下运行,观察各项指标是否满足要求;压力测试是逐步增加负载,找出系统崩溃的临界点。说白了,负载测试是“看看能不能扛住”,压力测试是“看看扛不住的时候会出什么问题”。
接口测试的考点包括:HTTP协议的基本方法(GET、POST、PUT、DELETE)、接口测试和UI测试的区别、接口测试的验证点(状态码、响应体、响应时间、数据准确性)、常见接口测试工具(Postman、JMeter、SoapUI)。有一道题是:接口测试中,响应状态码200表示什么?很多人会直接选“成功”,但严格来说200表示请求成功,但业务逻辑是否成功还需要看响应体中的业务状态码。比如支付接口,HTTP返回200但响应体里的status可能是“余额不足”。这个区别在做接口测试时特别重要,笔试里也会通过场景题来考察你是否理解HTTP层面和业务层面的区分。
安全测试的考点包括:SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造、越权访问、敏感信息泄露。测试方向的笔试题通常会考:如何判断一个登录接口是否存在SQL注入风险?答案是:在用户名输入框中输入一个单引号,看系统是否会报SQL错误;或者输入' OR '1'='1看能否绕过验证。还有一个常考点是XSS攻击的类型:反射型、存储型、DOM型。存储型XSS最危险,因为恶意脚本会被永久存储在服务器上,每次用户访问页面时都会触发。这些安全测试的知识点,在日常web测试中非常实用,尤其是金融行业,安全合规是重中之重。
4.3 金融场景测试大题
金融场景测试大题,是招行信用卡中心测试方向笔试里最有特色、也最考验综合能力的一道题。这类题通常不会只考某一方面的知识,而是把业务理解、测试理论、场景设计、边界条件分析全部融合在一起。
我记得当时的题目大致是:某银行信用卡APP新增了一个“信用卡还款”功能,用户可以选择绑定储蓄卡自动还款,也可以手动输入储蓄卡卡号进行还款。请针对这个功能设计至少10条测试用例。这类题没有标准答案,但考察点非常明确:
- 功能测试:正常还款流程、输入正确的卡号与金额、还款成功后余额是否正确扣减、还款记录是否正确展示。
- 异常流程测试:输入的卡号不存在、卡号位数不对、金额超过信用卡账单金额、金额为0或负数、网络异常导致还款超时。
- 边界值测试:还款日当天还款、还款日第二天还款(是否会产生违约金)、最小还款金额、最大还款金额。
- 兼容性测试:不同手机型号(iOS、Android)、不同分辨率、不同浏览器。
- 权限与安全测试:非本人储蓄卡能否还款、能否查看他人还款记录、手动输入卡号时是否对卡号做了掩码处理。
- 性能测试:高峰期多人同时还款,系统响应时间是否在可接受范围内。
这里我要强调一个非常重要的答题技巧:设计测试用例时,一定要分层。先写最核心的正常流程用例,再写异常输入用例,然后写边界值和特殊场景,最后写安全、性能、兼容性等非功能测试用例。很多同学答题时东一榔头西一棒子,想到什么写什么,这样即使用例数量够了,也容易被评卷人认为“缺乏系统性”。分层设计不仅能让答案看起来更有条理,也能帮助你建立更完整的测试思维。
另一个技巧是:尽量使用“前置条件、操作步骤、期望结果”三段式结构来描述用例。比如:
- 前置条件:用户已登录信用卡APP,且当前有未出账单。
- 操作步骤:用户进入“还款”页面,输入正确的本行储蓄卡卡号,输入还款金额为账单最低还款金额,点击“确认还款”。
- 期望结果:还款成功,页面提示“还款成功”,储蓄卡余额正确扣减,信用卡账单状态更新为“已还最低”,不影响用户信用记录。
这种写法非常贴合测试工程师日常写用例的习惯。笔试时用这种方式答题,评卷人一眼就看得出你是“内行”,而不是门外汉。我当时用了这种三段式写了十几条用例,后来面试官明确说我的用例设计思路让他印象很深。
5. 笔试到面试的衔接与实用备考建议
5.1 从笔试到面试的常见问题衔接
笔试结束后,如果通过筛选,大约一两周内会收到面试通知。招行信用卡中心的面试,通常有两轮:技术面和HR面。技术面会围绕笔试中的考点展开,尤其会深挖测试专业知识和项目经历。
技术面常见的问题包括:“你设计测试用例的方法有哪些?具体怎么用?”“你用过哪些自动化测试工具?能不能讲讲你写的一个自动化脚本的执行流程?”“如果线上出现了一个偶现的bug,你怎么排查?”“你了解接口测试吗?如果让你测一个支付接口,你会关注哪些点?”“你有没有压力测试的经验?怎么分析性能测试结果?”这些问题的背后,其实都是在考察你的“工程化思维”和“问题解决能力”。
这里我想强调一点:不要为了面试而背标准答案,一定要结合自己的实际经历来讲。哪怕你只是在实习时用过Postman调过几次接口,也可以把你的操作流程、遇到什么问题、怎么解决的、结论是什么,按照“STAR法则”讲出来。面试官真正想听的,不是你知道多少工具,而是你有没有在实际场景中运用这些工具的意识和能力。我在技术面时被问到“登录功能如何做测试用例设计”,我不仅讲了等价类和边界值,还结合信用卡APP里的“忘记密码”流程,讲了验证码有效期、验证码错误次数限制、短信轰炸防护等场景,面试官当时就点头表示了认可。
HR面的问题则更偏向综合素质:为什么选择银行业?为什么选择测试岗位?如何看待加班?职业规划是什么?这些问题没有标准答案,但你需要展现出一个稳定、靠谱、有职业规划的形象。银行系统对稳定性比较看重,所以不要说自己“后续想转开发”或者“想跳槽去互联网”。当然,我也不是让你撒谎,而是建议你回答时体现出对测试岗位本身的热爱和对金融行业的长期兴趣。
5.2 复盘式备考:如何避免踩坑并高效提分
结合我当年的备考经验和踩过的坑,我总结了几条比较实用的备考建议,希望能帮你少走弯路。
第一,行测题一定要控制时间。我当年笔试就是因为图形推理死磕太久,导致后面的Linux和SQL题目时间不够,只能蒙题。后来复盘时算了一笔账:图形推理一共5道题,每道题就算只花30秒,也就2分半钟;但如果一道题卡了5分钟,就直接压缩了后面5道技术题的答题时间。技术题的分值通常比行测题高,这个交换非常不划算。所以我的建议是:拿到卷子后先快速浏览一遍,把题型分布和分值看清楚,然后按照“先易后难”的原则答题。
第二,SQL一定要动手写,不要只看不练。很多同学觉得SQL语法简单,看了几篇教程就觉得自己会了,但一到笔试现场就卡壳。我当年的教训是:笔试中有一道“统计每个城市的用户消费金额并排序”的SQL题,逻辑其实很简单,但我在拼接GROUP BY和ORDER BY时犹豫了很久,浪费了时间。建议你在笔试前找几道经典的SQL题目,用本地的MySQL或者线上的SQL练习平台亲手敲一遍,把GROUP BY、HAVING、JOIN、子查询这些常见组合练熟。
第三,Linux命令是必考项,也是很多人容易忽视的复习盲区。我的笔试里Linux题考了不少,比如:查看当前目录下的所有文件(ls -la)、查看进程(ps -ef)、杀掉一个进程(kill -9 pid)、查看端口占用(netstat -tunlp)、查看磁盘空间(df -h)、查看内存(free -m)、查找文件(find / -name xxx)、查看日志尾部(tail -f /tail -100)。这些都是测试工程师日常工作中非常常用的命令,几乎不需要思考,看到就要会选。如果你对Linux不熟悉,建议在虚拟机里装一个CentOS或者Ubuntu,把常用命令实际敲一遍。特别是查看日志的命令,测试排查问题时会频繁用到。
第四,多了解金融行业的基础知识。招行信用卡中心的笔试和面试,都会涉及一些金融场景,比如信用卡账单日、还款日、最低还款额、分期手续费、风控规则、支付限额等。你不需要成为金融专家,但至少要理解这些基本概念,否则在笔试的场景设计题和面试的业务问题时,你会显得比较被动。我当时就是因为提前了解了一些信用卡基础知识,在笔试设计“信用卡还款”功能的测试用例时,才能想到“最低还款额”“宽限期”“还款日当天18点前到账”这些业务细节。
第五,一定要重视“测试用例设计”这类大题的练习。我在前面详细讲了如何分层设计用例、怎么用三段式写用例,这里再补充一点:做这类题时,不要只关注功能正常流程,一定要加入异常流程和安全边界。很多同学设计的用例全是“输入正确数据→验证成功”,但实际工作中,测试人员最主要的职责恰恰是发现异常场景下的问题。所以你在笔试时,至少要包含20%到30%的异常用例和边界用例,这样才能体现出你是一个“有测试思维”的人。
6. 写在最后的个人经验
说实话,招行信用卡中心2018春招IT笔试(测试方向第一批)的题目难度,放在今天来看并不算高,但它的覆盖面之广、对综合素质的要求之高,在同类银行IT笔试中算是很有代表性的。如果你正在准备类似的银行系测试岗笔试,我建议你不要只盯着技术题刷,也要花时间在行测逻辑、金融业务场景和测试用例设计上。这些内容虽然不一定能让你在技术上“变强”,但一定能让你的笔试成绩在众多候选人中更有竞争力。
我当年笔试时,最担心的反而是自己不是计算机科班出身,对很多基础概念掌握得不够扎实。但后来我发现,银行系测试笔试更看重的是你是否具备“测试思维”和“业务视角”。你能不能在面对一个陌生功能时,快速梳理出核心流程、潜在风险、边界条件和异常场景,这比你会不会写一段复杂算法重要得多。从这个角度看,我把当年那场笔试的题目复盘了一遍,其实收获最大的不是那些具体考点,而是一种“站在测试视角看系统”的思维方式。希望这篇文章也能帮你建立起这种思维方式,至少在笔试时不再发怵。