從面試官的角度談測試工程師面試

找工作,找更好的工作,永遠是職場人士特別是互聯網這個人才流動性巨大行業的永恆話題。
提到找工作,則又離不開對於面試的探討。

網上存在着諸多面試相關的文章攻略,不過站在面試官角度談面試的卻很少。
本文就站在面試官的角度,談一談一個面試是怎麼組織的,有哪些技巧和思路,希望幫到開始接觸招聘任務的測試管理人員,同時也從另一個角度幫助求職人員應對面試。

1、常見招聘流程
一個測試團隊的組建過程是怎樣一個鏈路,或者說一個測試人員是怎麼被招聘進團隊的呢。
一般來說,整體上要經歷以下的步驟:

  1. 確定人員需求
  2. 多渠道發佈招聘需求
  3. 簡歷篩選確定候選
  4. 複數輪次筆試面試
  5. 簽約意向確定
  6. 入職

對於測試管理人員(面試官)而言,在談面試之前,首先要說說人員需求的確定。對人員的不同需求註定着我們面試中用到的思路和考察點不太一樣,當然面試官要提前確定不能泛泛而論。


總結了幾個問題,在發佈招聘需求或者開始參加面試之前,試着回答一下:

  • 預期人才招入後,從事團隊什麼樣的,哪部分工作
  • 我需要的是招之即用的人才,還是潛力股,還是解決技術難題的大牛
  • 具體而言,預期人才應該具備哪些技術能力或者潛力
  • 預期人才應該擁有怎樣的核心競爭力
  • 人員預算是多少
  • 預期多久要到崗
  • 通過哪種渠道來招聘

這些問題思考清楚以後,就可以產生我們耳熟能詳的JD技能要求了,例:

  • 3-5年測試行業工作經驗,熱愛測試工作
  • 精通軟件測試常用的方法和技術,可以承擔產品功能和非功能測試
  • 熟悉web系統,具有互聯網產品工作經驗者優先
  • 熟悉雲存儲系統,瞭解主流雲技術產品
  • 熟悉Linux工作環境,掌握至少一門常用腳本語言
  • 熟悉持續集成和持續交付體系,能完成相應測試,部署,交付流程
  • 具備自動化測試經驗者優先
  • 具備數據庫性能調優經驗者優先


2、測試工程師能力勝任模型
在招聘和麪試時,我們到底都考察一個測試人員的哪些方面能力素質呢?懂測試?會某種工具?
其實這個問題,我們更系統的來歸納一下,就是一個測試工程師能力勝任模型,見下圖:

<img src="https://pic3.zhimg.com/v2-cb4689af414077d5e2c97b6c3d71a1a2_b.png" data-caption="" data-size="normal" data-rawwidth="495" data-rawheight="396" class="origin_image zh-lightbox-thumb" width="495" data-original="https://pic3.zhimg.com/v2-cb4689af414077d5e2c97b6c3d71a1a2_r.jpg"/>


不同的企業和項目都有着不同的人員需求,這裏不能一概而論。但是通常來講,測試人員的能力構成模型應該包括以上雷達圖裏的六個維度:

基礎理論:

求職者對於有沒有着牢固的測試理論基礎?對於測試的角色和團隊地位有着準確的認識?有沒有出色的測試思維和理念?


有的團隊在招聘測試工程師時會很看重技術和工具經驗等,但往往會忽視更基礎的這一部分。實際上,再強的能力也要建立在牢固的基礎之上,這一部分需要重視。

技術能力:

對於未來預期他要用到的技術有沒有足夠的經驗或者理解?比如測試設計技術?操作系統知識?數據庫使用?測試工具的使用?編程能力有沒有?自動化測試做過嗎?


面試官往往很看重這一塊內容,不過實際操作起來,其實是有難度的。這要求面試官本身對於技術的掌握要到比較好的水準,才能去判斷別人。而其實市場上,想要招聘到100%滿足技術要求的人員其實是非常困難的,因爲企業百花齊放,每個企業每個項目可能都用着不盡相同的技能工具集合,想要求職人員的技能工具經驗完全匹配我當前的職業需求機率是很小的。

原則上我們應該更看重其學習能力和主動意識,工具技術相關經驗只要滿足70%以上匹配度即可,過於糾結這部分可能會得不償失錯失人才。


對於面試者也是一個思路,什麼情況下我可以去應聘某個職位?負責任的告訴你,當你的技能包與職位描述60-70%匹配時,就可以去應聘了。反過來當你的技能100%甚至120%滿足某職位需求時,就不要考慮了--因爲你一定超出這個職位需求了,爲什麼不去考慮更好的工作呢?

職業素養:

職業素養是職場人員的軟技能,比如時間觀念,溝通能力,抗壓能力等等。
這是非常重要的能力組成部分。一個求職人員再牛,如果沒有好的職業素養,一切都是白搭。

業務能力:

業務能力也是測試人員必備的能力之一,包括領域知識經驗和產品相關經驗。
測試做爲最關心產品最終實現和用戶體驗的人員,當然需要對產品所處業務領域有足夠經驗和知識,比如一個財務處理系統,對於財務知識要求就會比較高。不懂相關知識,可能連需求消化都需要額外的時間和精力,而且還可能導致測試出現偏差。當然類似財務處理這樣的專業領域,想要找到足夠相關經驗的測試人員是比較難的,所以一般只能做爲加分項。

產品知識同樣對於測試人員很重要,瞭解產品的架構和運作邏輯,才能幫助他更好的規劃和執行測試。同樣做爲加分項,招聘時要注意求職人員有無類似產品的工作使用經驗。比如一個長期工作在硬件嵌入式系統的人員,換到一份互聯網P2P公司,這兩種產品從架構到機制可能完全不一樣。



管理能力:

管理能力對於初級測試工程師一般沒有很高要求。但是對於經驗比較豐富的人員而言,管理就會被提上日程。


管理不單單是做爲測試經理或主管去全方位管理團隊的能力,同樣還包括個人管理,比如時間規劃,比如協調組織能力。進一步說,對於規模稍大的團隊,核心人員能夠勝任lead(帶領者)和mentor(導師)這樣的角色也是很必要的。

企業文化:

企業文化是個聽起來很虛的東西,不同的企業可能有不同的文化,比如客戶導向,比如注重質量,比如講究效率。


我們換個名詞叫做‘團隊文化’。比如我的團隊,現階段需要一個沉穩型的工程師,還是一個奮進型的創業者?總的來說,正能量,積極主動,有責任感這樣幾個核心要素是可以適應各種不同文化的。

以上模型的六個維度中,有一些是可以通過簡歷篩選大體上完成匹配度檢查的,而另外一些簡歷上體現不到的東西則需要在面試中進一步觀察。

3、面試套路
上一節我們用能力勝任模型談論了一個測試工程師的考察維度,那這些素質究竟該怎麼在短短的一場面試中考察到呢?


接下來說一說具體的考察方法,也就是套路。每一種問題我們從想要得知什麼和不想看到什麼兩個方面去討論。有幾類問題是面試中大家比較常見到的,反套路也很多,我們稍微介紹一下:

自我介紹
功能:給求職者一個表達的窗口,同時也是考察其表述能力和基本素質的問題。
想看到的:主動的態度,良好的表達能力,充分的準備,簡明扼要的闡述
不想看到的:語言支離破碎,介紹過短或過長(表達溝通能力堪憂);想到什麼說什麼,沒重點(對應聘沒有做好準備,求職意願不強,規劃能力不夠)

離職原因
功能:判斷求職者的穩定性,挖掘隱性問題。
想看到的:合理的理由,正能量的表達
不想看到的:充滿怨氣的理由(可以反應出很多問題),沒什麼理由(工作內在動力不明確)

職業規劃
功能:考察求職者的規劃能力,景願,以及工作動力
想看到的:誠實的表達,合理的規劃
不想看到的:毫無規劃(沒有工作目標動力的支撐,進步可能性小)

談缺點
這個問題不得不吐槽一下,原本這個問題是一種挑戰性套路,但是被反套路得太多,所以現在這個問題更多的我認爲是要考察誠實品質了。
功能:挖掘隱性問題,判斷人物性格
想看到的:誠實、誠實、誠實。能夠認識到問題,並且有解決的思路,人非聖賢,孰能無過?知錯能改,善莫大焉。
不想看到的:反套路(強行優點說成缺點),沒缺點(。。。),調侃(嚴肅點。。。什麼都被你打哈哈過去了,我面試還怎麼面?)

要求對方發問
功能:考察求職者的主動思考能力,對公司職位的青睞度
想看到的:對於公司,項目,職位,技術充滿興趣的問題
不想看到的:反套路(動輒上升通道和培訓機會),沒問題(一臉懵,缺乏思路和主動能力)

除了以上這些被問爛了的問題,還有一些個人總結的面試問題思路:

挑戰式問題
比如在合理的範圍內提出質疑,和疑問,比如:
「某項技術在我們的項目內是硬性要求,而您的簡歷上看到並沒有相關經驗,你覺得你能勝任這方面工作嗎?」


這樣的問題其實主要是考察面試者的情商,性格和態度。個人最想看到的回答要體現出對於自己的信心,誠懇的態度,以及做事的思路。


比較好的回答可以是這樣的:
「我承認您說的這方面經驗欠缺的問題。不過我也認爲我自己是一個學習能力和學習主動性都比較強的人,只要能夠給我一定的時間去跟隨團隊學習相關技術,相信我能用最短的時間內掌握技術。」還可以在此基礎上舉出自己學習某項技術的經歷。

陷阱式問題
將考察點埋藏於問題深處的提問方法,比如:您希望的直屬領導是什麼樣的?或是:當你在工作中發現領導工作錯誤,怎麼處理?
這樣的問題其實也是在考察面試者的情商和團隊協作能力,以測試對方與當前團隊的匹配度。

不熟悉的領域
現在的測試團隊組織經常採用模塊式的劃分,一個面試者可能在以往工作中主要負責某產品特定模塊的測試工作。這種場景下一個好的問題可以是,他不熟悉的模塊是如何工作的?或者他們的開發人員是如何工作的?


這樣的問題在於考察面試者的主動思考能力和整體把握能力,一個擁有這樣能力的人員不會說:哦,這塊不是我測試的,我不太清楚。


同理有一個小技巧也是我在面試的時候經常會問的,比如面試者簡歷中提到的常用工具,如果涉及到英文縮寫,我會問:「你知道這個縮寫的全稱嗎?」


比如一個面試者的簡歷中經常提到使用JDK,如果他完全不知道其全稱是Java Development Kit,那麼在我眼裏這就是一種主動思考能力的缺失。

發散性問題
軟件測試職位的面試中,其實經常會面對這一種問題。比如隨手遞給你一個水杯,問「怎麼測試?」
這種問題是有一定價值的,在考察測試基礎理論的同時,也考察測試思維和做事思路。
他的一種演變形式可以是給出更實際的需求文檔或測試點,要求寫出測試用例。

解決問題的經歷
工作中有沒有遇到過什麼難題,你是怎麼解決的?
做爲面試官,問這樣的問題同樣是在考察一個人的思路。所謂難題可以是技術上的,也可以是流程上的,甚至可以是人際交往中的。

解決難題的思路和方法很大程度能夠體現一個人的智商,情商以及思考迴路。對於面試者而言應該儘量將這個問題詮釋出來。說問題一定比不說要好。