試面試高頻考點(diǎn)全解析:從用例設(shè)計(jì)到工具鏈)
作為面試官我招過(guò)上百個(gè)測(cè)試說(shuō)實(shí)話現(xiàn)在市面上的“軟件測(cè)試面試八股文”資料我基本都看過(guò)絕大多數(shù)都是一份清單式的答案堆砌。今天這篇整理我不打算給你羅列一百道題的標(biāo)準(zhǔn)答案而是把最近幾年我在面試中真正高頻問(wèn)到的核心考點(diǎn)、背后的考察邏輯、以及候選人最容易被問(wèn)倒的細(xì)節(jié)掰開(kāi)揉碎了講一遍。如果你是正在準(zhǔn)備跳槽的功能測(cè)試、剛轉(zhuǎn)行測(cè)試的初級(jí)工程師或者打算沖擊測(cè)開(kāi)崗位但基礎(chǔ)不牢的同學(xué)這篇文章應(yīng)該能幫你省下不少瞎背題的時(shí)間。內(nèi)容會(huì)覆蓋基礎(chǔ)理論、用例設(shè)計(jì)、項(xiàng)目經(jīng)驗(yàn)包裝、工具鏈、以及HR面談薪這幾個(gè)核心模塊每個(gè)模塊都會(huì)給到具體的話術(shù)思路和踩坑提醒。1. 軟件測(cè)試基礎(chǔ)理論高頻考點(diǎn)這部分是八股文的重災(zāi)區(qū)也是面試官用來(lái)快速判斷你“到底是不是科班出身”或者“有沒(méi)有系統(tǒng)學(xué)習(xí)過(guò)”的分水嶺。我面試的時(shí)候基礎(chǔ)理論題基本必問(wèn)但問(wèn)法通常很活。1.1 測(cè)試生命周期別只會(huì)背V模型得說(shuō)清楚每個(gè)階段在干嘛軟件測(cè)試的生命周期或者說(shuō)測(cè)試流程幾乎每個(gè)人都背得出來(lái)“需求分析、測(cè)試計(jì)劃、用例設(shè)計(jì)、用例執(zhí)行、缺陷跟蹤、測(cè)試報(bào)告”這幾步。但面試官真正想聽(tīng)的是你在具體項(xiàng)目里是怎么把這些步驟落地的。比如需求分析這一段很多候選人只會(huì)說(shuō)“我們開(kāi)需求評(píng)審會(huì)”但如果你能補(bǔ)充說(shuō)“在評(píng)審會(huì)上我主要關(guān)注需求里的隱含邊界比如金額字段有沒(méi)有精度限制、狀態(tài)流轉(zhuǎn)的異常分支有沒(méi)有定義遇到不明確的地方我會(huì)在評(píng)審記錄里標(biāo)注出來(lái)會(huì)后找產(chǎn)品經(jīng)理單獨(dú)確認(rèn)然后把確認(rèn)結(jié)果補(bǔ)充到測(cè)試用例里”這就完全不一樣了。這體現(xiàn)的是你對(duì)“需求分析”這個(gè)環(huán)節(jié)的深度理解而不只是走流程。再比如準(zhǔn)入準(zhǔn)出標(biāo)準(zhǔn)這是我在面試中特別喜歡追問(wèn)的點(diǎn)。一個(gè)合格的測(cè)試工程師應(yīng)該知道不是所有bug都必須修復(fù)完才能上線。準(zhǔn)出標(biāo)準(zhǔn)至少要包含遺留缺陷的風(fēng)險(xiǎn)評(píng)估、核心路徑的自動(dòng)化回歸通過(guò)率、以及性能測(cè)試結(jié)果是否符合預(yù)期。如果你能說(shuō)出“我們項(xiàng)目的準(zhǔn)出標(biāo)準(zhǔn)是P0/P1級(jí)別缺陷清零P2級(jí)別缺陷經(jīng)過(guò)產(chǎn)品確認(rèn)可以遺留并記錄在版本說(shuō)明中”我會(huì)認(rèn)為你真的經(jīng)歷過(guò)完整的項(xiàng)目迭代。1.2 測(cè)試金字塔與測(cè)試分類為什么單元測(cè)試最重要卻最容易被忽視測(cè)試金字塔這個(gè)概念接口測(cè)試占中間、UI自動(dòng)化測(cè)試在塔尖、單元測(cè)試在塔基。面試官問(wèn)這個(gè)問(wèn)題的動(dòng)機(jī)是想看看你有沒(méi)有全局的測(cè)試策略意識(shí)。我見(jiàn)過(guò)太多候選人把重點(diǎn)放在UI自動(dòng)化上張口就是Selenium、Appium。但你仔細(xì)想U(xiǎn)I自動(dòng)化腳本維護(hù)成本是最高的頁(yè)面稍微改個(gè)class就全掛了。真正高質(zhì)量的測(cè)試體系精力應(yīng)該大部分投入在單元測(cè)試和接口測(cè)試上。這個(gè)問(wèn)題我會(huì)建議你這樣答先說(shuō)出金字塔的三層結(jié)構(gòu)然后結(jié)合業(yè)務(wù)舉例。比如你做過(guò)一個(gè)電商下單功能最底層用JUnit寫代碼層面的測(cè)試來(lái)驗(yàn)證庫(kù)存扣減邏輯中間層用Postman或者代碼調(diào)用接口驗(yàn)證下單接口在異常入?yún)⑾碌姆祷刂底钌蠈硬庞肧elenium驗(yàn)證整個(gè)下單流程的UI表現(xiàn)是否能正確跳轉(zhuǎn)到支付頁(yè)面。這樣一層層下來(lái)既能快速定位問(wèn)題回歸成本也低。這里順便提一個(gè)容易踩的坑很多面試官會(huì)追問(wèn)“為什么單元測(cè)試發(fā)現(xiàn)bug的成本最低”。你需要答出因?yàn)閱卧獪y(cè)試是在代碼層面的最小粒度驗(yàn)證這時(shí)候發(fā)現(xiàn)問(wèn)題只需要在本地直接排查不需要經(jīng)過(guò)部署環(huán)境、構(gòu)造數(shù)據(jù)這些繁瑣步驟。越往上層走問(wèn)題定位路徑就越長(zhǎng)修復(fù)成本也成倍增加。1.3 黑盒白盒灰盒的本質(zhì)區(qū)別你的測(cè)試視角和代碼能力決定崗位天花板黑盒測(cè)試和白盒測(cè)試的區(qū)別純新手可能會(huì)把“白盒是看代碼、黑盒是看界面”這種話掛在嘴邊。但面試官想聽(tīng)的是你對(duì)測(cè)試視角切換的理解。黑盒測(cè)試的核心邏輯是把被測(cè)系統(tǒng)當(dāng)成一個(gè)不透明的整體通過(guò)輸入輸出來(lái)驗(yàn)證行為是否符合需求。它考驗(yàn)的是你的邏輯思維能力和需求理解能力比較經(jīng)典的測(cè)試設(shè)計(jì)方法是邊界值分析比如一個(gè)密碼輸入框要求6到16位你就需要測(cè)5位、6位、16位、17位這幾組數(shù)據(jù)。白盒測(cè)試則要求你能直接閱讀代碼了解哪些分支沒(méi)有被覆蓋到。這里會(huì)涉及語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋這幾個(gè)粒度。面試官如果追問(wèn)“這些覆蓋策略各自的特點(diǎn)”你最好能舉一個(gè)小例子比如一段if (a 1 b 3)的代碼語(yǔ)句覆蓋只需要讓整個(gè)if條件成立走進(jìn)分支里一次就夠了但判定覆蓋要求if條件為true和false的各跑一遍而條件覆蓋則要求a 1為true/false、b 3為true/false都分別出現(xiàn)。聊到這個(gè)層面面試官通常就能判斷出你不是只會(huì)點(diǎn)鼠標(biāo)是具備代碼思維的。至于灰盒測(cè)試多用于接口測(cè)試和集成測(cè)試介于黑白之間。你了解內(nèi)部數(shù)據(jù)結(jié)構(gòu)但不通過(guò)代碼路徑來(lái)設(shè)計(jì)用例而是通過(guò)接口輸入輸出來(lái)驗(yàn)證。這個(gè)只需要簡(jiǎn)單帶一句即可不必展開(kāi)太多。2. 用例設(shè)計(jì)與缺陷管理經(jīng)驗(yàn)的分水嶺用例設(shè)計(jì)是面試中占分最重的一塊因?yàn)樗苯臃从衬愕臏y(cè)試思維。很多初級(jí)工程師能說(shuō)出等價(jià)類、邊界值這些概念但一到實(shí)際場(chǎng)景就不知道該怎么組合使用這部分的差距要靠刻意練習(xí)來(lái)彌補(bǔ)。2.1 等價(jià)類與邊界值哪個(gè)先劃分哪個(gè)后補(bǔ)充順序搞反了容易漏測(cè)等價(jià)類劃分和邊界值分析是面試中最基礎(chǔ)的組合拳。等價(jià)類的目的是把無(wú)限多的輸入數(shù)據(jù)歸類成有限個(gè)類別每個(gè)類別中選一個(gè)代表數(shù)據(jù)去測(cè)試即可。先說(shuō)“有效等價(jià)類”和“無(wú)效等價(jià)類”這個(gè)一定要分清楚無(wú)效等價(jià)類是設(shè)計(jì)負(fù)面用例的關(guān)鍵。邊界值分析其實(shí)是對(duì)等價(jià)類的一種補(bǔ)充和修正。因?yàn)榇罅康娜毕萃性谶吔绺浇皇窃谟行^(qū)域的中間。一個(gè)典型的例子是打分系統(tǒng)要求輸入0到100的分?jǐn)?shù)等價(jià)類劃分出來(lái)是有效類0到100、無(wú)效類小于0、無(wú)效類大于100,而邊界值分析則會(huì)讓你關(guān)注0和100這兩個(gè)邊界本身以及-1和101這兩個(gè)剛越過(guò)邊界的值。在實(shí)際項(xiàng)目里我習(xí)慣先劃等價(jià)類再用邊界值去補(bǔ)邊界用例最后再用錯(cuò)誤推測(cè)法補(bǔ)幾條憑經(jīng)驗(yàn)容易出錯(cuò)的數(shù)據(jù)。面試中遇到一道用例設(shè)計(jì)題時(shí)按照這個(gè)順序講邏輯就非常清晰。比如給你一個(gè)登錄頁(yè)面你可以說(shuō)首先用戶名密碼都非空是有效等價(jià)類用戶名密碼為空是無(wú)效等價(jià)類針對(duì)密碼長(zhǎng)度要求8到20位我補(bǔ)充7位和21位的邊界用例最后根據(jù)歷史經(jīng)驗(yàn)我會(huì)補(bǔ)充一些包含特殊字符的密碼用例。2.2 場(chǎng)景法與流程分析從“點(diǎn)功能”升級(jí)為“走流程”現(xiàn)在很多產(chǎn)品都是復(fù)雜的業(yè)務(wù)流程型系統(tǒng)比如電商下單、審批流、銀行轉(zhuǎn)賬。單純用等價(jià)類和邊界值去拆解單個(gè)輸入框是覆蓋不了業(yè)務(wù)流轉(zhuǎn)過(guò)程中存在的問(wèn)題的。場(chǎng)景法基于事件觸發(fā)機(jī)制核心思想是分析業(yè)務(wù)的基本流和備選流。以電商下單為例基本流是“瀏覽商品-加入購(gòu)物車-提交訂單-支付成功-生成訂單”備選流可能包括“庫(kù)存不足時(shí)無(wú)法提交”、“支付超時(shí)自動(dòng)取消訂單”、“優(yōu)惠券過(guò)期導(dǎo)致無(wú)法抵扣”等。你把這些流轉(zhuǎn)路徑一條條拉出來(lái)每條路徑設(shè)計(jì)一個(gè)主用例然后再在每個(gè)節(jié)點(diǎn)上疊加等價(jià)類和邊界值用例的完整性就能得到大幅提升。面試官問(wèn)場(chǎng)景法相關(guān)問(wèn)題時(shí)你不需要講得特別玄學(xué)重點(diǎn)是要體現(xiàn)“我理解業(yè)務(wù)是由一條條鏈路構(gòu)成的”??梢皂槺闾岬皆谧隽鞒填悳y(cè)試時(shí)最好先畫一張核心業(yè)務(wù)流程圖把自己當(dāng)成用戶從頭到尾走一遍走的過(guò)程中記錄每一個(gè)分支節(jié)點(diǎn)然后再針對(duì)分支去設(shè)計(jì)用例。這個(gè)習(xí)慣說(shuō)出來(lái)面試官會(huì)覺(jué)得你是帶有全局思考的。2.3 缺陷生命周期與管理工具從提交到關(guān)閉每個(gè)狀態(tài)的流轉(zhuǎn)都要有依據(jù)缺陷管理這塊背得出狀態(tài)節(jié)點(diǎn)只是及格線。New新建、Open打開(kāi)、Fixed修復(fù)、Closed關(guān)閉、Reopen重新打開(kāi)這幾個(gè)狀態(tài)是基礎(chǔ)但面試官會(huì)深挖的是“你會(huì)怎么判斷一個(gè)bug該Reopen還是該延期”。這里有一個(gè)比較重要的點(diǎn)不是所有bug都值得立即修復(fù)也不是產(chǎn)品說(shuō)不修你就非得一直跟到底。我的經(jīng)驗(yàn)是遇到bug先自己確認(rèn)是否是有效缺陷排除環(huán)境因素和操作方式導(dǎo)致的誤報(bào)然后做好優(yōu)先級(jí)分級(jí)。P0級(jí)是阻止上線的問(wèn)題比如支付功能完全不可用P1級(jí)是核心功能有嚴(yán)重缺陷但有規(guī)避路徑P2級(jí)是普通功能有問(wèn)題不影響主流程P3級(jí)是體驗(yàn)類小瑕疵。當(dāng)我們判斷一個(gè)P2缺陷在當(dāng)個(gè)迭代無(wú)法修復(fù)時(shí)正確的做法是推動(dòng)產(chǎn)品確認(rèn)風(fēng)險(xiǎn)等級(jí)并寫進(jìn)版本說(shuō)明中由測(cè)試方簽字確認(rèn)。另外在日常溝通中最好能對(duì)缺陷做歸類前端問(wèn)題、后端問(wèn)題、數(shù)據(jù)問(wèn)題、需求理解偏差。這樣你在提bug的時(shí)候開(kāi)發(fā)才能快速定位到具體模塊而不是拿著描述到處猜。這種習(xí)慣寫在簡(jiǎn)歷上就四個(gè)字溝通成本。面試官一眼就能看出你平時(shí)的工作習(xí)慣。3. 項(xiàng)目經(jīng)驗(yàn)與軟技能追問(wèn)這一關(guān)最刷人說(shuō)實(shí)話基礎(chǔ)理論題答得再好都只能證明你背過(guò)書。真正能拉開(kāi)差距的是在項(xiàng)目經(jīng)驗(yàn)環(huán)節(jié)因?yàn)檫@里考驗(yàn)的是你有沒(méi)有真正思考過(guò)自己做過(guò)的事情。很多人掛在二面問(wèn)題通常就出在這。3.1 STAR原則包裝項(xiàng)目不要只說(shuō)你測(cè)了什么要說(shuō)出你怎么測(cè)、為什么這么測(cè)STAR原則是面試中的萬(wàn)能公式但真正用好的候選人真的不多。S是情境T是任務(wù)A是行動(dòng)R是結(jié)果。很多候選人在描述項(xiàng)目的時(shí)候只會(huì)說(shuō)“我在某某系統(tǒng)里負(fù)責(zé)訂單模塊的測(cè)試”然后就停機(jī)了。更好的表達(dá)方式是情境是項(xiàng)目剛啟動(dòng)只有一個(gè)月的排期但需求被改了三版再提測(cè)任務(wù)是保證核心交易鏈路在有限時(shí)間內(nèi)零缺陷上線行動(dòng)是你重新梳理了需求變更點(diǎn)把變動(dòng)影響的功能篩選出來(lái)做重點(diǎn)回歸同時(shí)設(shè)計(jì)了一套基于接口層的冒煙測(cè)試腳本每次提測(cè)后十分鐘內(nèi)就能跑完主流程結(jié)果是在規(guī)定的上線日期前P1以上的缺陷全部清零上線后沒(méi)有出現(xiàn)一例重大線上問(wèn)題。我面試的時(shí)候聽(tīng)到這種回答一般會(huì)繼續(xù)追問(wèn)為什么你選擇用接口層冒煙而不是UI層如果你能答出“接口層更穩(wěn)定且執(zhí)行速度快UI層的腳本在這種短周期項(xiàng)目里沒(méi)有時(shí)間維護(hù)”面試通過(guò)率就會(huì)直線上升。3.2 主觀題與場(chǎng)景題被說(shuō)“這個(gè)bug復(fù)現(xiàn)不了”時(shí)怎么應(yīng)對(duì)場(chǎng)景題是測(cè)試面試中非常靈活的一類面試官會(huì)丟給你一個(gè)實(shí)際工作中的突發(fā)狀況問(wèn)你怎么辦。這類題沒(méi)有標(biāo)準(zhǔn)答案考察的是思維方式和溝通能力。最經(jīng)典的一個(gè)是開(kāi)發(fā)拒絕承認(rèn)你提的bug說(shuō)在你這邊復(fù)現(xiàn)不了。如果你回答“我給他錄視頻把操作步驟日志發(fā)給他”這只能算及格。更好的方式是先自己排查復(fù)現(xiàn)條件是否穩(wěn)定包括前置數(shù)據(jù)是否完整、網(wǎng)絡(luò)環(huán)境是否是弱網(wǎng)、用的是哪個(gè)版本代碼。確認(rèn)穩(wěn)定復(fù)現(xiàn)之后再去開(kāi)發(fā)那邊推動(dòng)排查甚至可以把接口的入?yún)⒑头祷刂荡蛴〕鰜?lái)證明數(shù)據(jù)已經(jīng)走到哪一層。再比如問(wèn)你“測(cè)試時(shí)間不夠怎么辦”。如果你只會(huì)說(shuō)“加班加點(diǎn)多測(cè)一些”說(shuō)明你缺乏項(xiàng)目管理意識(shí)。正確的思路是評(píng)估風(fēng)險(xiǎn)縮短非核心模塊的回歸范圍核心鏈路自動(dòng)化腳本優(yōu)先跑同時(shí)把風(fēng)險(xiǎn)同步給項(xiàng)目經(jīng)理和產(chǎn)品讓他們決策是砍需求還是延遲上線。測(cè)試不是來(lái)保證質(zhì)量的測(cè)試是通過(guò)暴露風(fēng)險(xiǎn)讓團(tuán)隊(duì)共同決策。這句話如果你能理解到位場(chǎng)景題基本都能應(yīng)答自如。3.3 手撕測(cè)試用例面試官到底想從你的用例里看到什么手寫測(cè)試用例是面試中的經(jīng)典環(huán)節(jié)面試官會(huì)給一個(gè)功能比如登錄、支付、搜索、購(gòu)物車讓你在十分鐘內(nèi)寫出測(cè)試用例的覆蓋點(diǎn)。這里他更多的不是看你要寫多少條而是看你的思維是否有層次。我建議你按照功能測(cè)試、界面測(cè)試、易用性測(cè)試、兼容性測(cè)試、安全性測(cè)試、性能測(cè)試這幾個(gè)維度去組織答案。以登錄功能為例功能上要覆蓋正確用戶名密碼登錄成功、錯(cuò)誤密碼提示、空用戶名提示、密碼大小寫敏感驗(yàn)證界面上看文案是否清晰、無(wú)錯(cuò)別字易用性上看回車能否快捷登錄兼容性上覆蓋Chrome、Safari、以及不同的手機(jī)分辨率安全上要防止SQL注入密碼輸入框不能明文顯示性能上要覆蓋多用戶同時(shí)登錄時(shí)接口響應(yīng)時(shí)間。如果你能以這種結(jié)構(gòu)化的方式來(lái)回答面試官基本能確定你到了團(tuán)隊(duì)以后不需要太費(fèi)心培養(yǎng)因?yàn)槟阌凶约旱臏y(cè)試思路不是想到哪測(cè)到哪。4. 測(cè)試工具與框架知識(shí)功能測(cè)試到測(cè)開(kāi)的分水嶺工具題在面試中出現(xiàn)的頻率取決于你面的崗位級(jí)別。如果是初級(jí)功能測(cè)試只要掌握基本的抓包和缺陷管理工具就夠了如果是測(cè)開(kāi)崗位那工具鏈的深度就是決定性因素了。我見(jiàn)過(guò)很多候選人簡(jiǎn)歷上寫著“熟練使用Selenium、熟悉Jmeter、會(huì)用Postman”結(jié)果一問(wèn)細(xì)節(jié)就含糊其辭。所以這塊要么不寫寫了就要做到能接得住追問(wèn)。4.1 接口測(cè)試與抓包從Postman到Charles的日常高效用法接口測(cè)試現(xiàn)在是功能測(cè)試的基本功Postman和Apifox這類工具幾乎是標(biāo)配。面試時(shí)很少直接問(wèn)你“請(qǐng)說(shuō)出Postman的三個(gè)功能”而會(huì)給你一個(gè)接口文檔讓你現(xiàn)場(chǎng)設(shè)計(jì)測(cè)試用例。給你一個(gè)安全類接口需要考慮的是鑒權(quán)失敗返回什么、參數(shù)缺失返回什么、參數(shù)類型傳錯(cuò)返回什么、傳入超長(zhǎng)字符串會(huì)不會(huì)報(bào)錯(cuò)、重復(fù)提交是否有冪等處理。這其實(shí)就是把之前講的黑盒方法論的思路遷移到了接口層。另外一個(gè)常被問(wèn)到的工具是Charles或者Fiddler用于抓包和斷點(diǎn)調(diào)試。面試官會(huì)問(wèn)“弱網(wǎng)環(huán)境怎么模擬”你應(yīng)該能說(shuō)出Charles里可以通過(guò)Throttle Settings設(shè)置帶寬和延遲比如設(shè)置3G網(wǎng)絡(luò)300ms的延遲來(lái)模擬弱網(wǎng)場(chǎng)景下App的請(qǐng)求超時(shí)表現(xiàn)。這里補(bǔ)充一個(gè)我個(gè)人工作中的經(jīng)驗(yàn)接口測(cè)試用例盡量在開(kāi)發(fā)提測(cè)之前就去了解接口文檔在功能測(cè)試執(zhí)行之前先把接口層的冒煙用例跑通一遍。這樣等UI層面可以操作時(shí)你心里已經(jīng)對(duì)后端邏輯有了數(shù)執(zhí)行功能測(cè)試時(shí)定位問(wèn)題會(huì)快很多。4.2 自動(dòng)化測(cè)試框架Web端Selenium和移動(dòng)端Appium的核心細(xì)節(jié)自動(dòng)化這塊是簡(jiǎn)歷中的重頭戲。很多候選人會(huì)寫“熟練使用Selenium”但如果面試官追問(wèn)“Selenium的工作原理是什么”答不上來(lái)的人非常多。Selenium是基于WebDriver協(xié)議實(shí)現(xiàn)的簡(jiǎn)單說(shuō)就是通過(guò)瀏覽器驅(qū)動(dòng)來(lái)調(diào)用瀏覽器的原生API從而模擬用戶操作。面試時(shí)你不需要把源碼背下來(lái)但至少要說(shuō)清楚測(cè)試腳本通過(guò)HTTP請(qǐng)求把操作指令發(fā)給瀏覽器驅(qū)動(dòng)驅(qū)動(dòng)再把指令轉(zhuǎn)化為瀏覽器的原生調(diào)用并執(zhí)行最后把執(zhí)行結(jié)果返回給腳本。能夠說(shuō)出這個(gè)鏈路說(shuō)明你真的理解它而不是只會(huì)打開(kāi)頁(yè)面點(diǎn)幾下。對(duì)于Appium常見(jiàn)追問(wèn)是它和Selenium的關(guān)系。Appium也是擴(kuò)展了WebDriver協(xié)議但針對(duì)移動(dòng)端增加了一些會(huì)話能力和移動(dòng)手勢(shì)操作比如滑動(dòng)、點(diǎn)擊坐標(biāo)、切換原生和WebView。如果你的經(jīng)驗(yàn)集中在移動(dòng)端自動(dòng)化建議了解一下Desired Capabilities里幾個(gè)關(guān)鍵配置項(xiàng)比如platformName、appPackage、appActivity。在自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)的講解中最好帶上你的框架設(shè)計(jì)思路。比如你在用POM設(shè)計(jì)模式把每個(gè)頁(yè)面封裝成一個(gè)類把頁(yè)面上的元素定位與操作分離開(kāi)說(shuō)這樣設(shè)計(jì)是為了降低維護(hù)成本因?yàn)轫?yè)面上元素變化只影響一個(gè)類。這個(gè)點(diǎn)一出來(lái)面試官會(huì)非常認(rèn)可因?yàn)檫@是真正在實(shí)戰(zhàn)中遇到問(wèn)題后才會(huì)有的思考。4.3 性能測(cè)試與持續(xù)集成不會(huì)代碼也能玩轉(zhuǎn)的基本節(jié)奏性能測(cè)試在面試中常被問(wèn)到核心概念和基本流程。如果你沒(méi)有做過(guò)大型性能測(cè)試不用硬裝但基礎(chǔ)的指標(biāo)一定要能說(shuō)清楚并發(fā)用戶數(shù)、TPS每秒事務(wù)數(shù)、響應(yīng)時(shí)間、錯(cuò)誤率、CPU和內(nèi)存占用率。面試沒(méi)過(guò)或者準(zhǔn)備轉(zhuǎn)崗的同學(xué)我建議可以自己在本地搭一個(gè)簡(jiǎn)單的JMeter壓測(cè)環(huán)境目標(biāo)就是一個(gè)登錄接口用100個(gè)線程并發(fā)跑一分鐘觀察聚合報(bào)告里的TPS、平均響應(yīng)時(shí)間和錯(cuò)誤率。自己跑一遍你才能真正理解這幾個(gè)指標(biāo)之間的關(guān)系而不是背概念。持續(xù)集成這塊是測(cè)開(kāi)面試中很關(guān)鍵的一環(huán)。Jenkins作為CI工具你需要能說(shuō)出流水線的基本過(guò)程代碼提交后自動(dòng)觸發(fā)構(gòu)建構(gòu)建成功后就自動(dòng)執(zhí)行自動(dòng)化測(cè)試腳本腳本跑完自動(dòng)生成測(cè)試報(bào)告并推送給相關(guān)人。我這里提醒一個(gè)容易被追問(wèn)的點(diǎn)失敗的時(shí)候怎么處理。你可以說(shuō)通過(guò)在Jenkins里配置郵件通知和失敗后自動(dòng)重跑機(jī)制來(lái)處理不穩(wěn)定用例。5. 談薪與HR面前面辛苦拿到的技術(shù)面優(yōu)勢(shì)別在這里敗掉技術(shù)面通過(guò)之后很多候選人容易掉以輕心覺(jué)得HR面就是隨便聊聊。實(shí)際上技術(shù)面決定了你拿不拿得到offerHR面決定了你拿到的offer是15K還是18K。這一環(huán)節(jié)的踩坑往往非??上?。5.1 薪資談判的合理話術(shù)不裸報(bào)期望也不坐地起價(jià)HR問(wèn)“你的期望薪資是多少”時(shí)不建議直接給出一個(gè)具體數(shù)字或區(qū)間。更好的表達(dá)方式是說(shuō)我目前了解市場(chǎng)上這個(gè)崗位的薪資范圍大概在15K到20K之間結(jié)合我目前的工作經(jīng)驗(yàn)和面試的表現(xiàn)我期望是18K左右。這樣既展示了你的行情了解度又沒(méi)有把價(jià)格報(bào)得沒(méi)邊。如果你的期望薪資比公司預(yù)算低HR不會(huì)主動(dòng)給你提高到上限如果你的期望薪資過(guò)高可能會(huì)直接導(dǎo)致offer審批被卡。所以談薪前一定要多渠道了解目標(biāo)公司的薪資區(qū)間比如通過(guò)招聘APP的崗位薪資范圍、脈脈上的分享。如果你一直在同一家公司三五年沒(méi)跳過(guò)槽薪資和市場(chǎng)價(jià)出現(xiàn)嚴(yán)重倒掛是常態(tài)這種情況下建議給自己設(shè)定一個(gè)底線和一個(gè)理想值只要不低于底線都值得認(rèn)真考慮。5.2 HR追問(wèn)離職原因只說(shuō)客觀不吐槽前東家離職原因這道題是最容易暴露情商的地方。不管真實(shí)原因是什么千萬(wàn)不要當(dāng)著HR的面吐槽前公司加班多、領(lǐng)導(dǎo)不行、制度不好哪怕這些都是事實(shí)。你可以說(shuō)在上一家公司積累了不少測(cè)試實(shí)踐經(jīng)驗(yàn)尤其是接口測(cè)試和自動(dòng)化方向但目前參與的項(xiàng)目類型相對(duì)單一希望下一份工作能接觸到更復(fù)雜的業(yè)務(wù)場(chǎng)景和更規(guī)范的質(zhì)量保障體系所以在看新的機(jī)會(huì)。這套說(shuō)辭客觀正面既說(shuō)明了離職的真實(shí)訴求又給HR留下了積極向上的印象。如果你是因?yàn)榧影嗵嚯x職的也不建議直說(shuō)??梢哉f(shuō)希望找一份項(xiàng)目節(jié)奏更穩(wěn)定、更有長(zhǎng)期規(guī)劃的工作。記住一個(gè)核心原則HR面試永遠(yuǎn)在評(píng)估你這個(gè)人是否好合作、是否穩(wěn)定、是否會(huì)給團(tuán)隊(duì)帶來(lái)風(fēng)險(xiǎn)。任何看起來(lái)容易出問(wèn)題的話都不要說(shuō)。5.3 業(yè)余時(shí)間和學(xué)習(xí)能力怎么展示這句話對(duì)晉升和漲薪都有幫助HR和技術(shù)面都常問(wèn)一個(gè)問(wèn)題工作之外你平時(shí)會(huì)學(xué)習(xí)哪些東西來(lái)提升自己如果你回答“我平時(shí)比較忙沒(méi)有太多時(shí)間學(xué)習(xí)”基本等于主動(dòng)放棄進(jìn)階機(jī)會(huì)。我建議哪怕你平時(shí)真的學(xué)得不多也至少挑一兩個(gè)點(diǎn)來(lái)認(rèn)真說(shuō)。比如你最近在系統(tǒng)地看接口自動(dòng)化相關(guān)的框架源碼正在嘗試在本地搭一套微服務(wù)環(huán)境來(lái)練習(xí)接口測(cè)試。關(guān)鍵是你提到的事情一定要經(jīng)得起追問(wèn)比如說(shuō)自己“最近在讀《深入理解Java虛擬機(jī)》”結(jié)果連JVM內(nèi)存區(qū)域有哪幾塊都答不上來(lái)效果反而比不說(shuō)更差。學(xué)習(xí)能力這塊我多說(shuō)兩句測(cè)試這個(gè)行業(yè)技術(shù)迭代很快三年前會(huì)一個(gè)Selenium就能找到不錯(cuò)的工作現(xiàn)在測(cè)開(kāi)崗位都要求會(huì)接口自動(dòng)化、性能測(cè)試、持續(xù)集成一套鏈路了。所以哪怕你現(xiàn)在還在做純功能測(cè)試也建議每天抽半小時(shí)看看源碼或者寫點(diǎn)小腳本。不為面試 就為了自己后續(xù)能走得更長(zhǎng)遠(yuǎn)。6. 補(bǔ)充幾個(gè)容易拉開(kāi)差距的加分項(xiàng)除了上面講的核心知識(shí)體系還有幾個(gè)點(diǎn)如果你在面試中能自然帶出來(lái)會(huì)讓面試官覺(jué)得眼前一亮。一個(gè)是代碼能力。現(xiàn)在不太推薦完全不懂代碼的人轉(zhuǎn)行測(cè)試了至少要學(xué)會(huì)Python或者Java的基礎(chǔ)語(yǔ)法和常見(jiàn)數(shù)據(jù)結(jié)構(gòu)哪怕只是能做到用腳本寫一個(gè)小工具自動(dòng)造測(cè)試數(shù)據(jù)也算具備了一定的測(cè)開(kāi)潛力。面試的時(shí)候可以主動(dòng)提一句“我平時(shí)會(huì)用Python寫一些小腳本處理測(cè)試數(shù)據(jù)”雖然簡(jiǎn)單但很多人做不到。另一個(gè)是對(duì)持續(xù)學(xué)習(xí)的表達(dá)。不管面的是什么崗位都可以聊聊自己對(duì)AI輔助測(cè)試、云原生測(cè)試這類新方向的了解。哪怕知識(shí)量有限至少在方向上要讓對(duì)方覺(jué)得你關(guān)注行業(yè)趨勢(shì)沒(méi)有困在舊經(jīng)驗(yàn)里。這一點(diǎn)對(duì)高年限候選人更加重要。最后再補(bǔ)一個(gè)很多人容易忽略的細(xì)節(jié)面試時(shí)主動(dòng)向面試官提問(wèn)問(wèn)你關(guān)心的幾個(gè)問(wèn)題其實(shí)非常加分。比如“團(tuán)隊(duì)目前使用的自動(dòng)化測(cè)試框架是什么”“最近半年質(zhì)量保障方面最大的挑戰(zhàn)是什么”。這些問(wèn)題說(shuō)明你不是只關(guān)心薪資和加班你是在認(rèn)真考慮如何在這個(gè)團(tuán)隊(duì)里做出成績(jī)。一個(gè)會(huì)提問(wèn)題的候選人入職之后通常也更有主動(dòng)性。我做了這么多年面試官也自己經(jīng)歷過(guò)從功能測(cè)試到測(cè)試開(kāi)發(fā)的整個(gè)成長(zhǎng)過(guò)程最大的感觸是八股文本身不是目的它只是幫你快速補(bǔ)齊知識(shí)盲區(qū)的索引。真正決定你能不能通過(guò)面試、能不能在行業(yè)里走得更長(zhǎng)遠(yuǎn)的是你是否愿意持續(xù)深挖每一個(gè)工具背后的原理是否愿意在每次項(xiàng)目結(jié)束后復(fù)盤一下自己在質(zhì)量保障上的思考。如果你能把背下來(lái)的知識(shí)點(diǎn)真正用在一個(gè)自己的練習(xí)項(xiàng)目上哪怕是一個(gè)非常簡(jiǎn)單的個(gè)人博客系統(tǒng)你的面試表現(xiàn)也會(huì)比很多人強(qiáng)出一大截。希望這篇整理能幫你少走一些彎路。