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