試開(kāi)發(fā)筆試核心考點(diǎn)與備考策略)
1. 考試全景一場(chǎng)銀行系測(cè)試開(kāi)發(fā)筆試到底考什么1.1 銀行系筆試和互聯(lián)網(wǎng)大廠筆試的核心差異拿到招商銀行信用卡中心2019秋招IT筆試測(cè)試開(kāi)發(fā)方向第三批這套題的時(shí)候我第一反應(yīng)是這跟互聯(lián)網(wǎng)大廠的測(cè)試開(kāi)發(fā)筆試完全是兩個(gè)物種。如果你之前只在??途W(wǎng)上刷過(guò)字節(jié)、阿里、騰訊的測(cè)試開(kāi)發(fā)真題來(lái)做銀行系的卷子會(huì)有一種“是不是拿錯(cuò)題了”的錯(cuò)覺(jué)。先說(shuō)結(jié)論銀行系測(cè)試開(kāi)發(fā)筆試的重心不是“你會(huì)不會(huì)寫(xiě)代碼”而是“你能不能在這個(gè)業(yè)務(wù)體系里把事做對(duì)”?;ヂ?lián)網(wǎng)大廠更看重算法功底和工程能力一道LeetCode Hard級(jí)別的題說(shuō)上就上測(cè)試開(kāi)發(fā)也不例外。但銀行系不一樣它的題目分布明顯偏向基礎(chǔ)扎實(shí)度、數(shù)據(jù)庫(kù)掌握程度和測(cè)試思維成熟度。尤其招銀信用卡中心這種帶著金融科技屬性的機(jī)構(gòu)對(duì)安全性和穩(wěn)定性的理解會(huì)滲透在考題里。這一點(diǎn)從崗位本身的屬性就能倒推出來(lái)。信用卡中心的業(yè)務(wù)系統(tǒng)核心鏈路是賬單、還款、積分、風(fēng)控、營(yíng)銷(xiāo)這些系統(tǒng)不允許出任何差錯(cuò)。一個(gè)還款接口的冪等性問(wèn)題放在互聯(lián)網(wǎng)業(yè)務(wù)里可能只是用戶(hù)體驗(yàn)受損放在銀行里就是資金對(duì)不上賬的P0事故。所以筆試考察的絕不只限于“這道題你會(huì)不會(huì)做”而是“你有沒(méi)有那個(gè)意識(shí)把一個(gè)功能放在真實(shí)業(yè)務(wù)場(chǎng)景里想清楚”。第三批次的考卷整體難度在銀行系里屬于中等偏上比四大行總行的測(cè)試崗要難一些比互聯(lián)網(wǎng)大廠同崗位要簡(jiǎn)單不少。但難點(diǎn)不在于題目本身而在于考察范圍特別雜。它不像大廠那樣集中火力攻算法而是全景式地掃一遍計(jì)算機(jī)基礎(chǔ)、數(shù)據(jù)庫(kù)、測(cè)試?yán)碚?、自?dòng)化基礎(chǔ)甚至還有一小部分金融業(yè)務(wù)常識(shí)。這意味著你用準(zhǔn)備大廠的方式去準(zhǔn)備它會(huì)浪費(fèi)大量時(shí)間在性?xún)r(jià)比極低的地方。1.2 考試科目分布與時(shí)間配比從考試結(jié)構(gòu)上看這套題基本遵循了銀行IT筆試的經(jīng)典配方科目板塊大致占比核心考察內(nèi)容計(jì)算機(jī)基礎(chǔ)知識(shí)25% - 30%數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)20% - 25%SQL編寫(xiě)、事務(wù)、索引、鎖測(cè)試基礎(chǔ)理論20% - 25%測(cè)試用例設(shè)計(jì)、軟件生命周期、缺陷管理編程題15% - 20%邏輯題、簡(jiǎn)單算法、字符串處理業(yè)務(wù)與場(chǎng)景題10% - 15%金融業(yè)務(wù)理解、測(cè)試場(chǎng)景設(shè)計(jì)考試時(shí)間大概是兩個(gè)小時(shí)左右總題量在60到80道之間以選擇題、判斷題、填空題為主加一兩道編程題或手寫(xiě)SQL。選擇題里還有一部分是多選題這是特別坑的地方因?yàn)槎噙x少選都不得分很多人在這一步丟分特別慘。時(shí)間分配是一個(gè)極易翻車(chē)的點(diǎn)。我見(jiàn)過(guò)不少人前面選擇題做得太仔細(xì)結(jié)果最后編程題只剩十分鐘。實(shí)際上這套題的策略應(yīng)該是選擇題平均每題控制在1到1.5分鐘內(nèi)拿不準(zhǔn)的先標(biāo)記在保證正確率的基礎(chǔ)上追求速度把完整的大段時(shí)間留給編程題和手寫(xiě)SQL。這里要特別提醒一個(gè)細(xì)節(jié)銀行系筆試的編程題不太喜歡考那種需要復(fù)雜算法優(yōu)化的題更多是考邏輯是否清晰、邊界情況是否考慮完整。所以刷題重心不該放在難題上而應(yīng)該放在“把簡(jiǎn)單題寫(xiě)得滴水不漏”這件事上。1.3 技術(shù)棧畫(huà)像為什么Java是銀行系的主角整個(gè)IT筆試的技術(shù)棧重心非常明顯地偏向Java體系。這不是巧合而是銀行系系統(tǒng)的歷史包袱和生態(tài)選擇共同決定的。信用卡核心系統(tǒng)、賬務(wù)系統(tǒng)、風(fēng)控決策系統(tǒng)絕大多數(shù)跑在Java技術(shù)棧上衍生出來(lái)的測(cè)試開(kāi)發(fā)崗位自然也對(duì)Java有指向性要求。這意味著什么你在準(zhǔn)備過(guò)程中至少要能讀懂Java代碼最好能用Java寫(xiě)編程題。你用Python答題在很多銀行筆試系統(tǒng)里可能不識(shí)別或者即使識(shí)別了面試官也對(duì)你的代碼好感度一般。我見(jiàn)過(guò)有候選人C寫(xiě)得很好但Java只會(huì)皮毛筆試勉強(qiáng)過(guò)了面試時(shí)被追問(wèn)Java虛擬機(jī)內(nèi)存模型直接卡殼最后倒在終面。所以如果你時(shí)間充裕務(wù)必把Java基礎(chǔ)語(yǔ)法、集合框架、異常機(jī)制、多線程基礎(chǔ)過(guò)一遍這是銀行系測(cè)試開(kāi)發(fā)的基本功。另外一個(gè)小細(xì)節(jié)銀行筆試考察的“Java”并不是Spring Boot那種框架級(jí)的東西而是語(yǔ)言本身的特性。比如HashMap和Hashtable的區(qū)別、String為什么不可變、ArrayList和LinkedList的適用場(chǎng)景這些基礎(chǔ)八股反而是考試重點(diǎn)。它考的不是你用了多少年的Java而是你還能不能答清楚最底層的東西。2. 核心考點(diǎn)拆解算法、數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)與測(cè)試基礎(chǔ)2.1 算法題難度定位與常見(jiàn)題型先說(shuō)最難搞也最容易被誤解的算法題。銀行系筆試的算法題難度上限大概在LeetCode Medium的偏簡(jiǎn)單那一檔但考察方向和互聯(lián)網(wǎng)大廠有明顯的區(qū)別。大廠喜歡考動(dòng)態(tài)規(guī)劃、DFS/BFS、二叉樹(shù)遍歷這些“算法味”濃的題銀行系筆試則更偏愛(ài)字符串處理、數(shù)組操作、邏輯推理類(lèi)的問(wèn)題。我復(fù)盤(pán)了這輪筆試的算法題特點(diǎn)發(fā)現(xiàn)它特別愛(ài)考三類(lèi)東西第一類(lèi)是字符串相關(guān)的操作。比如判斷回文串、統(tǒng)計(jì)字符頻次、實(shí)現(xiàn)字符串的壓縮與解壓。這類(lèi)題在LeetCode上都是簡(jiǎn)單題但銀行系會(huì)把它們包裝成業(yè)務(wù)場(chǎng)景比如“給定一個(gè)交易流水號(hào)列表找出其中出現(xiàn)次數(shù)最多的前K個(gè)流水號(hào)”本質(zhì)上就是TopK問(wèn)題但如果你沒(méi)從包裝里看出來(lái)就會(huì)覺(jué)得無(wú)從下手。第二類(lèi)是邏輯推理與數(shù)學(xué)歸納。這類(lèi)題不太需要寫(xiě)代碼而是要求你寫(xiě)出思路。比如“有一個(gè)天平有12個(gè)球其中有一個(gè)重量異常請(qǐng)問(wèn)最少稱(chēng)幾次可以找出來(lái)”。這種題在互聯(lián)網(wǎng)筆試?yán)锖苌俪霈F(xiàn)但在銀行筆試?yán)锍霈F(xiàn)頻率很高。它的考察點(diǎn)不是代碼能力而是邏輯縝密度。第三類(lèi)是數(shù)組和鏈表的基礎(chǔ)算法比如數(shù)組去重、鏈表反轉(zhuǎn)、合并兩個(gè)有序數(shù)組。這些是基礎(chǔ)中的基礎(chǔ)但恰恰是很多人容易出問(wèn)題的點(diǎn)——因?yàn)樘?jiǎn)單所以寫(xiě)起來(lái)很隨意邊界條件處理得不夠仔細(xì)。做題策略上我的建議是遇到算法題先別急著寫(xiě)代碼先在草稿紙上把思路理清楚確定邊界條件再動(dòng)筆。銀行系筆試的判分系統(tǒng)通常不只看輸出結(jié)果還會(huì)人工review代碼的邏輯清晰度所以代碼風(fēng)格和注釋也會(huì)被納入評(píng)判范圍。2.2 數(shù)據(jù)庫(kù)SQL寫(xiě)法與事務(wù)隔離級(jí)別是重頭戲如果說(shuō)算法題的分你可以酌情丟一點(diǎn)那數(shù)據(jù)庫(kù)的分幾乎不能丟。銀行系對(duì)數(shù)據(jù)庫(kù)的重視程度在所有技術(shù)科目里排第一因?yàn)樾庞每ㄖ行牡臉I(yè)務(wù)全部是數(shù)據(jù)密集型業(yè)務(wù)賬戶(hù)表、交易表、積分表、流水表動(dòng)輒上億行。在這個(gè)背景下你對(duì)SQL的掌控能力直接決定了你未來(lái)能不能干活。筆試?yán)锏臄?shù)據(jù)庫(kù)題主要分兩大塊第一大塊是手寫(xiě)SQL??疾斓恼Z(yǔ)法點(diǎn)非常固定多表聯(lián)查JOIN、聚合函數(shù)GROUP BY、條件過(guò)濾HAVING、子查詢(xún)、排序ORDER BY、分頁(yè)LIMIT。這些如果你腦子里還沒(méi)有形成肌肉記憶現(xiàn)在趕緊練。信用卡場(chǎng)景下的典型題目大概是這樣的有兩張表一張是客戶(hù)表customer一張是交易表transaction請(qǐng)查詢(xún)“每個(gè)客戶(hù)的交易總金額且只顯示交易總金額大于10000的客戶(hù)按交易總金額降序排列”。這題看起來(lái)簡(jiǎn)單但它把JOIN、GROUP BY、HAVING、ORDER BY全串起來(lái)了一步寫(xiě)錯(cuò)就是零分。這里有個(gè)特別容易踩的坑很多人習(xí)慣用WHERE來(lái)過(guò)濾聚合后的結(jié)果這是錯(cuò)的。WHERE是對(duì)原始行進(jìn)行過(guò)濾HAVING才是對(duì)分組后的結(jié)果進(jìn)行過(guò)濾。還有人在多表聯(lián)查時(shí)搞不清INNER JOIN和LEFT JOIN的區(qū)別在信用卡場(chǎng)景里這個(gè)區(qū)別是致命的——查“所有客戶(hù)的交易總額”如果一個(gè)客戶(hù)沒(méi)有任何交易記錄INNER JOIN會(huì)把他丟掉而LEFT JOIN會(huì)保留他并把金額顯示為0。業(yè)務(wù)語(yǔ)義不一樣SQL寫(xiě)法就不一樣題目里往往會(huì)在業(yè)務(wù)描述里埋這種坑。第二大塊是數(shù)據(jù)庫(kù)理論知識(shí)。重點(diǎn)集中在事務(wù)的ACID特性、隔離級(jí)別、索引原理和鎖機(jī)制。這塊考得比互聯(lián)網(wǎng)大廠深。大廠可能只問(wèn)“MySQL默認(rèn)隔離級(jí)別是什么”銀行系會(huì)進(jìn)一步問(wèn)你“可重復(fù)讀隔離級(jí)別下幻讀問(wèn)題怎么產(chǎn)生的”“間隙鎖和臨鍵鎖的區(qū)別是什么”。尤其是索引這塊銀行系特別喜歡考聯(lián)合索引的最左前綴原則。因?yàn)樾庞每ㄖ行脑跀?shù)據(jù)庫(kù)層面經(jīng)常要處理億級(jí)數(shù)據(jù)的查詢(xún)性能問(wèn)題聯(lián)合索引的使用頻率極高這個(gè)考點(diǎn)在筆試面試?yán)锓磸?fù)出現(xiàn)是很正常的。2.3 計(jì)算機(jī)網(wǎng)絡(luò)金融場(chǎng)景下的協(xié)議考察計(jì)算機(jī)網(wǎng)絡(luò)在銀行系筆試?yán)锏牡匚槐仍诨ヂ?lián)網(wǎng)大廠筆試?yán)锔?。原因很?jiǎn)單金融系統(tǒng)對(duì)通信的可靠性、安全性要求極其嚴(yán)格HTTP、HTTPS、TCP/IP這些基礎(chǔ)協(xié)議是每個(gè)測(cè)試開(kāi)發(fā)都必須吃透的底層知識(shí)。HTTP相關(guān)的題是必考的而且考得比你想象中細(xì)。比如HTTP狀態(tài)碼的分類(lèi)——2xx、3xx、4xx、5xx分別代表什么其中404和403的區(qū)別、301和302的區(qū)別這些在信用卡業(yè)務(wù)里有非常具體的應(yīng)用場(chǎng)景。舉個(gè)例子用戶(hù)在App上點(diǎn)擊還款請(qǐng)求打到網(wǎng)關(guān)層網(wǎng)關(guān)返回301還是302決定了前端會(huì)不會(huì)重新發(fā)起請(qǐng)求用戶(hù)請(qǐng)求的接口需要登錄態(tài)返回401還是403決定了前端是跳轉(zhuǎn)登錄頁(yè)還是彈出無(wú)權(quán)限提示。測(cè)試開(kāi)發(fā)如果對(duì)狀態(tài)碼的理解是模糊的連測(cè)試斷言該寫(xiě)什么都判斷不了。TCP協(xié)議也是重點(diǎn)尤其是三次握手和四次揮手的過(guò)程。銀行系的考法通常不會(huì)只讓你背過(guò)程而是會(huì)問(wèn)“為什么三次握手而不是兩次”“TIME_WAIT狀態(tài)出現(xiàn)在哪一端、有什么作用”。這類(lèi)問(wèn)題背后隱含的是對(duì)連接可靠性的理解因?yàn)榻鹑谙到y(tǒng)對(duì)連接穩(wěn)定性要求高任何一個(gè)連接的異常關(guān)閉都可能引起交易中斷。HTTPS的加密過(guò)程也是高頻考點(diǎn)。對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密的區(qū)別、SSL/TLS握手的基本過(guò)程、證書(shū)的作用這些是在信用卡支付鏈路里每天都要面對(duì)的技術(shù)。你不需要背到奧級(jí)細(xì)節(jié)但至少要知道客戶(hù)端和服務(wù)端是如何通過(guò)證書(shū)交換公鑰、如何通過(guò)會(huì)話(huà)密鑰加密數(shù)據(jù)傳輸?shù)摹?.4 測(cè)試基礎(chǔ)從理論到業(yè)務(wù)場(chǎng)景設(shè)計(jì)測(cè)試基礎(chǔ)理論這部分是區(qū)分“科班出身”和“半路轉(zhuǎn)行”的分水嶺。如果你在培訓(xùn)機(jī)構(gòu)速成過(guò)測(cè)試開(kāi)發(fā)大概率會(huì)被這部分題打回原形因?yàn)樗嫉牟皇遣僮鞴ぞ叩哪芰Χ菍?duì)這一行的系統(tǒng)性理解。常考的理論點(diǎn)包括軟件測(cè)試的生命周期V模型、W模型、敏捷模型、測(cè)試用例的基本要素、缺陷的生命周期和管理流程、白盒測(cè)試與黑盒測(cè)試的區(qū)別、靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試的區(qū)別。這些內(nèi)容看起來(lái)很簡(jiǎn)單但銀行系會(huì)把它放在具體場(chǎng)景里考。比如給你一段業(yè)務(wù)需求描述要求你判斷這個(gè)需求應(yīng)該在哪個(gè)階段開(kāi)始設(shè)計(jì)測(cè)試用例很多人的第一反應(yīng)是“需求評(píng)審之后”但正確答案在V模型里應(yīng)該是“需求階段就同步開(kāi)始測(cè)試計(jì)劃”。測(cè)試用例設(shè)計(jì)方法是重中之重。等價(jià)類(lèi)劃分、邊界值分析、因果圖法、判定表法、場(chǎng)景法這些方法單獨(dú)拿出來(lái)考你概念人人都能答上來(lái)但放在信用卡業(yè)務(wù)場(chǎng)景里讓你設(shè)計(jì)用例很多人就露餡了。比如“信用卡取現(xiàn)手續(xù)費(fèi)率為取現(xiàn)金額的1%最低10元人民幣請(qǐng)問(wèn)取現(xiàn)100元、500元、800元、1500元手續(xù)費(fèi)分別是多少”——這題看著是數(shù)學(xué)題實(shí)際上考的是等價(jià)類(lèi)和邊界值的綜合運(yùn)用。如果取1元按1%算是0.01元但低于最低手續(xù)費(fèi)10元所以要收10元取800元按1%算是8元低于10元也要收10元取1500元按1%算是15元超過(guò)最低收費(fèi)按15元收。這個(gè)計(jì)算本身不復(fù)雜但你要能提煉出“手續(xù)費(fèi)與取現(xiàn)金額的關(guān)系存在兩個(gè)區(qū)間且存在邊界值”才算真掌握了測(cè)試用例設(shè)計(jì)。3. 測(cè)試開(kāi)發(fā)專(zhuān)屬考點(diǎn)從用例設(shè)計(jì)到自動(dòng)化框架3.1 測(cè)試用例設(shè)計(jì)邊界值、等價(jià)類(lèi)與場(chǎng)景法的實(shí)戰(zhàn)銀行系筆試?yán)镒钜?jiàn)功力的一道題通常是“針對(duì)某某業(yè)務(wù)功能設(shè)計(jì)測(cè)試用例”。這種題不是選擇題而是主觀題需要你手寫(xiě)用例設(shè)計(jì)思路。很多人在這道題上栽跟頭不是因?yàn)椴欢疁y(cè)試方法而是因?yàn)樵O(shè)計(jì)出來(lái)的用例沒(méi)有層次、沒(méi)有優(yōu)先級(jí)、覆蓋不全。以信用卡還款功能為例一個(gè)合格的測(cè)試開(kāi)發(fā)至少應(yīng)該從三個(gè)維度去設(shè)計(jì)用例第一個(gè)維度是功能鏈路維度。還款不是一個(gè)孤立的動(dòng)作它背后有完整的鏈路用戶(hù)發(fā)起還款請(qǐng)求→銀行系統(tǒng)校驗(yàn)卡號(hào)有效性→校驗(yàn)還款金額是否在限額內(nèi)→判斷賬戶(hù)狀態(tài)是否正?!鷪?zhí)行扣款→更新賬單狀態(tài)→發(fā)送還款成功通知。鏈路里的每一個(gè)環(huán)節(jié)都可以拆出正反向用例。很多人只測(cè)“還款成功”這一條主路徑就完事了完全忽略了“賬戶(hù)狀態(tài)異?!薄斑€款金額超過(guò)單筆限額”“銀行卡已掛失”這些分支路徑。第二個(gè)維度是數(shù)據(jù)維度。還款金額到底有哪些特殊取值0元、負(fù)數(shù)、超過(guò)欠款金額、剛好等于欠款金額、超過(guò)單筆限額、包含小數(shù)。還款日當(dāng)天還款、過(guò)了還款日還款、寬限期內(nèi)還款。每一種數(shù)據(jù)組合背后都有不同的業(yè)務(wù)規(guī)則也就對(duì)應(yīng)著不同的測(cè)試用例。這里尤其要關(guān)注金額精度問(wèn)題——金融系統(tǒng)里金額通常用分存儲(chǔ)如果測(cè)試時(shí)用了帶小數(shù)的金額就可能暴露精度丟失的Bug。第三個(gè)維度是異常維度。網(wǎng)絡(luò)超時(shí)、重復(fù)點(diǎn)擊、服務(wù)端返回未知錯(cuò)誤、并發(fā)請(qǐng)求這些異常場(chǎng)景在信用卡業(yè)務(wù)里特別常見(jiàn)。尤其是冪等性問(wèn)題用戶(hù)在還款頁(yè)面等了幾秒鐘沒(méi)反應(yīng)又點(diǎn)了一次系統(tǒng)如果沒(méi)做冪等處理就會(huì)扣兩次款。這是銀行系統(tǒng)的經(jīng)典Bug也是測(cè)試開(kāi)發(fā)面試中必考的思維題。用例設(shè)計(jì)的輸出格式也有講究。筆試時(shí)如果讓你寫(xiě)出測(cè)試用例建議用表格形式呈現(xiàn)用例編號(hào)、前置條件、測(cè)試步驟、輸入數(shù)據(jù)、預(yù)期結(jié)果、優(yōu)先級(jí)。這樣既方便閱卷人一目了然也體現(xiàn)出你的專(zhuān)業(yè)度。寫(xiě)成大段文字描述是最吃虧的因?yàn)殚喚砣艘谀愕奈淖掷镎业梅贮c(diǎn)找不齊就扣分。3.2 自動(dòng)化測(cè)試主流框架與銀行系選型差異自動(dòng)化測(cè)試在第三批筆試?yán)镎嫉谋戎夭淮蟠蟾啪褪莾扇肋x擇題加一道簡(jiǎn)答題的量但它是區(qū)分度和含金量最高的部分。因?yàn)殂y行系測(cè)試開(kāi)發(fā)崗位的工作內(nèi)容里自動(dòng)化測(cè)試是日常工作的主力筆試考察這塊內(nèi)容是在篩選真正有實(shí)戰(zhàn)經(jīng)驗(yàn)的人。選擇題部分通常考框架的基本概念比如Selenium的定位方式id、name、xpath、css selector、TestNG和JUnit的區(qū)別、接口自動(dòng)化測(cè)試中如何斷言、持續(xù)集成工具Jenkins在自動(dòng)化測(cè)試中的作用。這些都屬于入門(mén)級(jí)概念只要你真正做過(guò)自動(dòng)化項(xiàng)目基本不會(huì)丟分。簡(jiǎn)答題部分則更有深度??嫉氖恰昂?jiǎn)述你搭建自動(dòng)化測(cè)試框架的思路”或者“如何選擇自動(dòng)化測(cè)試工具”。這道題沒(méi)有標(biāo)準(zhǔn)答案考察的是你對(duì)自動(dòng)化測(cè)試工程化的理解。一個(gè)及格的回答至少要包含腳本分層測(cè)試用例層、業(yè)務(wù)操作層、元素定位層、數(shù)據(jù)驅(qū)動(dòng)測(cè)試數(shù)據(jù)和代碼分離、公共方法封裝、日志與報(bào)告輸出、持續(xù)集成接入。如果你的回答里能提到“Page Object模式”和“自動(dòng)化用例的穩(wěn)定性治理”得分會(huì)明顯更高。這里補(bǔ)充一個(gè)銀行系和互聯(lián)網(wǎng)系在自動(dòng)化測(cè)試上的差異認(rèn)知?;ヂ?lián)網(wǎng)大廠的自動(dòng)化測(cè)試更強(qiáng)調(diào)效率和覆蓋率會(huì)大量引入自研平臺(tái)和AI輔助。銀行系則更強(qiáng)調(diào)穩(wěn)定性和可追溯性很多自動(dòng)化測(cè)試跑在獨(dú)立的測(cè)試環(huán)境里執(zhí)行結(jié)果要保留日志備查所以銀行系在面試中更關(guān)注你的用例是不是夠穩(wěn)定、失敗重跑機(jī)制是否完善、失敗信息是否足夠定位問(wèn)題。這在筆試?yán)锊灰欢ㄖ苯涌嫉诤罄m(xù)面試中一定會(huì)問(wèn)到。3.3 接口測(cè)試與性能測(cè)試的常見(jiàn)考察方式接口測(cè)試是銀行系測(cè)試開(kāi)發(fā)筆試的重點(diǎn)科目之一因?yàn)樗苯訉?duì)應(yīng)信用卡中心后臺(tái)服務(wù)的日常測(cè)試工作。選擇題里常考的是HTTP方法語(yǔ)義GET和POST的區(qū)別、接口鑒權(quán)方式Token、Session、OAuth、接口返回碼的斷言。這些在互聯(lián)網(wǎng)測(cè)試?yán)镆彩浅WR(shí)但銀行系會(huì)多考一個(gè)點(diǎn)——接口的冪等性設(shè)計(jì)如何測(cè)試。前面提過(guò)冪等性是金融系統(tǒng)支付的命門(mén)筆試?yán)锎蟾怕蕰?huì)出現(xiàn)一道“針對(duì)交易接口設(shè)計(jì)冪等性測(cè)試方案”的場(chǎng)景題。性能測(cè)試在筆試?yán)锍霈F(xiàn)的頻率稍低但一旦出現(xiàn)就是有區(qū)分度的題。核心考點(diǎn)包括性能測(cè)試的關(guān)鍵指標(biāo)TPS、QPS、響應(yīng)時(shí)間、并發(fā)用戶(hù)數(shù)、錯(cuò)誤率、性能測(cè)試的分類(lèi)負(fù)載測(cè)試、壓力測(cè)試、穩(wěn)定性測(cè)試、尖峰測(cè)試、性能測(cè)試工具JMeter的基本使用。信用卡業(yè)務(wù)的性能測(cè)試有一個(gè)特點(diǎn)它不僅要測(cè)總體的TPS還要關(guān)注特定業(yè)務(wù)場(chǎng)景下的性能表現(xiàn)。比如還款日的19:00到21:00是流量高峰系統(tǒng)能不能扛得住比如營(yíng)銷(xiāo)活動(dòng)發(fā)放優(yōu)惠券的瞬間搶券接口的響應(yīng)時(shí)間會(huì)不會(huì)從100毫秒飆升到10秒。這些都是有真實(shí)業(yè)務(wù)背景的性能問(wèn)題比單純問(wèn)“TPS怎么計(jì)算”要高級(jí)得多。4. 備考實(shí)操方案從零到筆試通過(guò)的時(shí)間規(guī)劃4.1 四個(gè)星期的復(fù)習(xí)節(jié)奏如果你是在筆試前一個(gè)月左右看到這篇內(nèi)容時(shí)間完全來(lái)得及但節(jié)奏必須踩準(zhǔn)。我給身邊人推薦過(guò)一套四周復(fù)習(xí)法親測(cè)有效你可以直接抄作業(yè)。第一周掃盲周。目標(biāo)是快速把所有考察科目的框架搭起來(lái)。每天抽出3到4小時(shí)按照計(jì)算機(jī)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、測(cè)試?yán)碚撊蟀鍓K的順序把核心知識(shí)點(diǎn)過(guò)一遍。這一周不追求深度只追求“知道考什么”相當(dāng)于繪制一張知識(shí)地圖。第二周刷題周。開(kāi)始進(jìn)入輸出階段。重點(diǎn)是數(shù)據(jù)庫(kù)SQL和測(cè)試基礎(chǔ)理論這兩塊的分?jǐn)?shù)占比最高也最容易通過(guò)刷題快速提分。每天至少手寫(xiě)10道SQL做完之后對(duì)照參考答案檢查重點(diǎn)檢查JOIN的類(lèi)型選擇、GROUP BY和HAVING的使用、子查詢(xún)的寫(xiě)法。如果連續(xù)三道SQL題都是一遍寫(xiě)對(duì)再進(jìn)入下一個(gè)知識(shí)點(diǎn)。第三周專(zhuān)項(xiàng)突破周。開(kāi)始做編程題和測(cè)試用例設(shè)計(jì)題。編程題以LeetCode的Easy和Medium簡(jiǎn)單檔為主每天3到5道做完之后復(fù)盤(pán)每道題的時(shí)間復(fù)雜度和邊界條件處理。測(cè)試用例設(shè)計(jì)題則需要系統(tǒng)訓(xùn)練把信用卡常見(jiàn)的業(yè)務(wù)模塊申請(qǐng)、消費(fèi)、還款、積分、分期、掛失、銷(xiāo)戶(hù)各找一兩道題來(lái)練手。第四周??贾?。嚴(yán)格按照真實(shí)考試的時(shí)間限制做模擬題。模擬題來(lái)源最好是銀行系歷年真題不要再做互聯(lián)網(wǎng)大廠的題因?yàn)轱L(fēng)格差異太大做了反而干擾手感。??歼^(guò)程中記錄每道題的實(shí)際用時(shí)考后復(fù)盤(pán)調(diào)整答題節(jié)奏。這一周的重點(diǎn)不是學(xué)新知識(shí)而是讓自己在限定時(shí)間內(nèi)達(dá)到穩(wěn)定的輸出狀態(tài)。4.2 高效練習(xí)資源怎么用很多人在備考時(shí)最容易犯的錯(cuò)就是買(mǎi)了一堆書(shū)但一本都沒(méi)看完。銀行系筆試的考察范圍雖然雜但深度有限不需要你把《深入理解計(jì)算機(jī)系統(tǒng)》從頭到尾啃一遍性?xún)r(jià)比太低。我建議圍繞三份核心資料展開(kāi)第一份是LeetCode精選題目。不用全部刷完按標(biāo)簽篩選字符串、數(shù)組、鏈表、哈希表、雙指針這五類(lèi)題每類(lèi)刷10到15道就足夠覆蓋銀行筆試的編程題難度了。刷的時(shí)候多注意代碼的規(guī)范性不要只追求AC要讓代碼結(jié)構(gòu)清晰、注釋到位因?yàn)殂y行筆試的主觀題評(píng)分會(huì)看代碼風(fēng)格。第二份是SQL練習(xí)平臺(tái)。國(guó)內(nèi)外的SQL在線練習(xí)網(wǎng)站都可以用重點(diǎn)練多表查詢(xún)和聚合查詢(xún)。信用卡場(chǎng)景里最常見(jiàn)的報(bào)表查詢(xún)邏輯就是多表JOIN加分組統(tǒng)計(jì)如果你能把這類(lèi)題練到“看到題目就能條件反射寫(xiě)出JOIN條件”的程度數(shù)據(jù)庫(kù)部分基本穩(wěn)了。第三份是歷年銀行IT筆試真題。去哪里找??途W(wǎng)、應(yīng)屆生求職論壇BBS上都有大量銀行筆試的回憶版題目雖然不全但足以幫助你判斷出題風(fēng)格。相比做新題我更推薦反復(fù)做真題因?yàn)檎骖}里的考點(diǎn)分布比模擬題可靠得多。4.3 答題策略與時(shí)間分配技巧這部分是我最想強(qiáng)調(diào)的因?yàn)樘嗳嗽诠P試時(shí)不是不會(huì)做而是時(shí)間安排出了問(wèn)題。先說(shuō)一個(gè)我的經(jīng)驗(yàn)法則試卷發(fā)下來(lái)之后不要急著動(dòng)筆先用1到2分鐘把整張卷子瀏覽一遍。目的是搞清楚哪些是送分題、哪些是難度題、哪些題分值高但耗時(shí)。然后按照“先易后難、先高分后低分”的順序做題。具體來(lái)說(shuō)我的答題順序建議是先做數(shù)據(jù)庫(kù)SQL題和測(cè)試用例設(shè)計(jì)題如果分開(kāi)出的話(huà)。這類(lèi)題分值高、考察點(diǎn)明確而且一旦你進(jìn)入答題狀態(tài)思路會(huì)越寫(xiě)越順。再做選擇題里的基礎(chǔ)題計(jì)算機(jī)基礎(chǔ)、測(cè)試?yán)碚摗_@部分速度快的話(huà)能為你攢下不少時(shí)間。最后做編程題和復(fù)雜場(chǎng)景題。這類(lèi)題通常需要反復(fù)推敲留在最后做即使時(shí)間不夠了你的損失也可控。做選擇題時(shí)有一個(gè)技巧拿不準(zhǔn)的題不要空著先根據(jù)第一感覺(jué)選一個(gè)答案并在草稿紙上標(biāo)記出來(lái)等做完一輪再回頭復(fù)查。因?yàn)槿四X在沒(méi)有干擾情況下的第一判斷往往比反復(fù)糾結(jié)后的判斷更準(zhǔn)。銀行筆試的多選題特別坑不確定的選項(xiàng)寧可不選也不要冒險(xiǎn)多選。少選最多丟一半分多選一分不得。時(shí)間分配上如果總時(shí)長(zhǎng)120分鐘、總分100分大致可以按“1分對(duì)應(yīng)1分鐘”來(lái)劃分每個(gè)板塊的預(yù)算。在模擬考試時(shí)給自己加一個(gè)10%的彈性時(shí)間預(yù)留出來(lái)應(yīng)對(duì)突發(fā)情況。實(shí)測(cè)下來(lái)這個(gè)策略能讓你在常規(guī)難度下提前10到15分鐘完成全卷留下充裕的檢查時(shí)間。5. 常見(jiàn)問(wèn)題與避坑實(shí)錄5.1 銀行系筆試常見(jiàn)的丟分點(diǎn)根據(jù)我這些年跟銀行筆試打交道和幫人復(fù)盤(pán)的經(jīng)驗(yàn)以下幾個(gè)丟分點(diǎn)出現(xiàn)頻率最高你看看自己有沒(méi)有踩過(guò)。丟分點(diǎn)一SQL題忘記處理NULL值。銀行數(shù)據(jù)庫(kù)的表里NULL值到處都有。比如客戶(hù)表的“手機(jī)號(hào)”字段可能為空交易表的“商戶(hù)名稱(chēng)”字段可能為空。如果題目要求“查詢(xún)所有客戶(hù)的交易總額”客戶(hù)沒(méi)有交易記錄時(shí)LEFT JOIN會(huì)產(chǎn)生NULL你需要用IFNULL或COALESCE函數(shù)把它轉(zhuǎn)成0。很多人從不考慮這一點(diǎn)導(dǎo)致計(jì)算結(jié)果跟預(yù)期不符整道題零分。丟分點(diǎn)二測(cè)試用例設(shè)計(jì)只覆蓋正向路徑。給出一個(gè)功能讓你設(shè)計(jì)測(cè)試用例大部分人能把正向流程寫(xiě)得很完整但反向用例和異常用例寫(xiě)得稀稀拉拉。閱卷人的評(píng)分邏輯是正向用例是基礎(chǔ)分反向用例和異常用例是高分項(xiàng)。如果你只寫(xiě)了5個(gè)正向用例撐死拿及格分如果能補(bǔ)上3到5個(gè)反向用例分?jǐn)?shù)立刻上一個(gè)檔次。丟分點(diǎn)三編程題邊界條件不全。比如題目要求對(duì)數(shù)組排序后輸出第K大的數(shù)你寫(xiě)完了核心邏輯卻忘了數(shù)組為空、K超過(guò)數(shù)組長(zhǎng)度、數(shù)組里有重復(fù)元素這些邊界情況。銀行筆試的編程題判題時(shí)邊界測(cè)試用例往往是隱藏的越基礎(chǔ)越容易被忽視反而成了扣分重災(zāi)區(qū)。丟分點(diǎn)四時(shí)間分配失衡。我前面強(qiáng)調(diào)過(guò)先瀏覽全卷的重要性但很多人拿了卷子就開(kāi)始從第一題挨個(gè)往下做。結(jié)果在前面的難題上卡了15分鐘導(dǎo)致后面的送分題反而沒(méi)時(shí)間做。銀行筆試的題目排列通常不按難度遞增前面的選擇題里完全可能藏著一道需要計(jì)算半天的多選題如果你不及時(shí)跳過(guò)整個(gè)考試節(jié)奏就崩了。5.2 面試階段可能追問(wèn)的技術(shù)深度筆試只是第一關(guān)通過(guò)筆試之后面試官會(huì)根據(jù)你在筆試卷上的作答表現(xiàn)持續(xù)追問(wèn)。這部分提前了解能讓你在筆試時(shí)有意識(shí)地鋪墊答題素材。SQL相關(guān)的追問(wèn)是必然的。如果你在筆試?yán)飳?xiě)了某條SQL用了子查詢(xún)面試官八成會(huì)問(wèn)你“這個(gè)子查詢(xún)能不能改成JOIN”“兩種寫(xiě)法性能有什么差異”“數(shù)據(jù)庫(kù)在什么情況下會(huì)選擇子查詢(xún)而不是JOIN”。所以筆試時(shí)不要為了炫技寫(xiě)那種特別花哨的SQL寫(xiě)最經(jīng)典、最清晰的寫(xiě)法面試時(shí)反而好答。測(cè)試用例設(shè)計(jì)題會(huì)被追問(wèn)設(shè)計(jì)思路。面試官可能會(huì)問(wèn)“你為什么會(huì)想到用邊界值分析法”“這個(gè)用例的優(yōu)先級(jí)是怎么確定的”“如果開(kāi)發(fā)告訴你說(shuō)這個(gè)Bug不改你怎么處理”。這些問(wèn)題沒(méi)有標(biāo)準(zhǔn)答案考的是你的溝通能力和業(yè)務(wù)敏感度。你在筆試?yán)飳?xiě)的用例如果有明確的優(yōu)先級(jí)劃分和理由說(shuō)明面試時(shí)就能直接拿來(lái)當(dāng)素材引用落落大方。編程題會(huì)追問(wèn)復(fù)雜度與優(yōu)化空間。如果你筆試題用了雙重循環(huán)面試官會(huì)問(wèn)你“能不能優(yōu)化成O(n)”“空間復(fù)雜度還能不能再降”。所以平時(shí)刷題時(shí)不要只看代碼能不能跑通多想想當(dāng)前解法的復(fù)雜度是多少、能不能換一種思路優(yōu)化這能讓你在面試中答得游刃有余。5.3 心態(tài)與細(xì)節(jié)問(wèn)題最后聊幾個(gè)容易被忽視、但實(shí)際影響很大的細(xì)節(jié)。第一銀行筆試的答題環(huán)境通常比較嚴(yán)格。有的系統(tǒng)會(huì)開(kāi)啟防切屏監(jiān)控切屏次數(shù)超過(guò)限制會(huì)被記錄甚至取消成績(jī)。所以在做模擬題時(shí)就要養(yǎng)成不開(kāi)其他App、不切屏的習(xí)慣。還有的銀行要求開(kāi)啟攝像頭監(jiān)控光線不足或者環(huán)境嘈雜都可能被提醒建議提前找一個(gè)安靜、明亮、網(wǎng)絡(luò)穩(wěn)定的地方。第二客觀題涂卡要有節(jié)奏。線上考試的界面通常會(huì)把題目分成一頁(yè)一頁(yè)的你得一頁(yè)頁(yè)往下做做了之后要記得點(diǎn)“下一題”或“保存”。有些系統(tǒng)不會(huì)自動(dòng)保存忘了點(diǎn)保存的后果就是白做。每做完5道題就瞄一眼右下角的進(jìn)度條確認(rèn)題目序號(hào)有沒(méi)有跳。第三心態(tài)上不要因?yàn)槟硯椎李}不會(huì)就崩。銀行筆試這種全景式的考法幾乎沒(méi)人能拿滿(mǎn)分你的目標(biāo)是得分率而不是正確率。遇到不會(huì)的題按“1分鐘想不出來(lái)就跳過(guò)”的原則處理整張卷子做完再回頭啃。做過(guò)模擬題的人都有這個(gè)經(jīng)驗(yàn)考場(chǎng)上那些一開(kāi)始覺(jué)得完全沒(méi)思路的題放到最后再回頭看思路反而打開(kāi)了。第四考前一天不要再做題了。把之前做錯(cuò)的題拿出來(lái)翻一遍把SQL的常用函數(shù)和測(cè)試用例設(shè)計(jì)方法的清單過(guò)一遍早點(diǎn)休息。銀行筆試的時(shí)間通常在上午或下午你需要保證考試時(shí)段大腦處于最清醒的狀態(tài)而不是刷題刷到凌晨第二天頂著一副迷糊的腦子上考場(chǎng)。我個(gè)人帶過(guò)好幾個(gè)準(zhǔn)備銀行系測(cè)試開(kāi)發(fā)崗位的朋友發(fā)現(xiàn)最終能過(guò)筆試的人普遍不是技術(shù)最強(qiáng)的而是準(zhǔn)備方向上最精準(zhǔn)的。銀行系筆試的題目偏基礎(chǔ)、偏業(yè)務(wù)、偏細(xì)節(jié)你只要把知識(shí)地圖畫(huà)全把高頻題型練透把時(shí)間策略演練熟通過(guò)的概率是非常大的。祝筆試順利。