試崗筆試真題拆解:2017秋招試卷考點(diǎn)與備考攻略)
考過華為測(cè)試崗的同學(xué)應(yīng)該都有這種感覺筆試刷人比面試還狠。2017年秋招那套測(cè)試工程師筆試試卷放在今天來看依然有很強(qiáng)的參考價(jià)值尤其是華為OD機(jī)試越卷越兇的當(dāng)下回頭拆解這套老題反而能看清華為招測(cè)試的核心邏輯。這篇文章不聊虛的直接把這套試卷的題型結(jié)構(gòu)、考察重點(diǎn)、答題思路全部拆開揉碎結(jié)合我自己備考時(shí)的經(jīng)驗(yàn)和踩過的坑給準(zhǔn)備投華為測(cè)試崗校招、OD都適用的同學(xué)一份能直接照著準(zhǔn)備的攻略。1. 2017年華為秋招測(cè)試筆試全景掃描——題型與考察邏輯1.1 試卷整體結(jié)構(gòu)與考察邏輯2017年華為秋招測(cè)試工程師的筆試卷整體結(jié)構(gòu)分四塊性格測(cè)試、技術(shù)客觀題、測(cè)試用例設(shè)計(jì)主觀題、編程題。考試時(shí)長(zhǎng)大概90到120分鐘采用的是??途W(wǎng)或者華為自研的在線測(cè)評(píng)系統(tǒng)全程攝像頭監(jiān)控切屏超過三次會(huì)直接警告并可能判定作弊。這里先說一個(gè)很多人忽略的點(diǎn)性格測(cè)試真的是會(huì)刷人的。華為的性格測(cè)試用的是類似九型人格的變種題庫(kù)前后會(huì)有重復(fù)題目的變相驗(yàn)證如果你前后答案矛盾太多系統(tǒng)會(huì)直接標(biāo)記。很多技術(shù)面表現(xiàn)不錯(cuò)的同學(xué)掛在性格測(cè)試上就是以為這環(huán)節(jié)隨便填填就行。我的建議是不要試圖“演”一個(gè)你以為是華為喜歡的形象前后一致性才是關(guān)鍵寧愿中庸一點(diǎn)也不要前后打臉。技術(shù)客觀題大概25到30道覆蓋C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、Linux基礎(chǔ)??疾祜L(fēng)格很“華為”偏底層、愛考內(nèi)存和指針、喜歡考查網(wǎng)絡(luò)協(xié)議細(xì)節(jié)。接下來我逐一拆解每個(gè)模塊的核心考點(diǎn)和答題思路。1.2 崗位方向決定復(fù)習(xí)側(cè)重點(diǎn)這里必須先說清楚華為測(cè)試工程師在筆試階段其實(shí)分兩條線——軟件測(cè)試和解決方案測(cè)試前身叫資料測(cè)試或產(chǎn)品測(cè)試。從2017年秋招的試卷風(fēng)格來看兩條線的題目都會(huì)出現(xiàn)在同一張卷子里但側(cè)重點(diǎn)有差異軟件測(cè)試崗更側(cè)重代碼能力和白盒測(cè)試思維編程題占比更大技術(shù)客觀題里C語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)的題更密集。解決方案測(cè)試崗更側(cè)重網(wǎng)絡(luò)協(xié)議、系統(tǒng)架構(gòu)理解和黑盒測(cè)試用例設(shè)計(jì)有點(diǎn)像今天華為數(shù)通方向測(cè)試的雛形客觀題里網(wǎng)絡(luò)協(xié)議的比重會(huì)明顯更高。雖然你投遞時(shí)只能選一個(gè)志愿但筆試系統(tǒng)里兩套題是混合出的。這也就是說如果你只準(zhǔn)備代碼不準(zhǔn)備網(wǎng)絡(luò)或者只背協(xié)議不看代碼都容易翻車。正確的備考姿勢(shì)是C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)三門都要過硬操作系統(tǒng)和數(shù)據(jù)庫(kù)至少掌握基礎(chǔ)測(cè)試?yán)碚摫仨毷炀殹?. 技術(shù)客觀題深度拆解——C語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)與網(wǎng)絡(luò)協(xié)議2.1 C語(yǔ)言與內(nèi)存管理指針、數(shù)組、結(jié)構(gòu)體對(duì)齊華為筆試的C語(yǔ)言題目向來以“看著簡(jiǎn)單、做著就錯(cuò)”著稱。2017年試卷里有幾道非常典型的題今天再看依然是高頻考點(diǎn)結(jié)構(gòu)體字節(jié)對(duì)齊是必考題。很多考生上來就計(jì)算sizeof(struct)結(jié)果答錯(cuò)。核心規(guī)則是結(jié)構(gòu)體的總大小必須是最大成員對(duì)齊數(shù)的整數(shù)倍每個(gè)成員的起始偏移量必須是該成員對(duì)齊數(shù)的整數(shù)倍。舉個(gè)例子struct test { char a; // 偏移0占1字節(jié) int b; // 對(duì)齊數(shù)4偏移從4開始占4字節(jié) char c; // 偏移8占1字節(jié) }; // 最大對(duì)齊數(shù)4總大小9對(duì)齊到4的倍數(shù)所以是12字節(jié)這道題如果沒掌握“偏移量對(duì)齊”和“總大小是最大對(duì)齊數(shù)的整數(shù)倍”這兩條規(guī)則很容易算成9或者10。華為的考試系統(tǒng)對(duì)這類題不會(huì)給任何提示純靠平時(shí)積累。指針與數(shù)組的混用也是高頻考點(diǎn)尤其是sizeof和strlen的區(qū)別char *p hello; char arr[] hello; // sizeof(p)是864位系統(tǒng)sizeof(arr)是6包含\0 // strlen(p)是5strlen(arr)是5華為特別愛在這里面設(shè)陷阱。你在紙上練習(xí)時(shí)一定要養(yǎng)成先區(qū)分“指針”和“數(shù)組”的習(xí)慣——指針是地址變量數(shù)組是連續(xù)內(nèi)存塊二者在sizeof下的語(yǔ)義完全不同。函數(shù)參數(shù)傳遞是第三個(gè)高頻點(diǎn)??碱}經(jīng)常出現(xiàn)類似“寫一個(gè)swap函數(shù)交換兩個(gè)int問下面哪個(gè)實(shí)現(xiàn)正確”的題目。正確答案必須是傳指針或者傳引用傳值必然失敗。華為這道題還會(huì)升級(jí)到“二級(jí)指針交換指針本身”的考法我建議把一級(jí)指針、二級(jí)指針、指針引用這三種交換方式全部寫一遍筆試時(shí)才能秒殺。2.2 數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)排序、鏈表、二叉樹這一板塊的難度不高但范圍很廣。2017年試卷里出現(xiàn)的題目集中在三類排序算法的時(shí)間復(fù)雜度和穩(wěn)定性對(duì)比。這個(gè)幾乎年年考。舉個(gè)例子快排平均O(n log n)、最壞O(n2)不穩(wěn)定歸并排序始終O(n log n)穩(wěn)定但需要額外O(n)空間堆排序O(n log n)不穩(wěn)定插入排序O(n2)穩(wěn)定。我建議你自己整理一張表把冒泡、選擇、插入、希爾、歸并、快排、堆排這七種排序的“時(shí)間復(fù)雜度-空間復(fù)雜度-穩(wěn)定性”全都背下來考試時(shí)直接調(diào)用不現(xiàn)場(chǎng)推導(dǎo)。鏈表操作重點(diǎn)考反轉(zhuǎn)鏈表和判斷是否有環(huán)。反轉(zhuǎn)鏈表是華為筆試編程題的高頻題客觀題里也經(jīng)常出現(xiàn)讓你選擇“給定代碼段的輸出結(jié)果”這類題。判斷鏈表是否有環(huán)可以用快慢指針兩個(gè)指針?biāo)俣炔钜槐度绻嘤鰟t有環(huán)。這個(gè)思路理解后不光筆試能用面試手撕代碼同樣會(huì)考。二叉樹遍歷重點(diǎn)掌握前序、中序、后序、層序四種遍歷的遞歸和迭代寫法以及“已知中序前序或后序推二叉樹”這類經(jīng)典題。華為2017年就在客觀題里出了一道“給前序和中序求后序”的題本質(zhì)是考遞歸劃分左右子樹的能力。建議在草稿紙上多畫幾個(gè)例子把推導(dǎo)過程練熟。2.3 計(jì)算網(wǎng)絡(luò)TCP/IP協(xié)議棧、HTTP與路由交換基礎(chǔ)這里要特別提一下華為測(cè)試工程師筆試的計(jì)算機(jī)網(wǎng)絡(luò)題帶著濃濃的“華為味”——不考純理論背誦而是考協(xié)議交互細(xì)節(jié)和故障排查。TCP三次握手和四次揮手是必考題但考法非常深。比如為什么TIME_WAIT狀態(tài)要等2MSL如果客戶端主動(dòng)關(guān)閉連接后直接進(jìn)入CLOSED狀態(tài)會(huì)有什么后果這類題直接對(duì)應(yīng)了后面的場(chǎng)景題和面試中的壓力提問如果你只是背了“三次握手、四次揮手”這幾個(gè)字基本拿不到分。HTTP協(xié)議也是??汀?017年那次考了GET和POST的區(qū)別、HTTP/1.0和HTTP/1.1的keep-alive、狀態(tài)碼的語(yǔ)義——尤其要記清楚301和302的區(qū)別301是永久重定向302是臨時(shí)重定向。今天如果讓我給點(diǎn)建議最好把HTTP/2和HTTPS握手流程也一起準(zhǔn)備了華為測(cè)試崗現(xiàn)在考這些的概率很大。路由交換基礎(chǔ)是華為特有的考察點(diǎn)。像“交換機(jī)端口鏡像配置”“華為三層交換機(jī)VLAN間路由”“華為防火墻HRP實(shí)驗(yàn)”這些熱詞對(duì)應(yīng)的知識(shí)點(diǎn)在2017年試卷里就已經(jīng)露出苗頭會(huì)考到IP地址子網(wǎng)劃分、靜態(tài)路由和默認(rèn)路由的區(qū)別、VLAN的作用這類基礎(chǔ)題。如果你有數(shù)通基礎(chǔ)這塊拿分很容易如果沒有建議你用華為ensp模擬器把VLAN劃分、交換機(jī)端口鏡像、靜態(tài)路由、默認(rèn)路由這幾個(gè)實(shí)驗(yàn)做一遍大概花兩個(gè)晚上就能建立完整的認(rèn)知。2.4 操作系統(tǒng)與數(shù)據(jù)庫(kù)、Linux基礎(chǔ)操作系統(tǒng)考點(diǎn)集中在進(jìn)程與線程的區(qū)別、死鎖產(chǎn)生的四個(gè)必要條件互斥、持有并等待、非搶占、循環(huán)等待、虛擬內(nèi)存與分頁(yè)機(jī)制。這些計(jì)算機(jī)基礎(chǔ)題目難度不高但是考察范圍廣需要你把概念名詞搞清楚就行。數(shù)據(jù)庫(kù)主要考SQL基本語(yǔ)法、索引的原理和左連接/內(nèi)連接的區(qū)別。特別是left join和inner join的區(qū)別一定要能用一句話說清楚內(nèi)連接只返回兩張表中匹配的行左連接返回左表所有行再加上右表匹配的行沒有匹配的補(bǔ)NULL。這道題在筆試?yán)飵缀跏撬头诸}但每年都有不少人丟分。Linux基礎(chǔ)題??嫉氖俏募?quán)限數(shù)字表示法chmod 755、644的含義、常用命令ls、cd、grep、ps、top、netstat等、管道符和重定向。今天的華為OD機(jī)試和面試?yán)镞@一塊依然是基本盤尤其是容器化時(shí)代如果連查看日志的tail -f和grep組合都不會(huì)連系統(tǒng)測(cè)試都跑不動(dòng)。3. 測(cè)試?yán)碚撆c用例設(shè)計(jì)主觀題——拉開差距的關(guān)鍵3.1 測(cè)試?yán)碚摶A(chǔ)從V模型到測(cè)試金字塔2017年試卷的主觀題非常直接給你一個(gè)功能或模塊讓你寫測(cè)試用例。但這背后考察的不只是“會(huì)寫用例”而是你對(duì)測(cè)試?yán)碚擉w系的掌握。首先要搞清楚幾組基礎(chǔ)概念黑盒測(cè)試和白盒測(cè)試的區(qū)別、單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試驗(yàn)收測(cè)試的區(qū)別、回歸測(cè)試和冒煙測(cè)試的應(yīng)用場(chǎng)景。這些是基本功不解釋清楚的話用例設(shè)計(jì)題寫得再漂亮也會(huì)顯得根基不牢。V模型和W模型的區(qū)別也是華為愛考的點(diǎn)。V模型把開發(fā)和測(cè)試對(duì)應(yīng)起來需求分析對(duì)應(yīng)驗(yàn)收測(cè)試、概要設(shè)計(jì)對(duì)應(yīng)系統(tǒng)測(cè)試、詳細(xì)設(shè)計(jì)對(duì)應(yīng)集成測(cè)試、編碼對(duì)應(yīng)單元測(cè)試。W模型則是開發(fā)和測(cè)試并行推進(jìn)強(qiáng)調(diào)測(cè)試文檔的同步產(chǎn)出。華為的測(cè)試項(xiàng)目流程更接近W模型因?yàn)闇y(cè)試人員需要在設(shè)計(jì)階段就介入提前輸出測(cè)試方案。測(cè)試金字塔這套理論在2017年可能還不是顯學(xué)但現(xiàn)在面試必問。核心思想是底層單元測(cè)試數(shù)量最多、成本最低中間層服務(wù)測(cè)試次之最上層端到端測(cè)試數(shù)量最少、成本最高。如果你在筆試或面試中能主動(dòng)提到測(cè)試金字塔并解釋清楚為什么單元測(cè)試性價(jià)比最高面試官對(duì)你的印象會(huì)明顯加分。3.2 經(jīng)典用例設(shè)計(jì)題從“會(huì)寫”到“寫得專業(yè)”這塊是整個(gè)試卷里最能體現(xiàn)“測(cè)試思維”的部分。2017年最經(jīng)典的一道主觀題是“請(qǐng)針對(duì)華為手機(jī)的‘計(jì)算器’設(shè)計(jì)測(cè)試用例”。這題看起來很簡(jiǎn)單但能拉開差距。初級(jí)回答是列出“112、9×981”這樣零散的功能點(diǎn)高級(jí)回答應(yīng)該是有層次、有方法地組織用例。我當(dāng)時(shí)整理了這樣一個(gè)答題框架功能測(cè)試基本四則運(yùn)算加減乘除含正數(shù)、負(fù)數(shù)、小數(shù)、0優(yōu)先級(jí)12×3應(yīng)該等于7而不是9連續(xù)運(yùn)算按了等于號(hào)后繼續(xù)按運(yùn)算符是否正常邊界值最大支持多少位數(shù)字超出后是報(bào)錯(cuò)還是截?cái)嗵厥獍存IC清空、CE清除當(dāng)前輸入、退格鍵的邏輯是否區(qū)分異常輸入連續(xù)按小數(shù)點(diǎn)會(huì)怎樣除以0是什么表現(xiàn)界面與交互測(cè)試橫豎屏切換后計(jì)算歷史和當(dāng)前輸入是否保留字體大小變化后布局是否錯(cuò)亂系統(tǒng)深色模式下顯示是否正常中斷與并發(fā)測(cè)試計(jì)算過程中來電、來短信再切回計(jì)算器狀態(tài)是否保留后臺(tái)運(yùn)行很久后恢復(fù)是否崩潰或數(shù)據(jù)丟失分屏模式下計(jì)算器能否正常工作兼容性測(cè)試Android和iOS各版本、不同分辨率屏幕下的表現(xiàn)這個(gè)框架的核心在于用邊界值分析法、等價(jià)類劃分法、場(chǎng)景法、中斷測(cè)試、兼容性測(cè)試這些方法論去組織用例而不是零散地羅列功能點(diǎn)。華為筆試的評(píng)分標(biāo)準(zhǔn)看重的是你能不能證明自己“懂測(cè)試”而不是“用過計(jì)算器”。3.3 測(cè)試用例設(shè)計(jì)核心方法論速查這一節(jié)寫給時(shí)間緊的同學(xué)。用例設(shè)計(jì)一定要掌握幾個(gè)核心方法考試前可以過一遍等價(jià)類劃分法是最基礎(chǔ)的方法。把輸入域劃分成若干個(gè)等價(jià)類認(rèn)為每個(gè)等價(jià)類中的數(shù)據(jù)對(duì)測(cè)試來說“等效”只需要取一個(gè)代表值。比如手機(jī)號(hào)輸入框有效等價(jià)類是11位數(shù)字無效等價(jià)類是少于11位、多于11位、包含非數(shù)字字符、為空等。筆試中很多用例設(shè)計(jì)題都可以用這種方法快速列出有效類和無效類兩種用例。邊界值分析法是華為筆試的必考點(diǎn)。大量缺陷都發(fā)生在邊界附近所以邊界值分析往往比等價(jià)類劃分更能發(fā)現(xiàn)bug。比如登錄密碼長(zhǎng)度要求6-16位那么1、5、6、16、17位都是必須測(cè)試的邊界值。筆試中如果考到輸入框、參數(shù)校驗(yàn)類題目使用等價(jià)類加邊界值是黃金組合。**場(chǎng)景法或叫業(yè)務(wù)流分析法**則適合流程較長(zhǎng)的功能。從用戶開始操作到操作結(jié)束的完整流程視為一個(gè)場(chǎng)景覆蓋基本流和備選流。拿電商下單來說基本流是“瀏覽商品-加入購(gòu)物車-提交訂單-支付-完成”備選流是“庫(kù)存不足-支付超時(shí)-取消訂單”等。場(chǎng)景法能系統(tǒng)性地覆蓋業(yè)務(wù)流程中的分支適合考“設(shè)計(jì)一個(gè)購(gòu)物流程的測(cè)試用例”這類題。判定表法用于多條件組合的輸入場(chǎng)景。比如測(cè)試一個(gè)登錄模塊條件有“用戶名正確/錯(cuò)誤”“密碼正確/錯(cuò)誤”“驗(yàn)證碼正確/錯(cuò)誤”組合很多用判定表可以列全所有組合情況并確定期望結(jié)果。這種方法是求職者最容易忽略的但筆試中偶爾會(huì)考到組合條件較復(fù)雜的模塊掌握它會(huì)讓你的答案看起來更專業(yè)。錯(cuò)誤推測(cè)法則依賴經(jīng)驗(yàn)根據(jù)過往項(xiàng)目的缺陷數(shù)據(jù)來猜測(cè)哪些地方容易出問題。這個(gè)方法在筆試中可以作為補(bǔ)充但別作為主要框架。綜合來說我的建議是看到用例設(shè)計(jì)題先在草稿紙上定方法論再按方法論展開比想到哪寫到哪強(qiáng)得多。4. 編程題與場(chǎng)景題——從筆試到面試的銜接4.1 編程題核心是手速和代碼規(guī)范2017年華為秋招測(cè)試崗的編程題通常是兩道一道簡(jiǎn)單題類似鏈表反轉(zhuǎn)、字符串反轉(zhuǎn)、一道中等題類似最長(zhǎng)公共子串、數(shù)組兩數(shù)之和的變體??荚嚟h(huán)境是核心代碼模式你只需要寫出核心函數(shù)不用處理輸入輸出。華為的編程題有幾個(gè)特點(diǎn)值得特別注意語(yǔ)言要選擇你最有把握的C/C/Java都可以代碼要寫注釋關(guān)鍵步驟要有清晰的命名因?yàn)楹笈_(tái)是機(jī)器判分人工復(fù)查邊界條件一定要判斷比如空鏈表、空字符串、數(shù)組越界這些是扣分重災(zāi)區(qū)。舉例說明鏈表面試題中反轉(zhuǎn)鏈表是最常見的。很多同學(xué)背了迭代版本但手撕時(shí)容易在循環(huán)條件上出錯(cuò)。正確寫法是struct ListNode* reverseList(struct ListNode* head) { struct ListNode* prev NULL; struct ListNode* curr head; while (curr ! NULL) { struct ListNode* nextTemp curr-next; curr-next prev; prev curr; curr nextTemp; } return prev; }這類代碼一定要練到閉著眼睛能寫出來筆試的時(shí)間很緊容不得現(xiàn)場(chǎng)推導(dǎo)。另外要注意華為OD機(jī)試包括2017年周期的校招在線筆試采用的是雙機(jī)位監(jiān)控電腦攝像頭拍臉手機(jī)攝像頭拍桌面這是硬性要求。我見過有同學(xué)因?yàn)槭謾C(jī)攝像頭沒對(duì)準(zhǔn)桌面被判定作弊成績(jī)直接作廢非??上???荚嚽耙欢ㄒ獓?yán)格按照郵件里的“環(huán)境測(cè)試”流程走一遍別在設(shè)備問題上翻車。4.2 場(chǎng)景題測(cè)試思維的最佳載體場(chǎng)景題是我覺得整套試卷里含金量最高的部分。它不是客觀題也不是普通的編程題而是給你一個(gè)實(shí)際場(chǎng)景讓你分析怎么測(cè)。2017年試卷里有一道印象深刻的場(chǎng)景題題目大意是華為路由器管理頁(yè)面新增了一個(gè)“恢復(fù)出廠設(shè)置”按鈕請(qǐng)分析這個(gè)功能可能出現(xiàn)的故障并設(shè)計(jì)測(cè)試方案。這類題目你要充分站在用戶的視角和使用環(huán)境去思考而不是只盯著功能本身。比如結(jié)合華為路由器現(xiàn)在的產(chǎn)品特點(diǎn)支持華為智能家居App管理、支持WLAN組網(wǎng)、支持遠(yuǎn)程管理這道題可以擴(kuò)展成很多層級(jí)功能測(cè)試層面恢復(fù)出廠設(shè)置后之前配置的WiFi名稱、密碼、上網(wǎng)賬號(hào)是否都被清除管理頁(yè)面的登錄密碼是否恢復(fù)成默認(rèn)值異常場(chǎng)景層面恢復(fù)過程中斷電會(huì)怎樣會(huì)不會(huì)變磚恢復(fù)失敗時(shí)有沒有提示恢復(fù)過程中用戶點(diǎn)擊其他頁(yè)面會(huì)不會(huì)導(dǎo)致異常關(guān)聯(lián)功能層面恢復(fù)后設(shè)備還能不能自動(dòng)連接到華為智能家居App如果用戶之前開啟了遠(yuǎn)程管理恢復(fù)后遠(yuǎn)程管理是否關(guān)閉如果家里有多個(gè)華為路由器組了Mesh華為的WLAN組網(wǎng)方案恢復(fù)一個(gè)后整個(gè)網(wǎng)絡(luò)會(huì)不會(huì)癱瘓安全性層面恢復(fù)出廠設(shè)置前是否需要二次確認(rèn)如果設(shè)備被惡意恢復(fù)是否有什么防護(hù)機(jī)制兼容性層面不同型號(hào)的路由器、不同版本的固件下恢復(fù)邏輯是否一致性能層面恢復(fù)過程耗時(shí)多少會(huì)不會(huì)出現(xiàn)長(zhǎng)時(shí)間卡頓但界面沒有提示的情況這類題目其實(shí)是在考察你有沒有完整的“測(cè)試思維鏈”能夠從功能、異常、關(guān)聯(lián)、安全、兼容、性能多個(gè)維度去評(píng)估一個(gè)功能。準(zhǔn)備這類題時(shí)最有效的方法是養(yǎng)成“凡事多想一步”的習(xí)慣看到一個(gè)功能先問自己幾個(gè)問題——用戶會(huì)怎么操作、誤操作會(huì)怎樣、極端情況下會(huì)怎樣、和其他模塊有沒有依賴長(zhǎng)期練習(xí)后這類題就不難了。4.3 華為OD機(jī)試與2017年筆試試卷的關(guān)聯(lián)我知道“華為OD機(jī)試”是現(xiàn)在搜索熱度很高的關(guān)鍵詞。坦白說今天華為OD的機(jī)試難度已經(jīng)比2017年的校招筆試題復(fù)雜不少尤其加入了算法考點(diǎn)、雙機(jī)位C卷、中間代碼手撕等但基礎(chǔ)考點(diǎn)邏輯是繼承的。從考試維度看OD機(jī)試現(xiàn)在的典型考法集中在數(shù)組與字符串處理、動(dòng)態(tài)規(guī)劃、深度優(yōu)先/廣度優(yōu)先搜索、貪心、鏈表、二叉樹。這些和2017年試卷考察的數(shù)據(jù)結(jié)構(gòu)、算法基礎(chǔ)完全是同一條線。把當(dāng)年的客觀題當(dāng)“預(yù)習(xí)”把現(xiàn)在的OD題庫(kù)當(dāng)“練習(xí)”是挺合理的遞進(jìn)路線。從測(cè)試角度也要注意一個(gè)變化隨著自動(dòng)化測(cè)試和AI輔助測(cè)試的比重加大現(xiàn)在華為測(cè)試崗的筆試和面試開始涉及“AI測(cè)試工程師”相關(guān)的內(nèi)容了。比如如何用模型輔助生成測(cè)試用例、如何對(duì)AI模型本身做評(píng)測(cè)、測(cè)試數(shù)據(jù)集的構(gòu)建與標(biāo)注質(zhì)量如何保障。這一點(diǎn)2017年的試卷里完全沒有但對(duì)現(xiàn)在的求職者來說是需要額外準(zhǔn)備的。我的建議是優(yōu)先把傳統(tǒng)測(cè)試基礎(chǔ)打牢再了解一些AIGC在測(cè)試中的應(yīng)用場(chǎng)景不做無根之木。5. 備考路線與常見失分點(diǎn)——過來人的避坑經(jīng)驗(yàn)5.1 從零開始的三階段備考路線第一階段基礎(chǔ)夯實(shí)約2-3周這個(gè)階段的目標(biāo)是把客觀題考點(diǎn)全部過一遍。C語(yǔ)言重點(diǎn)練指針、數(shù)組、結(jié)構(gòu)體、內(nèi)存管理數(shù)據(jù)結(jié)構(gòu)重點(diǎn)練鏈表、棧、隊(duì)列、二叉樹和常用排序計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)練TCP/IP協(xié)議棧、HTTP協(xié)議和基礎(chǔ)路由交換知識(shí)操作系統(tǒng)和數(shù)據(jù)庫(kù)按考點(diǎn)清單快速過。這個(gè)階段不需要刷題量很大但要求每個(gè)知識(shí)點(diǎn)都能用自己的話講明白。我當(dāng)時(shí)給自己定的標(biāo)準(zhǔn)是如果一道題讓我現(xiàn)場(chǎng)講給同學(xué)聽我能講明白就算過關(guān)。第二階段專項(xiàng)突破約2-3周主攻測(cè)試?yán)碚摗⒂美O(shè)計(jì)和編程題。測(cè)試?yán)碚摪裋模型、W模型、測(cè)試金字塔、等價(jià)類劃分、邊界值分析、場(chǎng)景法、判定表法這些方法論全部吃透。用例設(shè)計(jì)每天練兩道題素材可以選常見的功能模塊——登錄、計(jì)算器、購(gòu)物車、文件上傳、搜索框、支付流程等用方法論組織答案。編程題用LeetCode或??途W(wǎng)刷題主攻“高頻面試題清單”不追求難題但追求一題多解和代碼規(guī)范。第三階段模擬沖刺約1-2周嚴(yán)格按照考試時(shí)間做整套模擬題重點(diǎn)是訓(xùn)練時(shí)間分配和心態(tài)。建議使用OJ系統(tǒng)練習(xí)提前適應(yīng)在線編程的代碼編輯器和判題邏輯。另外一定要做一次完整的“環(huán)境模擬考試”——把攝像頭擺好、把手機(jī)支架弄好、把桌面清空模擬雙機(jī)位環(huán)境走一遍流程別等到正式考試才發(fā)現(xiàn)設(shè)備問題。5.2 常見失分點(diǎn)整理建議收藏根據(jù)我自己的做題經(jīng)歷和周圍上岸同事的反饋華為測(cè)試崗筆試最常見的丟分點(diǎn)可以匯總成一張表失分點(diǎn)原因分析解決方案性格測(cè)試答案前后矛盾想“演”出企業(yè)喜歡的形象導(dǎo)致前后不一致按真實(shí)想法作答保持一致性結(jié)構(gòu)體sizeof計(jì)算錯(cuò)誤沒掌握對(duì)齊規(guī)則專項(xiàng)練習(xí)結(jié)構(gòu)體對(duì)齊題直到能心算指針和數(shù)組混淆基礎(chǔ)知識(shí)不扎實(shí)把sizeof和strlen的區(qū)別練成條件反射TCP狀態(tài)轉(zhuǎn)移記不牢死記硬背沒理解狀態(tài)意義畫狀態(tài)轉(zhuǎn)移圖結(jié)合抓包理解HTTP狀態(tài)碼只記了200和404復(fù)習(xí)不全面把1xx到5xx常見狀態(tài)碼全部過一遍用例設(shè)計(jì)沒有方法論支撐零散羅列功能點(diǎn)每個(gè)用例都標(biāo)注用到了什么測(cè)試方法編程題循環(huán)邊界寫錯(cuò)手速不夠缺乏練習(xí)高頻題每天手寫一遍直到閉眼能寫場(chǎng)景題只答功能測(cè)試沒考慮到異常、安全、兼容性用“功能-異常-關(guān)聯(lián)-安全-性能”框架思考SQL左連接和內(nèi)連接混淆概念理解不透徹用一個(gè)具體例子跑一遍直觀感受區(qū)別代碼不寫注釋認(rèn)為OJ只看結(jié)果華為人工復(fù)查代碼注釋是加分項(xiàng)5.3 答題順序與時(shí)間分配的心得最后聊一個(gè)實(shí)操層面的技巧答題順序。華為測(cè)試崗筆試的時(shí)間其實(shí)偏緊我個(gè)人的經(jīng)驗(yàn)是先做性格測(cè)試10分鐘再做技術(shù)客觀題40分鐘然后做主觀題和場(chǎng)景題30分鐘最后留20分鐘左右給編程題。理由很現(xiàn)實(shí)客觀題如果你知識(shí)儲(chǔ)備到位做題速度可以很快先快速拿分主觀題需要組織語(yǔ)言但不用跑代碼中等時(shí)間投入編程題最費(fèi)時(shí)間且變量最大放在最后如果來不及至少能保證前面的大頭分?jǐn)?shù)不丟。也許有人習(xí)慣先寫編程題但考慮到編程題即使做出來了也只是其中一小部分分值如果客觀題和主觀題的分?jǐn)?shù)丟了反而得不償失。這個(gè)順序是我親身試過之后覺得最穩(wěn)定的。編程題如果卡住了超過15分鐘沒思路就先跳過去做后面的主觀題最后再回來補(bǔ)。因?yàn)楣P試判分是看總分的不是看有沒有全做完把能拿的分穩(wěn)穩(wěn)拿住更重要。寫在最后這套試卷給我的真正啟發(fā)回頭看2017年這套試卷給我最大的感觸是華為招測(cè)試工程師要的不是刷題機(jī)器而是具備系統(tǒng)性測(cè)試思維、扎實(shí)的計(jì)算機(jī)基礎(chǔ)、能夠看懂代碼并設(shè)計(jì)有效測(cè)試方案的人。那套題里客觀題考的是“你有沒有計(jì)算機(jī)功底”主觀題考的是“你有沒有測(cè)試思維”編程題考的是“你能不能和開發(fā)對(duì)話”。不管是當(dāng)年的校招筆試還是現(xiàn)在的OD機(jī)試這個(gè)底層邏輯其實(shí)一直沒有變過。如果你能在準(zhǔn)備過程中真正把計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)這些基礎(chǔ)學(xué)扎實(shí)同時(shí)練出用方法論寫測(cè)試用例的習(xí)慣那么這套試卷對(duì)你來說就不只是“上岸工具”而是一次系統(tǒng)性的能力提升。希望大家都能順利通過筆試拿到心儀的offer。