第16部分(第3/4 頁)
機器室外最低最高承受溫度、飲料補充和拿取、拿取口位置、拿取難易程度、重量、材料、飲料之間空隙、振動承受度、各種極端條件、特殊使用者需求(小孩、老人、殘疾人)等。針對投錢孔的功能測試應該有很多測試用例。比如測試輸入錢的功能,應考慮用不同種的市面流通的所有錢幣或鈔票。比如硬幣像一分、五分、一角、五角、壹元,紙幣壹元、兩元、五元、十元、一百元、五百元、假幣、假鈔、有缺損的真幣、真鈔票等。還有找錢的功能。邊界條件應包括該輸出的硬幣或鈔票用光了,沒錢找時,應給消費者提示。還有很多可考慮的測試用例。就留下給大家做練習吧。
程式設計能力方面的問題可能和開發人員的面試問題有類似的地方,但應該簡單一些,因為主要是基本的程式設計問題。微軟從2005年前後開始對測試工程師必須要求有程式設計能力,因為現在初進微軟的測試工程師的級別和開發人員是一樣的,這主要是因為測試人員也要能程式設計,以便把大部分測試實現自動化。
對測試工程師的程式設計有關的面試題,不單單是看你能不能寫出正確的程式碼,還要看你的程式碼能不能正確處理不同的資料或本程式需要處理的資訊。你應該考慮到邊界條件、包括有效和無效資料在內的不同資料型別、出錯資訊處理、給使用者提供提示等做測試時需要考慮的測試用例。
txt電子書分享平臺
開發工程師的面試(1)
開發人員的工作,主要就是圍繞著軟體開發的各個階段,設計,程式設計,測試,除錯等。理所當然,開發人員的面試,就是針對考核這幾方面的能力。
(1)程式設計。有句話說微軟的面試不寫程式就不是微軟面試了。沒錯,對於開發人員的面試這是真的。程式設計就是考你的基本功。
如果你的手已經生硬,多年沒有寫過一行程式碼,開發人員的面試一定搞砸。“能寫程式”(cancode)是從大學畢業生一直到架構師,開發部主管都要過硬技術。平時多寫程式是唯一的準備應付策略。取巧的人一般會被問得很尷尬。
但這裡不是考你的死記硬背的功夫,例如告訴我一個Win32API的具體呼叫方式,或者是如何使用ATL或MFC裡的一個類。更有可能的程式設計問題則會是涉及字串操作,連結串列操作,二分查詢,位操作等等這些不需要特定領域知識的東西。至於程式語言,一般人常用的是C/C++,不過你願意用什麼都行,JAVA,C#,虛擬碼(pseduo…code)都可以。
這裡我想特別的說,要注意白板程式設計(whiteboardcoding)的練習。所謂白板程式設計,就是直接在紙上或者是黑板/白板上寫出程式。看似簡單,實際上是很能磨鍊能力的。有時候你覺得自己心裡面想清楚了,實際上往紙上一寫發現完全不是那麼一回事。
(2)設計。這也是開發人員面試中必考的分析問題和解決問題的能力。事實上沒有什麼可以特別準備的。“資料結構/演算法”在大學念好了,平時用得多了,這就不是一個問題了。
同程式設計一樣,著重的也是面試者活學活用的能力。在網際網路上可找到許多微軟面試程式設計/設計的問題,很多這些問題都沒有單一答案。提問者希望面試者透過思考找到最佳演算法,而不是隻會死記硬背。例如,會延伸問題來驗證面試者的最佳化能力,就像我前面舉出的素數的那個考題中展示的樣子。
特別的,微軟的演算法問題一般十分重視最佳化:執行最快,用最少記憶體等等。最好的準備是在日常工作中多問自己幾次:“這可以更快更好嗎?”日子久了,最佳化就變成自然的本能。微軟的很多開發人員都有這種本能。這也是開發隊伍引以為豪,一直相傳的素質。當然了,如果你問我既然這樣,為什麼WindowsVista在我的256M記憶體的機器上還跑得這麼慢的話,本人拒絕回答。(玩笑,玩笑,嘿嘿)
(3)測試。開發人員也要管測試?沒錯,正如測試人員需要懂程式設計一樣,開發人員也要具備基本的測試程式的能力。
開發人員是自身程式的第一個測試者:單元測試(unittesting),就是開發人員來做的。可不是寫好了程式,往測試組一丟就行了。想一下,如果測試組在你的不足50行的函式里一口氣發現七八個問題的話,他們的工作量倒是上去了,你的面子可就不那麼好看了,不是嗎?
所以往往開發人員的面試中會有這種情況,讓你寫出一段程式,然後看你會不會做最基本的測試。當然了,測試不會是開發人員面試的重點
本章未完,點選下一頁繼續。