昨天輔導星球一位同學的終面,他提到了前兩輪技術面試中面試官問到的幾道面試題,他回答的不是特別好,問我有沒有更好的方法。我看了一下,都是很經典的測試崗位面試題。
在我近十年的測試職業生涯中,我也面試過不少軟體測試崗位的候選人,這幾個問題我也經常問到。但很多同學在這幾個高頻面試題上,其實並不太瞭解面試官提問背後的邏輯和目的。
這篇文章,聊聊這幾道經典面試題考查的目的,以及如何更好的回答這幾個問題。
1、說說最近做過的專案
這個問題考察的重點有如下幾項:
- 簡歷是否過度包裝(闡述的專案經驗和簡歷中的內容是否匹配)。
- 對參與過的專案是否足夠了解(業務流程、核心模組、技術架構)。
- 在專案中做了哪些事情,有哪些技術實踐(便於開展後續的提問)。
- 專案迭代情況,交付質量,遇到的問題,以及候選人如何解決這些問題。
2、你們的測試流程是什麼
這個問題看似簡單,其實很多同學在回答的時候容易犯流水賬式的回答錯誤。比較好的回答步驟如下:
- 說明測試流程的幾個核心部分(需求-編碼-測試-交付)。
- 說明專案迭代節奏和交付方式(敏捷交付/版本迭代火車)。
- 需求階段,開展需求分析評審,提前暴露潛在風險(邏輯/互動/數值計算),並及時與產品/業務溝通確認。
- 編碼階段,分析測試點,拆解測試任務,設計測試用例,測試用例評審(與研發保持認知一致),提測前冒煙。
- 測試階段,執行測試用例,跟蹤缺陷狀態,關注業務流/資料流的正確性(而非僅關注用例是否執行完畢),以及資損和異常場景的處理是否合理和優雅。
- 交付階段,檢查交付清單,組織變更評審(程式碼/配置/環境),準備並驗證應急方案的有效性。線上釋出後迴歸驗證以及線上日常巡檢。
回答這個問題的重點,要體現出測試崗位,作為QA這一質量保障和監督者在不同階段的工作重心,也可以藉此談談你對於質量保障這件事的理解。
3、談談印象最深刻的BUG
這個問題算是最為經典的一道測試崗位面試題,很多同學在這道問題上翻過車。這個問題考查的是候選人分析問題解決問題的能力,以及分析問題解決問題的思維邏輯。比較好的回答方式如下:
- 問題表現:什麼場景執行了什麼操作產生了什麼問題。
- 問題影響:對專案造成了什麼樣的影響(影響範圍、損失大小、嚴重程度)。
- 問題止損:如果是線上問題,則第一優先順序是業務止損,再談如何定位修復。
- 問題定位:依靠經驗和對專案的瞭解,判斷/猜測是哪裡出了什麼問題導致的。
- 尋找資料:透過監控、日誌等方式尋找相關資料來支撐你的判斷/猜測,確認問題根因。
- 問題修復:找到問題根因後,接著是描述解決問題的思路和解決問題所採用的方案和方法。
- 結論和Action:對問題定性,然後闡述後續的改進方向以及行動(技術最佳化/流程改進/應急預案)。
4、面對線上問題如何應對解決
這道面試題在我近十年的職業生涯中,也僅遇到過三次,不過這道題背後隱含的考察點不少。主要有如下幾點:
- 認知:線上問題才是真的質量問題,測試階段發現的問題只是過程,不是質量保障的目的。
- 方法:線上問題無法徹底避免和杜絕,因此需要一些應急手段和預案,比如灰度釋出、回滾、降級。
- 機制:出現線上問題,團隊的應急響應效率和應對措施(線上oncall,應急開關、備份方案、修復驗證)。
- 流程:出現線上問題,優先業務止血,然後才是分析覆盤改進落地。流程大致分為這幾個步驟:問題彙總-問題分類-抽象總結共性-覆盤如何改進-執行改進行動-闡述改進結果。
最後,分享幾個準備簡歷和回答面試問題的小技巧,僅供參考。
- 專業技能,如果沒有實戰經驗或僅停留在聽說過的層面,儘量不要寫,避免面試官提問回答不上來,反而會扣分。
- 技術實踐,會就是會,沒做過就是沒做過。面試官提問的問題大機率是他比較擅長的,幾個問題就可以判斷出候選人是否有實踐經驗。因此沒實踐可以講思路,沒思路可以講自己對這方面的瞭解和認知,或者與之有所關聯的案例。
- 有實踐經驗但沒有深入的話,老老實實講自己負責的部分是如何做的。同時可以擴充套件問題,講講如果擴大覆蓋範圍或者深入實踐,會遇到哪些問題(你聽說過或瞭解過的案例),並說明你會如何做,展現自己的主動學習能力和解決問題的思路,這樣有助於提升面試印象分。