試筆試核心考點(diǎn)復(fù)盤(pán):從用例設(shè)計(jì)到線上問(wèn)題排查)
說(shuō)到攜程2019屆秋招的專業(yè)筆試尤其是測(cè)試方向很多當(dāng)年一起備戰(zhàn)秋招的同學(xué)都有同樣的感受這場(chǎng)筆試不像是在考“某個(gè)知識(shí)點(diǎn)”而是把軟件測(cè)試崗位需要的基本功壓縮到兩個(gè)小時(shí)里挨個(gè)過(guò)了一遍。哪怕放在今天我依然建議準(zhǔn)備測(cè)試崗校招的同學(xué)把它當(dāng)作一套完整的能力自測(cè)題因?yàn)槔锩娴念}型分布、考點(diǎn)側(cè)重和答題思路基本就是國(guó)內(nèi)互聯(lián)網(wǎng)公司測(cè)試方向筆試的一個(gè)縮影。這篇文章不打算做那種“真題答案匯編”而是從備考者的視角復(fù)盤(pán)一下這類筆試到底考什么哪些知識(shí)點(diǎn)值得花時(shí)間哪些題型看著簡(jiǎn)單卻最容易丟分。適合正在準(zhǔn)備測(cè)試崗校招的學(xué)生、想從開(kāi)發(fā)崗轉(zhuǎn)測(cè)試的工程師也適合那些想了解測(cè)試筆試到底有多深的人。我會(huì)把現(xiàn)場(chǎng)答題的經(jīng)驗(yàn)、后來(lái)復(fù)盤(pán)時(shí)發(fā)現(xiàn)的不足、以及面試時(shí)被追問(wèn)過(guò)的細(xì)節(jié)都寫(xiě)出來(lái)盡量做到讓你看完能直接照著執(zhí)行。1. 筆試整體設(shè)計(jì)與備考思路1.1 為什么這場(chǎng)筆試值得反復(fù)研究先說(shuō)結(jié)論測(cè)試方向的筆試重點(diǎn)不是“考倒你”而是篩選出具備計(jì)算機(jī)基礎(chǔ)、測(cè)試思維和工程意識(shí)的人。攜程2019屆秋招測(cè)試方向的筆試題目結(jié)構(gòu)其實(shí)很典型大致由四類組成選擇、填空題覆蓋數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、操作系統(tǒng)等基礎(chǔ)內(nèi)容。簡(jiǎn)答題考察軟件測(cè)試?yán)碚?、測(cè)試流程、測(cè)試用例設(shè)計(jì)方法。場(chǎng)景題給一個(gè)線上問(wèn)題或業(yè)務(wù)功能讓你分析測(cè)試重點(diǎn)、排查思路。編程題一般不會(huì)很難但要求寫(xiě)出邏輯完整、邊界考慮充分的代碼。這種結(jié)構(gòu)現(xiàn)在很多公司在測(cè)試崗筆試?yán)镆廊辉谟盟园阉?dāng)作備考模板來(lái)研究完全沒(méi)問(wèn)題。復(fù)盤(pán)這份題時(shí)不要只盯分?jǐn)?shù)更要看題目背后映射的能力模型基礎(chǔ)是否扎實(shí)、用例設(shè)計(jì)是否有章法、遇到問(wèn)題是否能分層排查。這才是筆試真正的價(jià)值所在。1.2 備考路上最容易走偏的三個(gè)方向第一個(gè)誤區(qū)是只刷題不梳理知識(shí)體系。市面上流傳的軟件測(cè)試面試八股文很多但如果你只是把它們背下來(lái)遇到場(chǎng)景題照樣懵。筆試題是會(huì)變的知識(shí)體系不會(huì)變。建議以“測(cè)試基礎(chǔ)、數(shù)據(jù)庫(kù)、Linux、網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)、編程語(yǔ)言”為框架把知識(shí)點(diǎn)填進(jìn)去再配合刷題鞏固。第二個(gè)誤區(qū)是只背測(cè)試?yán)碚摬痪氂美O(shè)計(jì)。很多人能把“等價(jià)類、邊界值、因果圖”的定義倒背如流但拿到一個(gè)具體的“航班搜索”功能寫(xiě)出來(lái)的用例東一塊西一塊。筆試?yán)锖?jiǎn)答題的給分點(diǎn)通常很細(xì)用例維度全、有邊界、有異常場(chǎng)景才算合格。這個(gè)只能靠練不能靠背。第三個(gè)誤區(qū)是編程題眼高手低。測(cè)試崗筆試的編程題往往比開(kāi)發(fā)崗簡(jiǎn)單但簡(jiǎn)單不等于拿滿分。見(jiàn)過(guò)不少同學(xué)思路一說(shuō)全對(duì)一寫(xiě)代碼就忘了判空、忘了邊界、忘了注釋。筆試環(huán)境里沒(méi)人聽(tīng)你講思路代碼就是你的表達(dá)能力平時(shí)一定要自己動(dòng)手寫(xiě)。1.3 時(shí)間分配和復(fù)習(xí)節(jié)奏如果你從現(xiàn)在開(kāi)始準(zhǔn)備我建議留出三到四周時(shí)間按三輪來(lái)復(fù)習(xí)。第一輪用一周時(shí)間過(guò)基礎(chǔ)。不要試圖把所有計(jì)算機(jī)基礎(chǔ)課都啃完而是抓與測(cè)試強(qiáng)相關(guān)的部分?jǐn)?shù)據(jù)結(jié)構(gòu)里的數(shù)組、鏈表、棧、隊(duì)列和常見(jiàn)排序計(jì)算機(jī)網(wǎng)絡(luò)里的HTTP、TCP、DNS數(shù)據(jù)庫(kù)里的增刪改查、連表查詢、聚合函數(shù)Linux里常用的日志分析和進(jìn)程排查命令。這一輪的目標(biāo)是“提到一個(gè)知識(shí)點(diǎn)你能說(shuō)出它是干什么的”。第二輪用一周半時(shí)間專項(xiàng)突破。核心就是測(cè)試?yán)碚摵陀美O(shè)計(jì)。每天至少做兩道用例設(shè)計(jì)題覆蓋登錄、搜索、下單、支付、退款這類常見(jiàn)業(yè)務(wù)模塊。同時(shí)練習(xí)場(chǎng)景題重點(diǎn)鍛煉分層排查的思路。第三輪用剩下的時(shí)間全真模擬。找一套往年測(cè)試方向筆試題嚴(yán)格按考試時(shí)間來(lái)做做完之后逐題復(fù)盤(pán)。不要只對(duì)答案要研究每個(gè)選項(xiàng)為什么對(duì)、為什么錯(cuò)。錯(cuò)題本在這個(gè)階段比新題更重要。我當(dāng)年吃過(guò)的虧就是“題刷了不少但復(fù)盤(pán)太少”導(dǎo)致同類考點(diǎn)反復(fù)丟分。2. 核心知識(shí)點(diǎn)拆解與答題要點(diǎn)2.1 測(cè)試基礎(chǔ)不只是背概念測(cè)試基礎(chǔ)的簡(jiǎn)答題考察的是你對(duì)軟件測(cè)試的理解深度。常見(jiàn)的問(wèn)題包括什么是黑盒測(cè)試和白盒測(cè)試軟件測(cè)試流程包含哪些階段什么是回歸測(cè)試什么是冒煙測(cè)試這些概念并不難但很多人答得很干癟只寫(xiě)一句話。我建議用“一句話概念加一句話場(chǎng)景加一句話個(gè)人理解”的結(jié)構(gòu)來(lái)答。舉個(gè)例子問(wèn)你“什么是回歸測(cè)試”。你可以這樣答回歸測(cè)試是在代碼修改后重新執(zhí)行已有測(cè)試用例確認(rèn)原有功能沒(méi)有被破壞的測(cè)試過(guò)程。它通常出現(xiàn)在缺陷修復(fù)、需求變更、版本迭代之后。實(shí)際工作中我一般會(huì)先抽出與本次改動(dòng)相關(guān)的核心用例做快速回歸全量回歸則放到版本發(fā)布前執(zhí)行。這樣回答既說(shuō)清楚了概念又讓面試官看到你真的用過(guò)它。另一個(gè)容易考的點(diǎn)是測(cè)試用例的核心要素。不管你是寫(xiě)用例還是評(píng)價(jià)用例都要記住用例編號(hào)、用例名稱、前置條件、輸入數(shù)據(jù)、操作步驟、預(yù)期結(jié)果這六要素缺一不可。筆試?yán)锶绻竽阍O(shè)計(jì)測(cè)試用例光是逐條寫(xiě)出這六項(xiàng)就已經(jīng)能拿到不少基礎(chǔ)分了。2.2 測(cè)試用例設(shè)計(jì)等價(jià)類和邊界值是主力測(cè)試用例設(shè)計(jì)方法里筆試出現(xiàn)頻率最高的是等價(jià)類劃分和邊界值分析。原因很簡(jiǎn)單它們最實(shí)用也最能考察一個(gè)人的邏輯是否嚴(yán)密。所謂等價(jià)類就是把你認(rèn)為輸入后結(jié)果相同的一類數(shù)據(jù)歸到一起每個(gè)等價(jià)類里取一個(gè)代表數(shù)據(jù)來(lái)測(cè)試。而邊界值是在等價(jià)類的基礎(chǔ)上專門(mén)去測(cè)邊界附近的那些值因?yàn)榇罅縝ug都出在邊界上。舉個(gè)例子某個(gè)功能的年齡輸入框要求“18到60歲之間有效”用等價(jià)類劃分可以得到三個(gè)集合有效等價(jià)類“18到60”無(wú)效等價(jià)類“小于18”和“大于60”。但如果你只測(cè)這三個(gè)值還遠(yuǎn)遠(yuǎn)不夠。這時(shí)候要用邊界值分析測(cè)17、18、60、61這四個(gè)值再加上空值、非數(shù)字字符、負(fù)數(shù)、超長(zhǎng)數(shù)字。筆試?yán)锶绻茉谝粋€(gè)用例設(shè)計(jì)題里寫(xiě)出這些維度基本就能把分?jǐn)?shù)拿穩(wěn)。測(cè)試數(shù)據(jù)類型預(yù)期結(jié)果18有效邊界通過(guò)60有效邊界通過(guò)17無(wú)效邊界拒絕并提示年齡不合法61無(wú)效邊界拒絕并提示年齡不合法空值異常輸入提示年齡不能為空abc異常輸入提示年齡必須為數(shù)字除了等價(jià)類和邊界值場(chǎng)景法也值得重視。場(chǎng)景法強(qiáng)調(diào)的是“從用戶操作路徑出發(fā)”把一個(gè)完整業(yè)務(wù)流程串起來(lái)設(shè)計(jì)用例。比如“用戶搜索機(jī)票-選擇航班-填寫(xiě)乘客信息-支付-出票”這條主路徑要測(cè)每條路徑上分支出來(lái)的異常情況也要測(cè)。筆試?yán)锶绻皇橇闵⒌貙?xiě)幾條用例沒(méi)有按業(yè)務(wù)流程組織印象分會(huì)差很多。2.3 數(shù)據(jù)庫(kù)與Linux測(cè)試工程師的日常武器數(shù)據(jù)庫(kù)幾乎是測(cè)試方向筆試必考的內(nèi)容而且多半是給你一張或多張表讓你寫(xiě)SQL。重點(diǎn)包括帶條件的查詢、排序、分組、聚合函數(shù)、多表連接、去重。給你一個(gè)建議不要只背SQL語(yǔ)法要能說(shuō)清楚你寫(xiě)的SQL查出來(lái)的結(jié)果是什么。比如一個(gè)經(jīng)典問(wèn)題統(tǒng)計(jì)每個(gè)城市的訂單數(shù)量篩選出訂單數(shù)大于100的城市。你至少應(yīng)該能寫(xiě)出類似這樣的語(yǔ)句SELECT city, COUNT(*) AS order_cnt FROM orders GROUP BY city HAVING COUNT(*) 100;注意GROUP BY和HAVING的配合很多人會(huì)在這里寫(xiě)成WHERE這是筆試?yán)锖艹R?jiàn)的錯(cuò)誤。你要記住WHERE是用來(lái)在分組前過(guò)濾數(shù)據(jù)的HAVING才是用來(lái)過(guò)濾分組后結(jié)果的。答這種題的時(shí)候最好順便在注釋里寫(xiě)一句你的理解讓閱卷人看到你不是死記硬背。Linux命令也一樣不需要你掌握所有命令但高頻的那些必須熟練。我建議重點(diǎn)準(zhǔn)備tail、grep、awk、sed、find、ps、top、netstat、curl。比如“查看日志文件最后100行并過(guò)濾ERROR”一般人會(huì)寫(xiě)tail -100 app.log | grep ERROR這已經(jīng)很好了。但如果你能更進(jìn)一步用awk把錯(cuò)誤信息和時(shí)間字段提取出來(lái)在場(chǎng)景題里會(huì)非常加分。測(cè)試工程師每天的工作幾乎都離不開(kāi)查日志和查數(shù)據(jù)。筆試考Linux和SQL不是故意刁難你而是希望招進(jìn)來(lái)的人能直接上手干活。所以你在復(fù)習(xí)的時(shí)候不要光看最好自己搭個(gè)環(huán)境實(shí)際跑一遍命令和SQL印象會(huì)深刻很多。2.4 計(jì)算機(jī)網(wǎng)絡(luò)接口測(cè)試?yán)@不開(kāi)的基礎(chǔ)電腦網(wǎng)絡(luò)中HTTP相關(guān)的知識(shí)在測(cè)試筆試?yán)锟疾祛l率極高因?yàn)楫?dāng)前絕大多數(shù)業(yè)務(wù)都是前后端分離、通過(guò)接口通信。你需要掌握GET和POST的區(qū)別、常見(jiàn)HTTP狀態(tài)碼的含義、Cookie和Session的區(qū)別、HTTP與HTTPS的區(qū)別、TCP三次握手的基本過(guò)程。如果考到接口測(cè)試你要能說(shuō)出四個(gè)最基本的檢查點(diǎn)接口的返回狀態(tài)碼是否正確、返回?cái)?shù)據(jù)格式是否符合約定、關(guān)鍵字段的取值是否正確、異常輸入時(shí)接口是否返回了合理的錯(cuò)誤信息。如果時(shí)間允許還可以補(bǔ)充并發(fā)下的表現(xiàn)以及接口鑒權(quán)是否有漏洞。這里說(shuō)一個(gè)很多人忽略的點(diǎn)筆試?yán)锷婕熬W(wǎng)絡(luò)協(xié)議時(shí)不光是記結(jié)論還要會(huì)用生活化的例子解釋。比如Cookie相當(dāng)于你身上貼了一張寫(xiě)著會(huì)員編號(hào)的標(biāo)簽每次進(jìn)店服務(wù)員都看一眼就知道你是誰(shuí)Session則更像是你在店里辦了一張臨時(shí)卡卡里記錄著你的信息卡由店里保管。這樣解釋不僅自己能理解得更透面試時(shí)說(shuō)出來(lái)也更容易打動(dòng)面試官。3. 高頻題目實(shí)戰(zhàn)與思路復(fù)盤(pán)3.1 一個(gè)完整的測(cè)試用例設(shè)計(jì)題答題模板筆試?yán)镒畛R?jiàn)的簡(jiǎn)答題就是給你一個(gè)功能讓你設(shè)計(jì)測(cè)試用例。很多同學(xué)一看到這種題就開(kāi)始憑感覺(jué)列列出十幾條看起來(lái)很豐富其實(shí)沒(méi)有邏輯。我后來(lái)總結(jié)出一個(gè)相對(duì)穩(wěn)定的答題套路遇到這類題可以直接套。第一步明確被測(cè)對(duì)象。比如“酒店預(yù)訂功能”你要先界定范圍是從搜索酒店開(kāi)始還是從選定酒店、填寫(xiě)訂單開(kāi)始范圍不一樣用例的重點(diǎn)也不一樣。筆試?yán)锶绻}目沒(méi)寫(xiě)清楚建議在開(kāi)頭先寫(xiě)一句“假設(shè)該功能從選擇酒店、填寫(xiě)入住信息開(kāi)始”避免答偏。第二步拆解正常流程。按照用戶操作路徑把“選擇房型-填寫(xiě)入住人-選擇入住日期-提交訂單-支付-確認(rèn)預(yù)訂成功-收到確認(rèn)短信”這條主線寫(xiě)出來(lái)每步都至少有一條用例。正常流程用例不需要太多但一定要完整。第三步補(bǔ)全異常流程。包括入住日期早于當(dāng)天、離店日期早于入住日期、超過(guò)可預(yù)訂天數(shù)、房型已滿、入住人姓名包含特殊字符、支付超時(shí)、支付成功但訂單狀態(tài)沒(méi)更新等。異常流程是拉開(kāi)分?jǐn)?shù)差距的關(guān)鍵你考慮得越細(xì)越能體現(xiàn)測(cè)試思維。第四步補(bǔ)充非功能測(cè)試點(diǎn)。比如同時(shí)多個(gè)用戶預(yù)訂同一間房是否有超賣風(fēng)險(xiǎn)、弱網(wǎng)環(huán)境下提交訂單是否會(huì)重復(fù)下單、不同瀏覽器和手機(jī)型號(hào)下頁(yè)面是否正常。筆試?yán)锇堰@些寫(xiě)進(jìn)去通常能拿到額外分。最后用表格組織用例。每一條都要包含編號(hào)、名稱、前置條件、輸入步驟、預(yù)期結(jié)果。比如用例編號(hào)用例名稱前置條件輸入/步驟預(yù)期結(jié)果TC_HTL_001正常提交酒店訂單用戶已登錄目標(biāo)酒店有房選擇房型填寫(xiě)入住人點(diǎn)擊提交訂單訂單生成成功跳轉(zhuǎn)支付頁(yè)TC_HTL_002離店日期早于入住日期用戶已登錄選擇入住日期為10日離店日期為9日點(diǎn)擊查詢提示離店日期不能早于入住日期TC_HTL_003并發(fā)預(yù)訂同一房間目標(biāo)酒店僅剩1間房?jī)蓚€(gè)用戶同時(shí)提交該房間訂單只有一個(gè)用戶預(yù)訂成功另一用戶提示房間已滿這樣的答案層次清楚評(píng)分的人一眼就能看出你的思路比零散寫(xiě)幾十條用例要有效得多。3.2 場(chǎng)景題線上支付失敗怎么排查場(chǎng)景題是測(cè)試方向筆試?yán)镒钅芾_(kāi)差距的題型。它不是問(wèn)你“怎么測(cè)”而是拋給你一個(gè)線上問(wèn)題讓你說(shuō)出排查思路。典型問(wèn)題比如用戶反饋在App上下單后一直支付失敗請(qǐng)問(wèn)你怎么排查我推薦用“先定位影響范圍再分層排查”的思路來(lái)回答這也是我在實(shí)際工作中用的方式。第一步是復(fù)現(xiàn)并收集信息。不要上來(lái)就查代碼先問(wèn)清楚用戶用的什么手機(jī)型號(hào)和App版本是Wi-Fi還是流量支付失敗是彈出了什么錯(cuò)誤提示還是一直轉(zhuǎn)圈是只有這個(gè)用戶失敗還是有大量用戶都失敗這些問(wèn)題看起來(lái)瑣碎但能幫你快速縮小問(wèn)題范圍。第二步是快速判斷影響范圍。如果只有單一用戶失敗大概率是賬號(hào)、支付方式或本地緩存問(wèn)題如果是某個(gè)渠道的所有用戶失敗可能是支付渠道或后端服務(wù)出了問(wèn)題如果全站用戶都失敗那就是壓測(cè)、網(wǎng)絡(luò)或服務(wù)宕機(jī)級(jí)別的問(wèn)題了。第三步是分層排查。先看客戶端有沒(méi)有把請(qǐng)求發(fā)出去再看網(wǎng)絡(luò)層是否超時(shí)然后看后端接口的返回日志最后看數(shù)據(jù)庫(kù)里訂單狀態(tài)和支付流水。一個(gè)很經(jīng)典的現(xiàn)象是“用戶已經(jīng)支付成功但訂單仍顯示待支付”這種情況通常不是支付沒(méi)成功而是支付回調(diào)沒(méi)有正確更新訂單狀態(tài)。排查時(shí)先查訂單表再去查支付回調(diào)日志最后檢查回調(diào)接口是否做了冪等處理。第四步是給出回歸建議。問(wèn)題修復(fù)后不能只驗(yàn)證“支付成功”這一條主流程還要驗(yàn)證“重復(fù)回調(diào)”“回調(diào)延遲”“退款”“取消訂單”等關(guān)聯(lián)場(chǎng)景。筆試?yán)锬馨鸦貧w范圍說(shuō)清楚說(shuō)明你有閉環(huán)思維。我當(dāng)時(shí)在這類題上踩過(guò)的坑是把所有精力都放在“為什么會(huì)失敗”上沒(méi)有先說(shuō)明排查順序。面試官后來(lái)告訴我他要看的不是你能不能立刻找到根因而是你有沒(méi)有一套穩(wěn)定的排查方法。把順序講清楚比直接說(shuō)出正確答案更重要。3.3 編程題不追求花哨追求穩(wěn)定測(cè)試崗筆試的編程題難度通常不高但很多人在這里翻了車。原因不是不會(huì)寫(xiě)而是寫(xiě)得太隨意邊界條件全沒(méi)考慮。比如讓寫(xiě)一個(gè)“判斷字符串是否是回文”很多人的第一反應(yīng)是反轉(zhuǎn)字符串再比較這沒(méi)問(wèn)題但要注意空字符串、大小寫(xiě)、空格、標(biāo)點(diǎn)符號(hào)等情況。給你一個(gè)建議拿到編程題先花兩分鐘想清楚輸入邊界再開(kāi)始寫(xiě)代碼。代碼結(jié)構(gòu)最好清晰一點(diǎn)關(guān)鍵步驟加上注釋哪怕只是簡(jiǎn)單一句“這里先判空”也說(shuō)明你有工程意識(shí)。舉個(gè)簡(jiǎn)單的例子def is_palindrome(s): # 先處理空值和類型異常 if s is None: return False # 只保留字母和數(shù)字并轉(zhuǎn)小寫(xiě) cleaned .join(ch.lower() for ch in s if ch.isalnum()) return cleaned cleaned[::-1]這段代碼雖然簡(jiǎn)單但包含了判空、字符過(guò)濾、大小寫(xiě)歸一化三個(gè)邊界處理比直接return s s[::-1]要穩(wěn)妥得多。筆試?yán)锍R?jiàn)的編程題還有字符串反轉(zhuǎn)、數(shù)組去重、查找數(shù)組中的重復(fù)元素、判斷括號(hào)是否匹配等。我的建議是不要用太冷門(mén)的技巧用你能保證正確性的寫(xiě)法就好。畢竟測(cè)試崗考察的重點(diǎn)是你的代碼能不能被測(cè)試而不是你的算法有多炫。寫(xiě)完之后自己默默在心里跑兩個(gè)用例正常輸入和邊界輸入確認(rèn)沒(méi)問(wèn)題再交。4. 常見(jiàn)問(wèn)題與避坑經(jīng)驗(yàn)4.1 這些扣分點(diǎn)一秒鐘都不能忘我復(fù)盤(pán)過(guò)自己和身邊人的筆試答卷發(fā)現(xiàn)測(cè)試方向的失分點(diǎn)其實(shí)比較集中很多不是不會(huì)而是細(xì)節(jié)丟分。最典型的是用例設(shè)計(jì)題里只寫(xiě)操作步驟不寫(xiě)預(yù)期結(jié)果。你要知道沒(méi)有預(yù)期結(jié)果的用例別人根本沒(méi)法判斷是否通過(guò)這種基礎(chǔ)錯(cuò)誤在閱卷人眼里非常扎眼。第二個(gè)容易踩的坑是場(chǎng)景題只寫(xiě)結(jié)論不寫(xiě)過(guò)程。比如問(wèn)你“支付失敗怎么排查”有人直接寫(xiě)“可能是支付接口超時(shí)”這相當(dāng)于沒(méi)有回答。哪怕你的結(jié)論是對(duì)的閱卷人也看不到你的分析過(guò)程自然給不了高分。正確做法是把排查步驟一步一步列出來(lái)哪怕最后沒(méi)有找到根因過(guò)程完整也能拿到大部分分?jǐn)?shù)。第三個(gè)坑是編程題不檢查邊界條件。這一點(diǎn)前面已經(jīng)說(shuō)過(guò)但值得反復(fù)強(qiáng)調(diào)。還有的選擇題過(guò)于糾結(jié)一題卡了好幾分鐘導(dǎo)致后面的簡(jiǎn)答題和編程題時(shí)間不夠。筆試題量大不是要求你每道題都滿分而是要求你在有限時(shí)間內(nèi)拿到盡可能多的分該跳過(guò)的題就要果斷跳過(guò)。4.2 時(shí)間分配與臨場(chǎng)答題策略如果筆試總時(shí)長(zhǎng)是兩小時(shí)我建議按30分鐘做選擇題和填空題40分鐘做簡(jiǎn)答題40分鐘做編程題最后10分鐘檢查填空和選擇。場(chǎng)景題如果和簡(jiǎn)答混在一起可以根據(jù)分值靈活調(diào)整但一定要給編程題留足時(shí)間因?yàn)橐坏滥苓\(yùn)行的代碼題分值占比往往很高。答題順序上我習(xí)慣先做有把握的題再回頭對(duì)付難題。這樣做的目的很樸素先把能拿的分拿穩(wěn)再去沖不確定的分。如果一上來(lái)就被一道難題卡住后面的答題節(jié)奏很容易崩。簡(jiǎn)答題和場(chǎng)景題盡量用“分點(diǎn)”的方式作答。不需要寫(xiě)一大段話而是把思路拆成1、2、3、4條。閱卷人在一堆試卷里看到結(jié)構(gòu)清晰的答案好感度會(huì)明顯提高。我甚至建議你在動(dòng)筆前先把關(guān)鍵詞寫(xiě)在草稿紙上比如“邊界值、異常輸入、弱網(wǎng)、并發(fā)、冪等”然后圍繞關(guān)鍵詞展開(kāi)這樣不容易漏點(diǎn)。4.3 從筆試到面試怎么把答案變成談資筆試結(jié)束不是終點(diǎn)而是一輪更重要的復(fù)盤(pán)機(jī)會(huì)。我會(huì)在交卷后趁記憶還熱立刻把自己能回憶起來(lái)的題目整理一遍重點(diǎn)看兩類一類是答得很順的另一類是沒(méi)把握的。答得順的題目要想想能不能在面試?yán)镏鲃?dòng)展示沒(méi)把握的題目要第一時(shí)間查資料搞懂因?yàn)槊嬖嚬俸芸赡軙?huì)追問(wèn)。比如你筆試?yán)镌O(shè)計(jì)了一個(gè)“退款”功能的測(cè)試用例面試時(shí)就可以主動(dòng)說(shuō)“筆試?yán)镂抑攸c(diǎn)考慮了退款金額與訂單金額不一致、退款失敗后重試、重復(fù)點(diǎn)擊退款按鈕這三個(gè)場(chǎng)景后來(lái)我查資料發(fā)現(xiàn)退款回調(diào)的冪等性其實(shí)比我想的更復(fù)雜。”這段話一出來(lái)面試官會(huì)立刻覺(jué)得你有復(fù)盤(pán)能力而且愿意深挖問(wèn)題。再說(shuō)一個(gè)很多人不知道的點(diǎn)近幾年測(cè)試崗面試越來(lái)越關(guān)注你對(duì)AI測(cè)試工具的敏感度比如AI輔助生成測(cè)試用例、AI自動(dòng)定位缺陷、AI生成測(cè)試腳本等。即便是2019屆那場(chǎng)筆試當(dāng)時(shí)也已經(jīng)有少量涉及自動(dòng)化測(cè)試的題目。我的建議是在準(zhǔn)備筆試基礎(chǔ)的同時(shí)花點(diǎn)時(shí)間了解一下AI軟件測(cè)試的發(fā)展趨勢(shì)哪怕只是在簡(jiǎn)歷項(xiàng)目里提一句“用自動(dòng)化腳本替代了重復(fù)性回歸測(cè)試”也能讓你比同齡人多一個(gè)話題。最后再分享一個(gè)小經(jīng)驗(yàn)。筆試?yán)镉龅讲粫?huì)的題千萬(wàn)不要留白。選擇題可以結(jié)合排除法蒙一個(gè)簡(jiǎn)答題哪怕只寫(xiě)出幾個(gè)關(guān)鍵詞也能拿到一點(diǎn)步驟分。測(cè)試崗本身就是一個(gè)“面對(duì)不確定性問(wèn)題”的崗位你能在不會(huì)的情況下盡量給出一個(gè)合理的探索路徑這種行為本身就是測(cè)試思維的體現(xiàn)。把那場(chǎng)筆試當(dāng)成一次真實(shí)的問(wèn)題排查心態(tài)會(huì)穩(wěn)很多。