面試:測試人員必備技能,你準備好了麼?

面試 腳本語言 Linux C語言 51Testing軟件測試網 51Testing軟件測試網 2017-09-07

51Testing:專注於軟件測試領域,自主研發軟件測試工具,為客戶提供全球領先的軟件測試整體解決方案。

最近有機會做一些面試工作,主要負責面試軟件測試人員招聘的技術面試。

之前一直是應聘者的角色,經歷了不少次的面試之後,多少也積累一點面試的經驗,現在發生了角色轉變。初次的面試就碰到個工作年限比我長的,也沒有時間仔細瞭解對方的簡歷,再加上應聘者比較“強勢”。面試情況是比較糟糕的。

有同學會說,唉!不就失去了一個應聘者嘛。多面幾個就好了!這不單單是失去應聘者,面試者對面試官的印象更重要。面試官的能力與表現對於初次面試者來說往往代表的是公司的,更具體點是測試團隊的能力。

如果面試官都很“水”,這個水兩方面,一是面試不夠從容,思路不清晰。二是技術能力水,問半天問不到關鍵點上。

那麼身為面試者,對這家公司的印象會打折很多,就算能開得起面試者的期望薪資,面試者還要考慮在你這兒能不能學到什麼,工作是否有挑戰,是否有發展空間。

所以,面試官的能力與表現對面試是否成功同樣重要,畢竟就面試過程而言是一個雙向選擇的過程嘛。

下面討論測試人員應該具備的技能。

在這個討論的過程中,充滿了我個人的偏見與喜好。不喜誤噴!

面試:測試人員必備技能,你準備好了麼?

上面是我所畫的一個體系圖,這上面的技能相對比較通用,當然特殊情況下對測試人員的技能要求會有特別要求。

軟件測試基本知識:

這一塊其實沒什麼好討論的,如果你有半年到一年的工作經驗的話,對這一塊一定有比較清晰的認識,當然,在實際的工作中不需要你對每一種測試方法去尋根求源,知道這些方法的含義與應用場景即可。

編寫各種測試文檔,對於初學者來說稍有難度。但終究還是談不上什麼技術含量的事情,如果對業務和流程足夠熟悉,文檔用例自然就會寫了。

測試輔助技能:

我發現這兩項技能在筆試和麵試過程中必考,出現機率超高,但在實際的工作中,有些測試根本碰不到linux ,有些測試不需要去操作數據庫。當然,測試嘛,也不能太處於表面了,也需要熟悉熟悉相關測試的表,瞭解瞭解系統服務器。

好在這兩項技能的要求都不高,linux 大多考幾個常用命令,SQL一般考一下增、刪、查、改。

自動化技術(UI):

大多同學會在簡歷必備測試技能里加一個QTP自動化測試工具,當我滿懷起到和他聊一聊自動化時,得到的多大回答是這瞭解和學習過這個工具。這也不能怪測試人員,誰讓滿大街的招聘要求上都寫著“要求熟悉LoadRunner 、QTP等自動化測試工具等。” 其實,他們公司根本就不用。這麼多公司都要求,看來還是有必要學一學這個工具的。

對於我而言,我並不太關心工具用得多熟練?對於web應用來說,更在意的是對前端技術瞭解多少?因為你要自動化的對象就是前端技術所呈現出來的各種功能。都不瞭解它,如何定位和操作它呢?

UI的自動化不單單是QTP一個工具,如果你掌握了一種語言,做自動化的路就寬廣了,你一定知道還有個叫selenium(webdriver)的自動化工具,你不一定知道ruby 有個watir框架也可以做自動,也許你不知道python有個splinter框架也可以做自動化。那麼你就更不知道python 有個pywinauto框架可以對windows GUI做自動化。你不知道有自動化工具太多太多了。談到這些就不得不涉及到編程技術了。相比較而言QTP 不需要太多的編程能力。

對於自動化測試,另一個比較關心的是你對自動化的理解,什麼情況下適合做自動化?你的自動化測試用例是怎麼寫的?什麼樣的用例適合轉成自動化?你是如何來實施的?有什麼樣的策略來開展自動化工作?你需要自動化在項目中達到一個什麼樣的預期和效果?只是學學工具,拿個例子練習練習。很難對這些問題有真實的理解。

性能測試:

LoadRuner似乎比QTP名氣更大,做測試必玩工具。沒摸過LR都不好意思說自己是做測試的。性能測試是必須是要藉助工具來實現了。不借助工具如何模擬成百上千的併發?

最大的難點,其它是對系統架構的理解,其實,更多時候並不需要達到架構師水平,甚至不用達到開發的水平,但起碼,你要弄清用的什麼操作系統,什麼數據庫,什麼開發語言與框架,什麼中間件吧!你要知道如何對這些做監控的吧!你要知道叫上開發一塊玩吧!

對於性能測試,另一個我更關心的測試流程,你做性能測試的目的是什麼?新系統驗證?還是舊系統擴容?需要達到一個什麼樣的預期?在獨立的環境可以開展麼?壓力在哪兒,腳本為什麼要這樣錄製?你的測試結果真的有知道意義麼?或對系統性能做出了合理的評估,或為系統有調優做出指導,或為系統擴容做出了依據。如果前因後果弄不清何必去做呢?

編程能力:

編程不侷限於語言,大多同學也會在簡歷的必備技能最下方面寫上一條,熟悉C語言或其它某種語言。大多止步於大學C語言水平。工作中沒有機會用到。所以,就沒機會去進一步提升這方面的能力。這似乎也挺合乎情理的,再說你們招的是測試又不是開發。

不過,我個人偏執的很看重這一點,至於上面的自動化、性能會不會都無所謂,如果在編程能力上略懂一二,我會大力推薦。懂編程和不懂編程的人看系統的深度不一樣,一點不懂的只能看出來這是按鈕,那是輸入框。 懂編程的就知道你的登錄是個<from> ,輸入框是個<input> ,你的登錄提交是用的post 還是get呢?邏輯層就是獲取到輸入的用戶名密碼是查數據庫做比較嘛。在測試過程中不管功能實現也好,bug也好,都會看得更透徹,從而更容易挖掘出相關的bug。

一般懂編程的我都會讓其寫一個小程序,例如求素數,遞歸調用,用星號(*)打印一個梯形,如果測試工作寫一些腳本之類的來輔助測試更是大大的亮點。不要覺得讓你寫程序就是“刁難”。平時注意積累這又何難呢?

對新的工作有什麼期待?

“我希望能接觸一些性能測試、自動化測試等,因為之前的工作一直在做功能。”

大多數測試人員認為提升自已的過程是這樣的:

現在有一個性能需求,然後領導找到你說,小張啊,你來研究研究性能測試吧!我們現在的需要迫切需要對系統做一次性能測試,然後,你回去開始研究性能測試,花一個月終於搞懂了,開始對系統做性能測試。最終完成了任務。

但實際的情況是這樣的:

現在有一個性能需求,然後領導找到你說,小張啊,你會做性能測試麼?答,這個以前沒做過,得學習一下。領導說:噢,那這樣吧!小王你回去瞭解一下吧。因為小王雖然也沒搞過,但他平時做測試的資歷更久,對於新技術更愛鑽研。在領導看來,小王能在更短的時間搞定這個問題。如果這個需求迫切或要求更專業,領導會直接招一個專業做性能的。

所以,結論很明瞭,機會是給有準備的人的。假如,你在某一技能上面持續積累,總會有發光的時候。

面試官更多的時候是在找亮點,我只有一個崗位,在面試的十個人當中,有十個人都能把測試流程什麼的說得順溜(雖然我也只招一個懂測試會流程就行了)。有八個人說自己懂QTP、LR等工具,只有兩個人真正的有自動化或性能測試經驗,只有一個人編程方面還不錯。你說面試官會選誰呢?

亮點也是談資(談錢的資本),你和前一個面試者差不多,前一個面試者要5K,你要8K,那我更傾向於前者,如果你有別人沒有的亮點,那我更傾向於有亮點者,我更願意招個牛B的,工資又不是我給你開,最終是否談攏是你和人事或上級的事兒。

面試是個綜合的過程,假如你思路清晰,思維敏捷。假如你和我一樣有寫博客的習慣。或者談談你最近看的兩本技術書。讓我看到你是個工作很有熱情的人,你是個熱愛技術的人。這都是和別人不一樣的亮點。閃閃發光。到哪兒都發光。

End.

面試:測試人員必備技能,你準備好了麼?

相關推薦

推薦中...