- 相關推薦
軟件測試求職技巧
對于軟件測試的求職者而言,做好面試準備,掌握面試技巧很有必要。下面陽光網小編已經為你們整理了軟件測試求職技巧,一起來看看吧。
背景
在深入代碼之前,大多數面試官喜歡聊聊你的背景。他們想知道:
1、你對編碼認知。你是否知道如何編寫好代碼?
2、個人能力/領導力。你是否經歷過整個工作流程?你是否修復過并不怎么正確的東西,即使你并不需要這么去做?
3、溝通。和你交流技術問題是有用的還是痛苦的?
你應該至少說明以下中的一個:
你曾解決的一個有趣的技術問題
你曾克服的一個人際沖突
顯示領導力或個人能力的例子
你曾在以往項目中做出的貢獻
最喜歡的語言的一些瑣事,對這種語言你做了什么,以及你不喜歡它哪里
有關公司產品/業務的問題
關于該公司的工程策略(測試,Scrum,等等)
4、熱愛技術。表達你對你所做的一切感到驕傲,你對自己的選擇充滿自信,你對語言和工作流有著自己的看法。
溝通涉及到編碼問題的時候,溝通是關鍵。一個在工作時需要幫助卻能和人正確溝通的求職者比那些能輕松解決問題的求職者甚至更好。
了解這是哪種問題。有兩種類型的問題:
編碼。面試官希望你能針對問題寫出簡潔高效的代碼。
閑聊。面試官希望能和你聊一聊。話題通常是(1)高水平的系統設計(“如何克隆Twitter?”)或(2)瑣事(“Javascript中的hoisting是什么意思?”)。有時候這些瑣事中也會引入“實際”問題,例如,“如何迅速排序整數列?好的,如果不是整數,是其他類型的呢…… ”。
如果你開始編寫代碼,并且面試官并不想多說廢話,只想盡快過渡到“實際”問題,那么如果你羅哩叭嗦太多的話,她可能會覺得厭煩。不妨直接問,“是不是為這個問題寫代碼?”
讓人感覺你有團隊精神。面試官想知道和你一起工作是什么感覺,會有什么問題,所以要讓他們看到你的團隊合作性。使用“我們”來代替“我”,例如,“如果那個時候我們做廣度優先搜索的話,就能及時/準時得到解決方案。”如果讓你選擇在紙上還是在白板上編碼的話,選白板。這樣,你就可以接近面試官,直接面對他提出的問題(而不是和她在桌子兩邊遙遙相望)。
把自己的想法大聲說出來。不是開玩笑,比如說:“我不知道這樣做是否有效——但請讓我試一試。”如果你不知道怎么辦,不知道這個問題該如何解決,那么就說一說你現在的想法。說一說你認為怎么做可能會有效。說一說你認為哪些會有用,以及為什么沒用的原因。這同樣適用于瑣碎的閑聊問題。當面試官要求你解釋Javascript閉包的時候,“這與范圍有關,不妨把它放到一個函數中”可能會讓你得到90%的分數。
不知為不知。如果正在談論的話題(例如,具體的語言事務,具體的瑣事,運行時分析)的確是你不曾涉獵的內容,那么不要不懂裝懂。相反,你可以直接說:“我不知道,但我猜$thing,因為……”,因為后面可以通過分析排除其他選項,還可以拿其他語言或問題做例子。
說話不要不經大腦。不要自信地將答案脫口而出。如果是正確的,那么你還是需要時間來考慮如何解釋,如果是錯的,那會顯得你沖動魯莽。你不是在和人比速度,而且你這么做更有可能因為打斷她的話或者妄下結論而惹惱她。
擺脫困境
有時候你會陷入僵局。放松。這并不意味著你已經失敗了。請記住,面試官通常更在乎的,是你能否巧妙地從幾個不同的角度去揭示問題,而不是一根筋走到底地堅持正確答案。
畫圖。不要浪費時間在腦袋里思考,可以畫到板上。畫出幾個不同的測試輸入。畫出你如何手動如愿得到所需的輸出。然后想想將你的方法轉換成代碼。
解決問題的簡單版本。不知道如何找到集合中的第4大條目?那么想想如何找到第1大條目,然后試試能否沿用這種方法。
寫一個簡潔低效的解決方案,然后對其進行優化。竭盡全力。盡一切可能的方法得到某種答案。
講講自己的思路。講一講你知道什么。講一講你認為什么可能工作以及為什么無效的原因。你可能突然會意識到它實際上是可以工作的,或修改版本是有效的。也有可能,你會得到提示。
等待提示。不要用期待的眼光盯著面試官,但可以有短暫的“思考”時間——面試官或許已經決定給你個提示也說不定呢,等待她的提示以免打斷她。
考慮空間和運行時的界限。如果你不知道你是否可以優化解決方案,那么就說出來。例如:
“我必須至少看看所有的條目,我做不到時間復雜度比O(n)還好的了。”
“蠻力方法才能檢驗所有的可能性。”
“答案將包含n^2數據項,所以我必須至少花費N^2的時間。”
寫下你的思路想法
憑空地想很容易自我矛盾。把你的想法寫下來,然后再去考慮細節。
調用幫助函數,繼續前進。如果你不能或多或少地馬上想出如何實現算法,那就跳過它。寫一個命名合理的調用函數,例如:“this will do X”,然后繼續下一步驟。如果幫助函數非常微不足道,你甚至可以將它忽略。
不要擔心語法。不妨一笑而過。如果你非要考慮語法,那就還原到英語。只要向面試官說明稍后會回來整理即可。
預備足夠的空間。你可能后面會想要在代碼行之間添加代碼或筆記。從白板的頂部開始寫,并在每一行之間留一條空白。
最后寫一個重頭檢查的標志。不要擔心你寫的for循環是否應該有“<”或“<=”。在代碼的最后畫個勾選提醒自己最后再檢查一遍。先按自己的思路走。
使用描述性的變量名。想名字需要時間,但可以防止你忘記自己寫某段代碼的目的。使用names_to_phone_nums_map而不是nums。在名稱中說明類型。返回布爾值的函數應該以“is_ *”,保存列表的Vars應該以“s”結尾。標準化很有意義。
完成之后的整理
瀏覽解決方案,大聲地講,輸入一個例子。當程序運行時記錄下變量保存的值——如果你只是記在腦子里,不會讓你贏得任何加分。這有助于你發現bug和消除面試官的困惑。
尋找差一錯誤。你的for循環是不是應該使用“<=”來代替“<”?
測試邊緣情況。措施包括空集合,單項目集合或負數。加分點:提一提單元測試!
不要惹人厭煩。有的面試官可能并不在意這些整理步驟。如果你不確定,可以這樣說,“我通常會檢測一些邊緣情況——那么我們接下來是不是做這個呢?“
實踐
最后,運行實踐問題是沒有捷徑的。
好記性不如爛筆頭。對自己誠實。用筆寫可能一開始會讓你覺得別扭。但是如果你現在就能克服這個難題,那么當面試的時候,你就不會覺得笨拙和不順手了。
軟件測試常見面試問題
1、你為什么能夠做測試這一行?
雖然我的測試技術還不是很成熟,但是我覺得我還是可以勝任軟件測試這個工作的,因為做軟件測試不僅是要求技術好,還有有一定的溝通能力,耐心、細心等外在因素。綜合起來看我認為我是勝任這個工作的。
2、測試的目的是什么?
測試的目的是找出軟件產品中的錯誤,是軟件盡可能的符合用戶的要求。當然軟件測試是不可能找出全部錯誤的。
3、怎樣看待加班問題?
加班的話我沒有太多意見,但是我還是覺得如果能夠合理安排時間的話,不會有太多時候加班的。
4、結合你以前的學習和工作經驗,你認為如何做好測試?
根據我以前的工作和學習經驗,我認為做好工作首先要有一個良好的溝通,只有溝通無障礙了,才會有好的協作,才會有更好的效率,再一個就是技術一定要過關,做測試要有足夠的耐心,和一個良好的工作習慣,不懂的就要問,實時與同事溝通這樣的話才能做好測試工作。
5、你為什么選擇軟件測試行業?
因為之前了解軟件測試這個行業,覺得他的發展前景很好。
6、根據你以前的工作或學習經驗描述一下軟件開發、測試過程,由哪些角色負責,你做什么?
要有架構師、開發經理、測試經理、程序員、測試員。我在里面主要是負責所分到的模塊執行測試用例。
7、根據你的經驗說說你對軟件測試/質量保證的理解
軟件質量保證與測試是根據軟件開發階段的規格說明和程序的內部結構而精心設計的一批測試用例(即輸入數據和預期的.輸出結果),并根據這些測試用例去運行程序,以發現錯誤的過程。它是對應用程序的各個方面進行測試以檢查其功能、語言有效性及其外觀排布。
8、軟件測試的流程是什么?
需求調查:全面了解系統概況、應用領域、軟件開發周期、軟件開發環境、開發組織、時間安排、功能需求、性能需求、質量需求及測試要求等。根據系統概況進行項目所需的人員、時間和工作量估計以及項目報價。
制定初步的項目計劃。
測試準備:組織測試團隊、培訓、建立測試和管理環境等。
測試設計:按照測試要求進行每個測試項的測試設計,包括測試用例的設計和測試腳本的開發等。
測試實施:按照測試計劃實施測試。
測試評估:根據測試的結果,出具測試評估報告。
9、測試分為哪幾個階段?
一般來說分為5個階段:單元測試、集成測試、確認測試、系統測試、驗收測試
10、單元測試的測試對象、目的、測試依據、測試方法?
測試對象是模塊內部的程序錯誤,目的是消除局部模塊邏輯和功能上的錯誤和缺陷。測試依據是模塊的詳細設計,測試方法是采用白盒測試。
【軟件測試求職技巧】相關文章:
軟件測試面試技巧04-07
軟件測試求職信01-15
軟件測試實習心得04-19
軟件測試實習日記10-06
軟件測試個人總結05-19
面試軟件測試的問題04-07
軟件測試自我介紹11-10
軟件測試個人簡歷12-19
軟件測試實訓報告12-07